X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics%2Fsrc%2Forg%2Fsimantics%2FDiskWarningSystem.java;h=9d359327c4d4369c83a8cbed6849ceeae5090bdb;hb=8d11ebc5a0d82e3e602d521d29a29e5cd78bc2a1;hp=3ea694a998573b43f0146b6f692729e21ea76286;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics/src/org/simantics/DiskWarningSystem.java b/bundles/org.simantics/src/org/simantics/DiskWarningSystem.java index 3ea694a99..9d359327c 100644 --- a/bundles/org.simantics/src/org/simantics/DiskWarningSystem.java +++ b/bundles/org.simantics/src/org/simantics/DiskWarningSystem.java @@ -1,79 +1,79 @@ -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 listeners = new CopyOnWriteArrayList(); - - // 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(); - } - } - +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 listeners = new CopyOnWriteArrayList(); + + // 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(); + } + } + } \ No newline at end of file