-package org.simantics;\r
-\r
-import java.util.Collection;\r
-import java.util.concurrent.CopyOnWriteArrayList;\r
-import java.util.concurrent.ScheduledFuture;\r
-import java.util.concurrent.TimeUnit;\r
-\r
-/**\r
- * @author Antti Villberg\r
- */\r
-public class DiskWarningSystem {\r
-\r
- public interface DiskWarningListener {\r
- /*\r
- * @param available in bytes\r
- */\r
- void diskLow(long available);\r
- }\r
-\r
- private final Collection<DiskWarningListener> listeners = new CopyOnWriteArrayList<DiskWarningListener>();\r
-\r
- // In bytes\r
- private long limit = Long.MAX_VALUE;\r
-\r
- private boolean disposed = false;\r
-\r
- private ScheduledFuture<?> future;\r
-\r
- /*\r
- * @param limit in megabytes\r
- */\r
- public void setLimit(long limit) {\r
- this.limit = limit*1024*1024;\r
- }\r
-\r
- public long get() {\r
- return Simantics.getDiskBytes();\r
- }\r
- \r
- public boolean check() {\r
- return get() > limit;\r
- }\r
- \r
- \r
- public DiskWarningSystem(int amount, TimeUnit unit) {\r
- \r
- future = Simantics.scheduleAtFixedRate(new Runnable() {\r
-\r
- @Override\r
- public void run() {\r
- if(!disposed && !check()) {\r
- long bytes = get();\r
- for (DiskWarningListener listener : listeners) {\r
- listener.diskLow(bytes);\r
- }\r
- }\r
- }\r
-\r
- }, 0, amount, unit);\r
- \r
- }\r
-\r
- public boolean addListener(DiskWarningListener listener) {\r
- return listeners.add(listener);\r
- }\r
-\r
- public boolean removeListener(DiskWarningListener listener) {\r
- return listeners.remove(listener);\r
- }\r
-\r
- public void dispose() {\r
- if (!disposed) {\r
- disposed = true;\r
- future.cancel(false);\r
- listeners.clear();\r
- }\r
- }\r
-\r
+package org.simantics;
+
+import java.util.Collection;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author Antti Villberg
+ */
+public class DiskWarningSystem {
+
+ public interface DiskWarningListener {
+ /*
+ * @param available in bytes
+ */
+ void diskLow(long available);
+ }
+
+ private final Collection<DiskWarningListener> listeners = new CopyOnWriteArrayList<DiskWarningListener>();
+
+ // In bytes
+ private long limit = Long.MAX_VALUE;
+
+ private boolean disposed = false;
+
+ private ScheduledFuture<?> future;
+
+ /*
+ * @param limit in megabytes
+ */
+ public void setLimit(long limit) {
+ this.limit = limit*1024*1024;
+ }
+
+ public long get() {
+ return Simantics.getDiskBytes();
+ }
+
+ public boolean check() {
+ return get() > limit;
+ }
+
+
+ public DiskWarningSystem(int amount, TimeUnit unit) {
+
+ future = Simantics.scheduleAtFixedRate(new Runnable() {
+
+ @Override
+ public void run() {
+ if(!disposed && !check()) {
+ long bytes = get();
+ for (DiskWarningListener listener : listeners) {
+ listener.diskLow(bytes);
+ }
+ }
+ }
+
+ }, 0, amount, unit);
+
+ }
+
+ public boolean addListener(DiskWarningListener listener) {
+ return listeners.add(listener);
+ }
+
+ public boolean removeListener(DiskWarningListener listener) {
+ return listeners.remove(listener);
+ }
+
+ public void dispose() {
+ if (!disposed) {
+ disposed = true;
+ future.cancel(false);
+ listeners.clear();
+ }
+ }
+