package com.neocoretechs.bigsack.io.request.iomanager; import java.io.IOException; import java.util.concurrent.CountDownLatch; import java.util.concurrent.CyclicBarrier; import com.neocoretechs.bigsack.io.IoInterface; import com.neocoretechs.bigsack.io.pooled.MappedBlockBuffer; import com.neocoretechs.bigsack.io.request.cluster.CompletionLatchInterface; public final class ForceBufferClearRequest implements CompletionLatchInterface { private int tablespace; private CountDownLatch barrierCount; private CyclicBarrier barrierSynch; private MappedBlockBuffer blockBuffer; public ForceBufferClearRequest(MappedBlockBuffer blockBuffer, CountDownLatch barrierCount, CyclicBarrier forceBarrierSynch) { this.blockBuffer = blockBuffer; this.barrierCount = barrierCount; this.barrierSynch = forceBarrierSynch; } @Override public void process() throws IOException { blockBuffer.forceBufferClear(); barrierCount.countDown(); } @Override public long getLongReturn() { return 0L; } @Override public Object getObjectReturn() { return null; } /** * This interface implemented method is called by IoWorker before processing */ @Override public void setIoInterface(IoInterface ioi) {} @Override public void setTablespace(int tablespace) { this.tablespace = tablespace; } public String toString() { return "ForceBufferClearRequest for tablespace "+tablespace; } @Override public CountDownLatch getCountDownLatch() { return barrierCount; } @Override public void setCountDownLatch(CountDownLatch cdl) { this.barrierCount = cdl; } @Override public void setLongReturn(long val) { } @Override public void setObjectReturn(Object o) { } @Override public CyclicBarrier getCyclicBarrier() { return barrierSynch; } @Override public void setCyclicBarrier(CyclicBarrier cb) { cb = barrierSynch; } }