Package org.apache.cassandra.io.util
Interface DataOutputPlus
-
- All Superinterfaces:
java.io.DataOutput
- All Known Implementing Classes:
AsyncChannelOutputPlus
,AsyncMessageOutputPlus
,AsyncStreamingOutputPlus
,BufferedDataOutputStreamPlus
,ChecksummedSequentialWriter
,CompressedSequentialWriter
,DataOutputBuffer
,DataOutputBufferFixed
,DataOutputStreamPlus
,SafeMemoryWriter
,SequentialWriter
,UnbufferedDataOutputStreamPlus
,WrappedDataOutputStreamPlus
public interface DataOutputPlus extends java.io.DataOutput
Extension 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 boolean
hasPosition()
If the implementation supports providing a position, this method returnstrue
, otherwisefalse
.default long
position()
Returns the current position of the underlying target like a file-pointer or the position withing a buffer.void
write(java.nio.ByteBuffer buffer)
default void
write(Memory memory, long offset, long length)
default void
writeUnsignedVInt(long i)
This is more efficient for storing unsigned values, both in storage and CPU burden.default void
writeVInt(long i)
-
-
-
Method Detail
-
write
void write(java.nio.ByteBuffer buffer) throws java.io.IOException
- Throws:
java.io.IOException
-
write
default void write(Memory 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.IOException
This 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
-
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
.
-
-