public final class XStringSequence extends Object implements com.neeve.quark.QuarkStringIterator
An XStringSequence stores a set of bytes in native memory. Its views
the stored bytes as a sequence of strings and provides methods to read and
modify these values.
To use an instance of this class, the user first needs to initialize the instance by wrapping it around a memory region containing the serialized string sequence. This is done using one of the wrap() or setFrom() methods. Once the instance has been initialized, the user can use the data accessor and modification methods to access and/or modify the the sequence managed by this class.
| Modifier and Type | Method and Description |
|---|---|
static XStringSequence |
create()
Create a new string sequence reader
|
int |
getTo(byte[] val,
int offset)
Copy the serialized string sequence to a byte array object
|
int |
getTo(long addr,
int offset)
Copy the serialized string sequence to a native memory region
|
int |
getTo(com.neeve.quark.QuarkBuffer val,
int offset)
Copy the serialized string sequence to a
QuarkBuffer |
boolean |
hasNext()
Implementation of
Iterator.hasNext() |
boolean |
isInitialized()
Get if the sequence has been initialized or nor
|
boolean |
isOwned()
Get if the sequence was initialized by copying or wrapping
|
com.neeve.quark.QuarkStringIterator |
iterator()
Get an iterator to iterate over a string sequence values
|
String |
next()
Implementation of
Iterator.next() |
short |
nextInto(long addr,
int offset)
Implementation of
QuarkStringIterator.nextInto(long, int) |
short |
nextInto(com.neeve.quark.QuarkString to)
Implementation of
QuarkStringIterator.nextInto(QuarkString) |
void |
nextInto(XString to)
Implementation of
XStringIterator.nextInto(XString) |
int |
nextLength()
Implementation of
QuarkStringIterator.nextLength(boolean) |
int |
nextLength(boolean advance)
Implementation of
QuarkStringIterator.nextLength(boolean) |
void |
remove()
Implementation of
Iterator.remove() |
XStringSequence |
reset()
Reset a string sequence
|
int |
serializedLength()
Get the serialized length of a string sequence
|
XStringSequence |
setFrom(long addr,
int offset,
int len)
Initialize a sequence by copying a string sequence serialized in a native memory region to a private backing store
|
XStringSequence |
setFrom(com.neeve.quark.QuarkBuffer buffer,
int offset,
int len)
Initialize a sequence by copying a string sequence serialized in a
QuarkBuffer |
XStringSequence |
setFrom(XStringIterator iterator)
Initialize a sequence by copying a string sequence using a
XStringIterator |
XStringSequence |
setFrom(XStringSequence sequence)
Initialize a sequence by copying a string sequence from a
XStringSequence |
com.neeve.quark.QuarkStringIterator |
toFirst()
Implementation of
XIterator.toFirst() |
XStringSequence |
wrap(long addr,
int offset,
int len)
Initialize a sequence by wrapping it around a string sequence serialized in a native memory region
|
XStringSequence |
wrap(com.neeve.quark.QuarkBuffer buffer,
int offset,
int len)
Initialize a sequence by wrapping it around a string sequence serialized in a
QuarkBuffer |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEachRemainingpublic static final XStringSequence create()
public final boolean isInitialized()
public final boolean isOwned()
public com.neeve.quark.QuarkStringIterator toFirst()
XIterator.toFirst()toFirst in interface XIterator<String>IllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final boolean hasNext()
Iterator.hasNext()hasNext in interface Iterator<String>IllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final String next()
Iterator.next()next in interface Iterator<String>IllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final void remove()
Iterator.remove()public final int nextLength(boolean advance)
QuarkStringIterator.nextLength(boolean)nextLength in interface com.neeve.quark.QuarkStringIteratorIllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final int nextLength()
QuarkStringIterator.nextLength(boolean)nextLength in interface com.neeve.quark.QuarkStringIteratorIllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final void nextInto(XString to)
XStringIterator.nextInto(XString)nextInto in interface XStringIteratorIllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final short nextInto(com.neeve.quark.QuarkString to)
QuarkStringIterator.nextInto(QuarkString)nextInto in interface com.neeve.quark.QuarkStringIteratorIllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final short nextInto(long addr,
int offset)
QuarkStringIterator.nextInto(long, int)nextInto in interface com.neeve.quark.QuarkStringIteratorIllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final XStringSequence wrap(long addr, int offset, int len)
addr - The address of the memory region containing the serialized string sequenceoffset - The offset from the start of the memory region where the serialized sequence is storedlen - The length of the serialized string sequence
This method initializes a sequence's backing data pointers to a native memory region containing
the serialized string sequence. This method does not make a copy of the serialized sequence.
Therefore, the user must ensure that the source is not modified or freed as long as the sequence
is in active use or reset() is invoked.
This method can be invoked repeatedly with different backing stores. Each invocation resets all internal markers.
This method implictly invokes reset() as part of its processing
public final XStringSequence wrap(com.neeve.quark.QuarkBuffer buffer, int offset, int len)
QuarkBufferbuffer - The buffer containing the serialized string sequenceoffset - The offset into the buffer where the serialized string sequence is storedlen - The length of the serialized string sequence
This method initializes a sequence's backing data pointers to the section of a QuarkBuffer
containing the serialized string sequence. This method does not make a copy of the serialized
sequence. Therefore, the user must ensure that the source is not modified or freed as long as the
sequence is in active use or reset() is invoked.
This method can be invoked repeatedly with different backing stores. Each invocation resets all internal markers.
This method implictly invokes reset() as part of its processing
public final XStringSequence setFrom(long addr, int offset, int len)
addr - The address of the memory region containing the serialized string sequenceoffset - The offset from the start of the memory region where the serialized sequence is storedlen - The length of the serialized string sequence
This method initializes a sequence by copying a string sequence serialized in a native memory region
to a backing store that is private to the sequence object. Once done with using the sequence instance,
the user must invoke reset() to release the resources held by the backing store or release the
sequence object to the garbage collector in which case the backing store resources will be released
when the object is collected by the garbage collector.
This method can be invoked repeatedly with different backing stores. Each invocation invokes
reset() and performs a fresh initialization of the backing store.
public final XStringSequence setFrom(com.neeve.quark.QuarkBuffer buffer, int offset, int len)
QuarkBufferbuffer - The buffer containing the serialized string sequenceoffset - The offset into the buffer where the serialized string sequence is storedlen - The length of the serialized string sequence
This method initializes a sequence by copying a string sequence serialized in a QuarkBuffer
to a backing store that is private to the sequence object. Once done with using the sequence instance,
the user must invoke reset() to release the resources held by the backing store or release the
sequence object to the garbage collector in which case the backing store resources will be released
when the object is collected by the garbage collector.
This method can be invoked repeatedly with different backing stores. Each invocation invokes
reset() and performs a fresh initialization of the backing store.
public final XStringSequence setFrom(XStringSequence sequence)
XStringSequenceiterator - The source sequence
This method initializes a sequence by copying a string sequence from a XStringSequence
to a backing store that is private to the sequence object. Once done with using the sequence instance,
the user must invoke reset() to release the resources held by the backing store or release
the sequence object to the garbage collector in which case the backing store resources will be released
when the object is collected by the garbage collector.
This method can be invoked repeatedly with different backing stores. Each invocation invokes
reset() and performs a fresh initialization of the backing store.
public final XStringSequence setFrom(XStringIterator iterator)
XStringIteratoriterator - The iterator to use to access the sequence
This method initializes a sequence by copying a string sequence using a XStringIterator
to a backing store that is private to the sequence object. Once done with using the sequence instance,
the user must invoke reset() to release the resources held by the backing store or release
the sequence object to the garbage collector in which case the backing store resources will be released
when the object is collected by the garbage collector.
This method can be invoked repeatedly with different backing stores. Each invocation invokes
reset() and performs a fresh initialization of the backing store.
public final int serializedLength()
IllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final int getTo(byte[] val,
int offset)
val - The destination array object to copy tooffset - The offset into the destination array to copy toIllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final int getTo(long addr,
int offset)
addr - The destination memory region to copy tooffset - The offset into memory region to copy toIllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final int getTo(com.neeve.quark.QuarkBuffer val,
int offset)
QuarkBufferval - The destination buffer to copy tooffset - The offset into buffer to copy toIllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final com.neeve.quark.QuarkStringIterator iterator()
IllegalStateException - Thrown if the sequence has not been initialized via a wrap() or setFrom methodpublic final XStringSequence reset()
This method resets a string sequence. It releases all resources used by the sequence's private backing store
Copyright © 2019 Neeve Research, LLC. All Rights Reserved.