public final class StringPacker extends java.lang.Object implements DataPacker<java.lang.String,char[]>
| Modifier and Type | Method and Description |
|---|---|
int |
determineLength(java.lang.String data,
PackerStore store)
Pack the data and return the size of the data in bytes once packed.
|
static StringPacker |
getInstance() |
boolean |
isHeaderRequired()
Indicates whether length should be packed before the actual key
|
byte[] |
packToByteArray(java.lang.String data) |
java.nio.ByteBuffer |
packToByteBuffer(java.nio.ByteBuffer byteBuffer,
int offset,
java.lang.String data)
This method puts a value to the
ByteBuffer, starting from specified
index of the buffer. |
java.nio.ByteBuffer |
packToByteBuffer(java.nio.ByteBuffer byteBuffer,
java.lang.String data)
This method puts a value to the
ByteBuffer. |
int |
readDataFromBuffer(ObjectBuilder<java.lang.String,char[]> objectBuilder,
int currentBufferLocation,
DataBuffer dataBuffer)
Read the buffer and build the actual object.
|
java.lang.String |
unpackFromBuffer(java.nio.ByteBuffer byteBuffer,
int byteLength)
This method will extract a value from buffer starting from buffer's current position.
|
java.lang.String |
unpackFromBuffer(java.nio.ByteBuffer byteBuffer,
int bufferOffset,
int byteLength)
This method will extract a value from buffer starting from the position specified.
|
char[] |
wrapperForByteLength(int byteLength)
Returns an empty wrapper to hold byteLength amount of type T
|
void |
writeDataToBuffer(java.lang.String data,
PackerStore packerStore,
int alreadyCopied,
int leftToCopy,
int spaceLeft,
java.nio.ByteBuffer targetBuffer)
Transfer the data to the buffer.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitunpackFromByteArraypublic static StringPacker getInstance()
public int determineLength(java.lang.String data,
PackerStore store)
DataPackerDataPacker.writeDataToBuffer(D, edu.iu.dsc.tws.api.comms.packing.PackerStore, int, int, int, java.nio.ByteBuffer), you may just
return the byte size of data from this method.determineLength in interface DataPacker<java.lang.String,char[]>data - the data (can be Integer, Object etc)store - A store to temporary store the serialized data,
if you had to serialize data to determine length.public void writeDataToBuffer(java.lang.String data,
PackerStore packerStore,
int alreadyCopied,
int leftToCopy,
int spaceLeft,
java.nio.ByteBuffer targetBuffer)
DataPackerDataPacker.determineLength(Object, PackerStore),
you may transfer data from state
* to targetBuffer. If not, you may directly transfer data to the targetBuffer.writeDataToBuffer in interface DataPacker<java.lang.String,char[]>public int readDataFromBuffer(ObjectBuilder<java.lang.String,char[]> objectBuilder, int currentBufferLocation, DataBuffer dataBuffer)
DataPackerObjectBuilder.setFinalObject(Object)
to set and mark the end of the current objectreadDataFromBuffer in interface DataPacker<java.lang.String,char[]>public byte[] packToByteArray(java.lang.String data)
packToByteArray in interface DataPacker<java.lang.String,char[]>public java.nio.ByteBuffer packToByteBuffer(java.nio.ByteBuffer byteBuffer,
java.lang.String data)
DataPackerByteBuffer.
The position of byteBuffer should be updated.packToByteBuffer in interface DataPacker<java.lang.String,char[]>public java.nio.ByteBuffer packToByteBuffer(java.nio.ByteBuffer byteBuffer,
int offset,
java.lang.String data)
DataPackerByteBuffer, starting from specified
index of the buffer.
The position of the buffer shouldn't be affectedpackToByteBuffer in interface DataPacker<java.lang.String,char[]>public char[] wrapperForByteLength(int byteLength)
DataPackerwrapperForByteLength in interface DataPacker<java.lang.String,char[]>public boolean isHeaderRequired()
DataPackerisHeaderRequired in interface DataPacker<java.lang.String,char[]>public java.lang.String unpackFromBuffer(java.nio.ByteBuffer byteBuffer,
int bufferOffset,
int byteLength)
DataPackerunpackFromBuffer in interface DataPacker<java.lang.String,char[]>byteBuffer - ByteBuffer instancebufferOffset - position to start reading from bufferbyteLength - amount of data to readpublic java.lang.String unpackFromBuffer(java.nio.ByteBuffer byteBuffer,
int byteLength)
DataPackerunpackFromBuffer in interface DataPacker<java.lang.String,char[]>