Public Member Functions | |
void | clear () |
boolean | containsDefaultInstance () |
boolean | equals (Object o) |
int | getSerializedSize () |
MessageLite | getValue (MessageLite defaultInstance) |
int | hashCode () |
LazyFieldLite () | |
LazyFieldLite (ExtensionRegistryLite extensionRegistry, ByteString bytes) | |
void | merge (LazyFieldLite other) |
void | mergeFrom (CodedInputStream input, ExtensionRegistryLite extensionRegistry) throws IOException |
void | set (LazyFieldLite other) |
void | setByteString (ByteString bytes, ExtensionRegistryLite extensionRegistry) |
MessageLite | setValue (MessageLite value) |
ByteString | toByteString () |
Static Public Member Functions | |
static LazyFieldLite | fromValue (MessageLite value) |
Protected Member Functions | |
void | ensureInitialized (MessageLite defaultInstance) |
Protected Attributes | |
volatile MessageLite | value |
Static Private Member Functions | |
static void | checkArguments (ExtensionRegistryLite extensionRegistry, ByteString bytes) |
static MessageLite | mergeValueAndBytes (MessageLite value, ByteString otherBytes, ExtensionRegistryLite extensionRegistry) |
Private Attributes | |
ByteString | delayedBytes |
ExtensionRegistryLite | extensionRegistry |
volatile ByteString | memoizedBytes |
Static Private Attributes | |
static final ExtensionRegistryLite | EMPTY_REGISTRY |
LazyFieldLite encapsulates the logic of lazily parsing message fields. It stores the message in a ByteString initially and then parses it on-demand.
LazyFieldLite is thread-compatible: concurrent reads are safe once the proto that this LazyFieldLite is a part of is no longer being mutated by its Builder. However, explicit synchronization is needed under read/write situations.
When a LazyFieldLite is used in the context of a MessageLite object, its behavior is considered to be immutable and none of the setter methods in its API are expected to be invoked. All of the getters are expected to be thread-safe. When used in the context of a MessageLite.Builder, setters can be invoked, but there is no guarantee of thread safety.
TODO(yatin,dweis): Consider splitting this class's functionality and put the mutable methods into a separate builder class to allow us to give stronger compile-time guarantees.
This class is internal implementation detail of the protobuf library, so you don't need to use it directly.
Definition at line 56 of file LazyFieldLite.java.
|
inline |
Constructs a LazyFieldLite with bytes that will be parsed lazily.
Definition at line 118 of file LazyFieldLite.java.
|
inline |
Constructs a LazyFieldLite with no contents, and no ability to parse extensions.
Definition at line 125 of file LazyFieldLite.java.
|
inlinestaticprivate |
Definition at line 433 of file LazyFieldLite.java.
|
inline |
Clears the value state of this instance.
LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations.
Definition at line 188 of file LazyFieldLite.java.
|
inline |
Determines whether this LazyFieldLite instance represents the default instance of this type.
Reimplemented in com.google.protobuf.LazyField.
Definition at line 177 of file LazyFieldLite.java.
|
inlineprotected |
Might lazily parse the bytes that were previously passed in. Is thread-safe.
Definition at line 405 of file LazyFieldLite.java.
|
inline |
Reimplemented in com.google.protobuf.LazyField.
Definition at line 138 of file LazyFieldLite.java.
|
inlinestatic |
Constructs a LazyFieldLite instance with a value. The LazyFieldLite may not be able to parse the extensions in the value as it has no ExtensionRegistry.
Definition at line 131 of file LazyFieldLite.java.
|
inline |
Due to the optional field can be duplicated at the end of serialized bytes, which will make the serialized size changed after LazyField parsed. Be careful when using this method.
Definition at line 354 of file LazyFieldLite.java.
|
inline |
Returns message instance. It may do some thread-safe delayed parsing of bytes.
defaultInstance | its message's default instance. It's also used to get parser for the message type. |
Definition at line 222 of file LazyFieldLite.java.
|
inline |
Reimplemented in com.google.protobuf.LazyField.
Definition at line 167 of file LazyFieldLite.java.
|
inline |
Merges another instance's contents. In some cases may drop some extensions if both fields contain data. If the other field has an
but this does not, then this field will copy over that
.
LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations.
Definition at line 249 of file LazyFieldLite.java.
|
inline |
Merges another instance's contents from a stream.
LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations.
Definition at line 296 of file LazyFieldLite.java.
|
inlinestaticprivate |
Definition at line 330 of file LazyFieldLite.java.
|
inline |
Overrides the contents of this LazyField.
LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations.
Definition at line 203 of file LazyFieldLite.java.
|
inline |
Sets this field with bytes to delay-parse.
Definition at line 342 of file LazyFieldLite.java.
|
inline |
Sets the value of the instance and returns the old value without delay parsing anything.
LazyField is not thread-safe for write access. Synchronizations are needed under read/write situations.
Definition at line 233 of file LazyFieldLite.java.
|
inline |
Returns a BytesString for this field in a thread-safe way.
Definition at line 369 of file LazyFieldLite.java.
|
private |
A delayed-parsed version of the contents of this field. When this field is non-null, then the "value" field is allowed to be null until the time that the value needs to be read.
When delayedBytes is non-null then
is required to also be non-null.
and
will be initialized lazily.
Definition at line 94 of file LazyFieldLite.java.
|
staticprivate |
Definition at line 57 of file LazyFieldLite.java.
|
private |
An
for parsing bytes. It is non-null on a best-effort basis. It is only guaranteed to be non-null if this message was initialized using bytes and an
. If it directly had a value set then it will be null, unless it has been merged with another
that had an
.
Definition at line 102 of file LazyFieldLite.java.
|
private |
The memoized bytes for
. This is an optimization for the toByteString() method to not have to recompute its return-value on each invocation. TODO(yatin): Figure out whether this optimization is actually necessary.
Definition at line 115 of file LazyFieldLite.java.
|
protected |
The parsed value. When this is null and a caller needs access to the MessageLite value, then
will be parsed lazily at that time.
Definition at line 108 of file LazyFieldLite.java.