public class EntryValueBytesData<V> extends AbstractData<V>
Constructor and Description |
---|
EntryValueBytesData() |
Modifier and Type | Method and Description |
---|---|
net.openhft.chronicle.bytes.RandomDataInput |
bytes()
Returns the accessor object to the
Data 's bytes. |
boolean |
cachedEntryValueInit() |
void |
closeCachedEntryValue() |
V |
get()
Returns object view of this
Data . |
V |
getUsing(V using)
Deserialize and return an object from the
Data 's bytes, trying to reuse the given
using object (might be null ). |
long |
offset()
Returns the offset to the
Data 's bytes sequence within the RandomDataInput ,
returned from Data.bytes() method. |
long |
size()
Returns the size of this
Data 's bytes sequence. |
equals, hashCode, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
bytesEquivalent, dataEquals, dataHashCode, dataToString, equivalent, hash, writeTo
public boolean cachedEntryValueInit()
public void closeCachedEntryValue()
public net.openhft.chronicle.bytes.RandomDataInput bytes()
Data
Data
's bytes.
If this Data
wraps some bytes, this method just returns a reference to that bytes.
If this Data
wraps an object, this method performs serialization internally and
returns a reference to the output buffer, caching the result for subsequent calls of this
method.
For safety, this interface returns read-only object, because it could expose bytes source
that must be immutable, e. g. a `char[]` array behind a String
. But in cases when the
Data
instance wraps off-heap bytes, e. g. MapEntry.value()
, it is allowed to
cast the object, returned from this method, to BytesStore
, and write into the
off-heap memory. You should only ensure that current context (e. g. MapQueryContext
)
is locked exclusively, in order to avoid data races.
public long offset()
Data
Data
's bytes sequence within the RandomDataInput
,
returned from Data.bytes()
method. For example, the first byte of the bytes
representation of some data
is data.bytes().readByte(data.offset())
.public long size()
Data
Data
's bytes sequence. It spans from Data.offset()
to
offset() + size() - 1
bytes within the RandomDataInput
, returned from
Data.bytes()
method.public V get()
Data
Data
.
If this Data
wraps some object, this method just returns that object.
If this Data
wraps some bytes, this method performs deserialization internally
and returns the resulting on-heap object, caching it for subsequent calls of this method. The
returned object could be reused, therefore it is generally disallowed to use the
object, returned from this method, outside some context, or a block, synchronized with
locks, or lambda, etc., which provided the access to this Data
instance.
public V getUsing(V using)
Data
Data
's bytes, trying to reuse the given
using
object (might be null
). This method either returns the given using
object back (if reuse is possible) or creates a new object, rather than some
internally cached and reused one, therefore it is always allowed to use the object,
returned from this method, outside some context, or a block, synchronized with locks,
or lambda, etc., which provided the access to this Data
instance.Copyright © 2022. All rights reserved.