summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-06-10 20:22:04 +0200
committerSimon Rettberg2015-06-10 20:22:04 +0200
commitd684cd4dbdadb11a0017556e802bdf3141336f2b (patch)
treed1f863957b2c0241b036fb9c82821e7f1df50023 /dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java
parent[server] Compiling again, still lots of stubs (diff)
downloadtutor-module-d684cd4dbdadb11a0017556e802bdf3141336f2b.tar.gz
tutor-module-d684cd4dbdadb11a0017556e802bdf3141336f2b.tar.xz
tutor-module-d684cd4dbdadb11a0017556e802bdf3141336f2b.zip
[server] db stuff, new interface, ...
Diffstat (limited to 'dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java')
-rw-r--r--dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java b/dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java
new file mode 100644
index 00000000..6d5404f7
--- /dev/null
+++ b/dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java
@@ -0,0 +1,37 @@
+package thrift;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.thrift.TException;
+import org.openslx.bwlp.thrift.iface.OperatingSystem;
+import org.openslx.thrifthelper.ThriftManager;
+import org.openslx.util.TimeoutReference;
+
+/**
+ * Holds the list of all known operating systems. The list is synchronized with
+ * the master server.
+ */
+public class OperatingSystemList {
+
+ private static final Logger LOGGER = Logger.getLogger(OperatingSystemList.class);
+
+ private static final TimeoutReference<List<OperatingSystem>> cachedList = new TimeoutReference<List<OperatingSystem>>(
+ 600000, null);
+
+ public static synchronized List<OperatingSystem> get() {
+ List<OperatingSystem> list = cachedList.get();
+ if (list == null) {
+ try {
+ list = ThriftManager.getMasterClient().getOperatingSystems();
+ // TODO: Write to DB
+ } catch (TException e) {
+ LOGGER.warn("Could not retrieve OS list from master server", e);
+ return null;
+ }
+ cachedList.set(list);
+ }
+ return list;
+ }
+
+}