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.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 Deprecated Methods Modifier and Type Method Description default int
bytesLeftInPage()
Returns how many bytes are left in the page.default boolean
hasPosition()
If the implementation supports providing a position, this method returnstrue
, otherwisefalse
.default int
maxBytesInPage()
Returns the number of bytes that a page can take at maximum.default long
paddedPosition()
Returns the next padded position.default void
padToPageBoundary()
Pad this with zeroes until the next page boundary.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(ReadableMemory memory, long offset, long length)
default void
writeMostSignificantBytes(long register, int bytes)
An efficient way to write the typebytes
of a longdefault void
writeUnsignedVInt(int i)
Deprecated.See CASSANDRA-18099default void
writeUnsignedVInt(long i)
This is more efficient for storing unsigned values, both in storage and CPU burden.default void
writeUnsignedVInt32(int i)
default void
writeVInt(int i)
Deprecated.See CASSANDRA-18099default void
writeVInt(long i)
default void
writeVInt32(int 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
-
writeVInt
@Deprecated(since="5.0") default void writeVInt(int i)
Deprecated.See CASSANDRA-18099
-
writeVInt32
default void writeVInt32(int 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
-
writeUnsignedVInt
@Deprecated(since="5.0") default void writeUnsignedVInt(int i)
Deprecated.See CASSANDRA-18099
-
writeUnsignedVInt32
default void writeUnsignedVInt32(int i) throws java.io.IOException
- Throws:
java.io.IOException
-
writeMostSignificantBytes
default void writeMostSignificantBytes(long register, int bytes) throws java.io.IOException
An efficient way to write the typebytes
of 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
.
-
maxBytesInPage
default int maxBytesInPage()
Returns the number of bytes that a page can take at maximum.
-
padToPageBoundary
default void padToPageBoundary() throws java.io.IOException
Pad this with zeroes until the next page boundary. If the destination position is already at a page boundary, do not do anything.- Throws:
java.io.IOException
-
bytesLeftInPage
default int bytesLeftInPage()
Returns how many bytes are left in the page.
-
paddedPosition
default long paddedPosition()
Returns the next padded position. This is either the current position (if already padded), or the start of next page.
-
-