public FileChannelOutputView(BlockChannelWriter<MemorySegment> writer, MemoryManager memManager, List<MemorySegment> memory, int segmentSize) throws IOException { super(segmentSize, 0); checkNotNull(writer); checkNotNull(memManager); checkNotNull(memory); checkArgument(!writer.isClosed()); this.writer = writer; this.memManager = memManager; this.memory = memory; for (MemorySegment next : memory) { writer.getReturnQueue().add(next); } // move to the first page advance(); }
public FileChannelOutputView(BlockChannelWriter<MemorySegment> writer, MemoryManager memManager, List<MemorySegment> memory, int segmentSize) throws IOException { super(segmentSize, 0); checkNotNull(writer); checkNotNull(memManager); checkNotNull(memory); checkArgument(!writer.isClosed()); this.writer = writer; this.memManager = memManager; this.memory = memory; for (MemorySegment next : memory) { writer.getReturnQueue().add(next); } // move to the first page advance(); }
public FileChannelOutputView(BlockChannelWriter<MemorySegment> writer, MemoryManager memManager, List<MemorySegment> memory, int segmentSize) throws IOException { super(segmentSize, 0); checkNotNull(writer); checkNotNull(memManager); checkNotNull(memory); checkArgument(!writer.isClosed()); this.writer = writer; this.memManager = memManager; this.memory = memory; for (MemorySegment next : memory) { writer.getReturnQueue().add(next); } // move to the first page advance(); }
public FileChannelOutputView(BlockChannelWriter<MemorySegment> writer, MemoryManager memManager, List<MemorySegment> memory, int segmentSize) throws IOException { super(segmentSize, 0); checkNotNull(writer); checkNotNull(memManager); checkNotNull(memory); checkArgument(!writer.isClosed()); this.writer = writer; this.memManager = memManager; this.memory = memory; for (MemorySegment next : memory) { writer.getReturnQueue().add(next); } // move to the first page advance(); }
/** * Closes this OutputView, closing the underlying writer. And return number bytes in last * memory segment. */ @Override public int close() throws IOException { if (!writer.isClosed()) { int currentPositionInSegment = getCurrentPositionInSegment(); // write last segment writer.writeBlock(getCurrentSegment()); clear(); writer.getReturnQueue().clear(); this.writer.close(); return currentPositionInSegment; } return -1; }