Package org.apache.cassandra.io.util
Interface DataOutputPlus
-
- All Superinterfaces:
java.io.DataOutput
- All Known Subinterfaces:
StreamingDataOutputPlus
- All Known Implementing Classes:
AsyncChannelOutputPlus,AsyncMessageOutputPlus,AsyncStreamingOutputPlus,BufferedDataOutputStreamPlus,ChecksummedSequentialWriter,CompressedSequentialWriter,DataOutputBuffer,DataOutputBufferFixed,DataOutputStreamPlus,FileOutputStreamPlus,SafeMemoryWriter,SequentialWriter,StreamingDataOutputPlusFixed,UnbufferedDataOutputStreamPlus,WrappedDataOutputStreamPlus
public interface DataOutputPlus extends java.io.DataOutputExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default booleanhasPosition()If the implementation supports providing a position, this method returnstrue, otherwisefalse.default longposition()Returns the current position of the underlying target like a file-pointer or the position withing a buffer.voidwrite(java.nio.ByteBuffer buffer)default voidwrite(ReadableMemory memory, long offset, long length)default voidwriteBytes(long register, int bytes)An efficient way to write the typebytesof a longdefault voidwriteUnsignedVInt(long i)This is more efficient for storing unsigned values, both in storage and CPU burden.default voidwriteVInt(long i)
-
-
-
Method Detail
-
write
void write(java.nio.ByteBuffer buffer) throws java.io.IOException- Throws:
java.io.IOException
-
write
default void write(ReadableMemory memory, long offset, long length) throws java.io.IOException
- Throws:
java.io.IOException
-
writeVInt
default void writeVInt(long i) throws java.io.IOException- Throws:
java.io.IOException
-
writeUnsignedVInt
default void writeUnsignedVInt(long i) throws java.io.IOExceptionThis is more efficient for storing unsigned values, both in storage and CPU burden. Note that it is still possible to store negative values, they just take up more space. So this method doesn't forbid e.g. negative sentinel values in future, if they need to be snuck in. A protocol version bump can then be introduced to improve efficiency.- Throws:
java.io.IOException
-
writeBytes
default void writeBytes(long register, int bytes) throws java.io.IOExceptionAn efficient way to write the typebytesof a long- Parameters:
register- - the long value to be writtenbytes- - the number of bytes the register occupies. Valid values are between 1 and 8 inclusive.- Throws:
java.io.IOException
-
position
default long position()
Returns the current position of the underlying target like a file-pointer or the position withing a buffer. Not every implementation may support this functionality. Whether or not this functionality is supported can be checked via thehasPosition().- Throws:
java.lang.UnsupportedOperationException- if the implementation does not support position
-
hasPosition
default boolean hasPosition()
If the implementation supports providing a position, this method returnstrue, otherwisefalse.
-
-