From 5a2bd5ee808fe86f3ea1cabb59737c49b00d546e Mon Sep 17 00:00:00 2001 From: leancloud-bot Date: Wed, 18 Oct 2023 16:52:49 +0800 Subject: [PATCH] 2.2.2-dev.2 --- Plugins.meta | 8 + Plugins/LC.Google.Protobuf.dll | Bin 0 -> 358912 bytes Plugins/LC.Google.Protobuf.dll.meta | 33 + Plugins/LC.Google.Protobuf.pdb | Bin 0 -> 142288 bytes Plugins/LC.Google.Protobuf.pdb.meta | 7 + Plugins/LC.Google.Protobuf.xml | 9125 +++++++++++++++++++++++++++ Plugins/LC.Google.Protobuf.xml.meta | 7 + Plugins/LiveQuery.deps.json | 111 + Plugins/LiveQuery.deps.json.meta | 7 + Plugins/LiveQuery.dll | Bin 0 -> 22016 bytes Plugins/LiveQuery.dll.meta | 33 + Plugins/LiveQuery.pdb | Bin 0 -> 12328 bytes Plugins/LiveQuery.pdb.meta | 7 + Plugins/Realtime.dll | Bin 0 -> 300032 bytes Plugins/Realtime.dll.meta | 33 + Plugins/Realtime.pdb | Bin 0 -> 105872 bytes Plugins/Realtime.pdb.meta | 7 + Plugins/link.xml | 11 + Plugins/link.xml.meta | 7 + package.json | 16 + package.json.meta | 7 + 21 files changed, 9419 insertions(+) create mode 100644 Plugins.meta create mode 100644 Plugins/LC.Google.Protobuf.dll create mode 100644 Plugins/LC.Google.Protobuf.dll.meta create mode 100644 Plugins/LC.Google.Protobuf.pdb create mode 100644 Plugins/LC.Google.Protobuf.pdb.meta create mode 100644 Plugins/LC.Google.Protobuf.xml create mode 100644 Plugins/LC.Google.Protobuf.xml.meta create mode 100644 Plugins/LiveQuery.deps.json create mode 100644 Plugins/LiveQuery.deps.json.meta create mode 100644 Plugins/LiveQuery.dll create mode 100644 Plugins/LiveQuery.dll.meta create mode 100644 Plugins/LiveQuery.pdb create mode 100644 Plugins/LiveQuery.pdb.meta create mode 100644 Plugins/Realtime.dll create mode 100644 Plugins/Realtime.dll.meta create mode 100644 Plugins/Realtime.pdb create mode 100644 Plugins/Realtime.pdb.meta create mode 100644 Plugins/link.xml create mode 100644 Plugins/link.xml.meta create mode 100644 package.json create mode 100644 package.json.meta diff --git a/Plugins.meta b/Plugins.meta new file mode 100644 index 0000000..a36353f --- /dev/null +++ b/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b2784b7d5a424693ae5b1c83ad93891 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LC.Google.Protobuf.dll b/Plugins/LC.Google.Protobuf.dll new file mode 100644 index 0000000000000000000000000000000000000000..b73b0917366ca7790e44db8dd5711e4477a43d13 GIT binary patch literal 358912 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

=adF{`Cf|iN|i@s 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 literal 0 HcmV?d00001 diff --git a/Plugins/LC.Google.Protobuf.dll.meta b/Plugins/LC.Google.Protobuf.dll.meta new file mode 100644 index 0000000..3609fb6 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 5e5407eccd68d46d199be91f79da67cc +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LC.Google.Protobuf.pdb b/Plugins/LC.Google.Protobuf.pdb new file mode 100644 index 0000000000000000000000000000000000000000..95a1c51a82e1769cda0001787e22da62b75c5c57 GIT binary patch literal 142288 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

rlxrN+K9wjf5-;?*qzsSh#*jHLID_MxF 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⩔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%0DWP^wJ@@ms3FH0 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 + + + LC.Google.Protobuf + + + +

+ Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy + + + + + The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy + + + + + Determines which copy routine to use based on the number of bytes to be copied. + + + + + Reverses the order of bytes in the array + + + + + Immutable array of bytes. + + + + + Unsafe operations that can cause IO Failure and/or other catastrophic side-effects. + + + + + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + + + + + Internal use only. Ensure that the provided array is not mutated and belongs to this instance. + + + + + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + + + + + Returns an empty ByteString. + + + + + Returns the length of this ByteString in bytes. + + + + + Returns true if this byte string is empty, false otherwise. + + + + + Converts this into a byte array. + + The data is copied - changes to the returned array will not be reflected in this ByteString. + A byte array with the same data as this ByteString. + + + + Converts this into a standard base64 representation. + + A base64 representation of this ByteString. + + + + Constructs a from the Base64 Encoded String. + + + + + Constructs a from data in the given stream, synchronously. + + If successful, will be read completely, from the position + at the start of the call. + The stream to copy into a ByteString. + A ByteString with content read from the given stream. + + + + Constructs a from data in the given stream, asynchronously. + + If successful, will be read completely, from the position + at the start of the call. + The stream to copy into a ByteString. + The cancellation token to use when reading from the stream, if any. + A ByteString with content read from the given stream. + + + + Constructs a from the given array. The contents + are copied, so further modifications to the array will not + be reflected in the returned ByteString. + This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form + which is primarily useful for testing. + + + + + Constructs a from a portion of a byte array. + + + + + Creates a new by encoding the specified text with + the given encoding. + + + + + Creates a new by encoding the specified text in UTF-8. + + + + + Retuns the byte at the given index. + + + + + Converts this into a string by applying the given encoding. + + + This method should only be used to convert binary data which was the result of encoding + text with the given encoding. + + The encoding to use to decode the binary data into text. + The result of decoding the binary data with the given decoding. + + + + Converts this into a string by applying the UTF-8 encoding. + + + This method should only be used to convert binary data which was the result of encoding + text with UTF-8. + + The result of decoding the binary data with the given decoding. + + + + Returns an iterator over the bytes in this . + + An iterator over the bytes in this object. + + + + Returns an iterator over the bytes in this . + + An iterator over the bytes in this object. + + + + Creates a CodedInputStream from this ByteString's data. + + + + + Compares two byte strings for equality. + + The first byte string to compare. + The second byte string to compare. + true if the byte strings are equal; false otherwise. + + + + Compares two byte strings for inequality. + + The first byte string to compare. + The second byte string to compare. + false if the byte strings are equal; true otherwise. + + + + Compares this byte string with another object. + + The object to compare this with. + true if refers to an equal ; false otherwise. + + + + Returns a hash code for this object. Two equal byte strings + will return the same hash code. + + A hash code for this object. + + + + Compares this byte string with another. + + The to compare this with. + true if refers to an equal byte string; false otherwise. + + + + Used internally by CodedOutputStream to avoid creating a copy for the write + + + + + Copies the entire byte array to the destination array provided at the offset specified. + + + + + Writes the entire byte array to the provided stream + + + + + Reads and decodes protocol message fields. + + + + This class is generally used by generated code to read appropriate + primitives from the stream. It effectively encapsulates the lowest + levels of protocol buffer format. + + + Repeated fields and map fields are not handled by this class; use + and to serialize such fields. + + + + + + Whether to leave the underlying stream open when disposing of this stream. + This is always true when there's no stream. + + + + + Buffer of data read from the stream or provided at construction time. + + + + + The index of the buffer at which we need to refill from the stream (if there is one). + + + + + The position within the current buffer (i.e. the next byte to read) + + + + + The stream to read further input from, or null if the byte array buffer was provided + directly on construction, with no further data available. + + + + + The last tag we read. 0 indicates we've read to the end of the stream + (or haven't read anything yet). + + + + + The next tag, used to store the value read by PeekTag. + + + + + The total number of bytes read before the current buffer. The + total bytes read up to the current position can be computed as + totalBytesRetired + bufferPos. + + + + + The absolute position of the end of the current message. + + + + + Creates a new CodedInputStream reading data from the given byte array. + + + + + Creates a new that reads from the given byte array slice. + + + + + Creates a new reading data from the given stream, which will be disposed + when the returned object is disposed. + + The stream to read from. + + + + Creates a new reading data from the given stream. + + The stream to read from. + true to leave open when the returned + is disposed; false to dispose of the given stream when the + returned object is disposed. + + + + Creates a new CodedInputStream reading data from the given + stream and buffer, using the default limits. + + + + + Creates a new CodedInputStream reading data from the given + stream and buffer, using the specified limits. + + + This chains to the version with the default limits instead of vice versa to avoid + having to check that the default values are valid every time. + + + + + Creates a with the specified size and recursion limits, reading + from an input stream. + + + This method exists separately from the constructor to reduce the number of constructor overloads. + It is likely to be used considerably less frequently than the constructors, as the default limits + are suitable for most use cases. + + The input stream to read from + The total limit of data to read from the stream. + The maximum recursion depth to allow while reading. + A CodedInputStream reading from with the specified size + and recursion limits. + + + + Returns the current position in the input stream, or the position in the input buffer + + + + + Returns the last tag read, or 0 if no tags have been read or we've read beyond + the end of the stream. + + + + + Returns the size limit for this stream. + + + This limit is applied when reading from the underlying stream, as a sanity check. It is + not applied when reading from a byte array data source without an underlying stream. + The default value is Int32.MaxValue. + + + The size limit. + + + + + Returns the recursion limit for this stream. This limit is applied whilst reading messages, + to avoid maliciously-recursive data. + + + The default limit is 100. + + + The recursion limit for this stream. + + + + + Internal-only property; when set to true, unknown fields will be discarded while parsing. + + + + + Internal-only property; provides extension identifiers to compatible messages while parsing. + + + + + Disposes of this instance, potentially closing any underlying stream. + + + As there is no flushing to perform here, disposing of a which + was constructed with the leaveOpen option parameter set to true (or one which + was constructed to read from a byte array) has no effect. + + + + + Verifies that the last call to ReadTag() returned tag 0 - in other words, + we've reached the end of the stream when we expected to. + + The + tag read was not the one specified + + + + Peeks at the next field tag. This is like calling , but the + tag is not consumed. (So a subsequent call to will return the + same value.) + + + + + Reads a field tag, returning the tag of 0 for "end of stream". + + + If this method returns 0, it doesn't necessarily mean the end of all + the data in this CodedInputStream; it may be the end of the logical stream + for an embedded message, for example. + + The next field tag, or 0 for end of stream. (0 is never a valid tag.) + + + + Skips the data for the field with the tag we've just read. + This should be called directly after , when + the caller wishes to skip an unknown field. + + + This method throws if the last-read tag was an end-group tag. + If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the + start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly + resulting in an error if an end-group tag has not been paired with an earlier start-group tag. + + The last tag was an end-group tag + The last read operation read to the end of the logical stream + + + + Skip a group. + + + + + Reads a double field from the stream. + + + + + Reads a float field from the stream. + + + + + Reads a uint64 field from the stream. + + + + + Reads an int64 field from the stream. + + + + + Reads an int32 field from the stream. + + + + + Reads a fixed64 field from the stream. + + + + + Reads a fixed32 field from the stream. + + + + + Reads a bool field from the stream. + + + + + Reads a string field from the stream. + + + + + Reads an embedded message field value from the stream. + + + + + Reads an embedded group field from the stream. + + + + + Reads an embedded group unknown field from the stream. + + + + + Reads a bytes field value from the stream. + + + + + Reads a uint32 field value from the stream. + + + + + Reads an enum field value from the stream. + + + + + Reads an sfixed32 field value from the stream. + + + + + Reads an sfixed64 field value from the stream. + + + + + Reads an sint32 field value from the stream. + + + + + Reads an sint64 field value from the stream. + + + + + Reads a length for length-delimited data. + + + This is internally just reading a varint, but this method exists + to make the calling code clearer. + + + + + Peeks at the next tag in the stream. If it matches , + the tag is consumed and the method returns true; otherwise, the + stream is left in the original position and the method returns false. + + + + + Same code as ReadRawVarint32, but read each byte individually, checking for + buffer overflow. + + + + + Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits. + This method is optimised for the case where we've got lots of data in the buffer. + That means we can check the size just once, then just read directly from the buffer + without constant rechecking of the buffer length. + + + + + Reads a varint from the input one byte at a time, so that it does not + read any bytes after the end of the varint. If you simply wrapped the + stream in a CodedInputStream and used ReadRawVarint32(Stream) + then you would probably end up reading past the end of the varint since + CodedInputStream buffers its input. + + + + + + + Reads a raw varint from the stream. + + + + + Reads a 32-bit little-endian integer from the stream. + + + + + Reads a 64-bit little-endian integer from the stream. + + + + + Decode a 32-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Decode a 32-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Sets currentLimit to (current position) + byteLimit. This is called + when descending into a length-delimited embedded message. The previous + limit is returned. + + The old limit. + + + + Discards the current limit, returning the previous limit. + + + + + Returns whether or not all the data before the limit has been read. + + + + + + Returns true if the stream has reached the end of the input. This is the + case if either the end of the underlying input source has been reached or + the stream has reached a limit created using PushLimit. + + + + + Called when buffer is empty to read more bytes from the + input. If is true, RefillBuffer() gurantees that + either there will be at least one byte in the buffer when it returns + or it will throw an exception. If is false, + RefillBuffer() returns false if no more bytes were available. + + + + + + + Read one byte from the input. + + + the end of the stream or the current limit was reached + + + + + Reads a fixed size of bytes from the input. + + + the end of the stream or the current limit was reached + + + + + Reads and discards bytes. + + the end of the stream + or the current limit was reached + + + + Abstraction of skipping to cope with streams which can't really skip. + + + + + Encodes and writes protocol message fields. + + + + This class is generally used by generated code to write appropriate + primitives to the stream. It effectively encapsulates the lowest + levels of protocol buffer format. Unlike some other implementations, + this does not include combined "write tag and value" methods. Generated + code knows the exact byte representations of the tags they're going to write, + so there's no need to re-encode them each time. Manually-written code calling + this class should just call one of the WriteTag overloads before each value. + + + Repeated fields and map fields are not handled by this class; use RepeatedField<T> + and MapField<TKey, TValue> to serialize such fields. + + + + + + Computes the number of bytes that would be needed to encode a + double field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + float field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + uint64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + int64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + int32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + fixed64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + fixed32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + bool field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + string field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + group field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + embedded message field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + bytes field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + uint32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + enum field, including the tag. The caller is responsible for + converting the enum value to its numeric value. + + + + + Computes the number of bytes that would be needed to encode an + sfixed32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sfixed64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sint32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sint64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a length, + as written by . + + + + + Computes the number of bytes that would be needed to encode a varint. + + + + + Computes the number of bytes that would be needed to encode a varint. + + + + + Computes the number of bytes that would be needed to encode a tag. + + + + + The buffer size used by CreateInstance(Stream). + + + + + Creates a new CodedOutputStream that writes directly to the given + byte array. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + + + + + Creates a new CodedOutputStream that writes directly to the given + byte array slice. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + + + + + Creates a new which write to the given stream, and disposes of that + stream when the returned CodedOutputStream is disposed. + + The stream to write to. It will be disposed when the returned CodedOutputStream is disposed. + + + + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + + The stream to write to. It will be disposed when the returned CodedOutputStream is disposed. + The size of buffer to use internally. + + + + Creates a new CodedOutputStream which write to the given stream. + + The stream to write to. + If true, is left open when the returned CodedOutputStream is disposed; + if false, the provided stream is disposed as well. + + + + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + + The stream to write to. + The size of buffer to use internally. + If true, is left open when the returned CodedOutputStream is disposed; + if false, the provided stream is disposed as well. + + + + Returns the current position in the stream, or the position in the output buffer + + + + + Writes a double field value, without a tag, to the stream. + + The value to write + + + + Writes a float field value, without a tag, to the stream. + + The value to write + + + + Writes a uint64 field value, without a tag, to the stream. + + The value to write + + + + Writes an int64 field value, without a tag, to the stream. + + The value to write + + + + Writes an int32 field value, without a tag, to the stream. + + The value to write + + + + Writes a fixed64 field value, without a tag, to the stream. + + The value to write + + + + Writes a fixed32 field value, without a tag, to the stream. + + The value to write + + + + Writes a bool field value, without a tag, to the stream. + + The value to write + + + + Writes a string field value, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a message, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a group, without a tag, to the stream. + + The value to write + + + + Write a byte string, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a uint32 value, without a tag, to the stream. + + The value to write + + + + Writes an enum value, without a tag, to the stream. + + The value to write + + + + Writes an sfixed32 value, without a tag, to the stream. + + The value to write. + + + + Writes an sfixed64 value, without a tag, to the stream. + + The value to write + + + + Writes an sint32 value, without a tag, to the stream. + + The value to write + + + + Writes an sint64 value, without a tag, to the stream. + + The value to write + + + + Writes a length (in bytes) for length-delimited data. + + + This method simply writes a rawint, but exists for clarity in calling code. + + Length value, in bytes. + + + + Encodes and writes a tag. + + The number of the field to write the tag for + The wire format type of the tag to write + + + + Writes an already-encoded tag. + + The encoded tag + + + + Writes the given single-byte tag directly to the stream. + + The encoded tag + + + + Writes the given two-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + + + + Writes the given three-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + + + + Writes the given four-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + The fourth byte of the encoded tag + + + + Writes the given five-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + The fourth byte of the encoded tag + The fifth byte of the encoded tag + + + + Writes a 32 bit value as a varint. The fast route is taken when + there's enough buffer space left to whizz through without checking + for each byte; otherwise, we resort to calling WriteRawByte each time. + + + + + Writes out an array of bytes. + + + + + Writes out part of an array of bytes. + + + + + Encode a 32-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Encode a 64-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Indicates that a CodedOutputStream wrapping a flat byte array + ran out of space. + + + + + Flushes any buffered data and optionally closes the underlying stream, if any. + + + + By default, any underlying stream is closed by this method. To configure this behaviour, + use a constructor overload with a leaveOpen parameter. If this instance does not + have an underlying stream, this method does nothing. + + + For the sake of efficiency, calling this method does not prevent future write calls - but + if a later write ends up writing to a stream which has been disposed, that is likely to + fail. It is recommend that you not call any other methods after this. + + + + + + Flushes any buffered data to the underlying stream (if there is one). + + + + + Verifies that SpaceLeft returns zero. It's common to create a byte array + that is exactly big enough to hold a message, then write to it with + a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that + the message was actually as big as expected, which can help bugs. + + + + + If writing to a flat array, returns the space left in the array. Otherwise, + throws an InvalidOperationException. + + + + + Utility to compare if two Lists are the same, and the hash code + of a List. + + + + + Checks if two lists are equal. + + + + + Gets the list's hash code. + + + + + Representation of a map field in a Protocol Buffer message. + + Key type in the map. Must be a type supported by Protocol Buffer map keys. + Value type in the map. Must be a type supported by Protocol Buffers. + + + For string keys, the equality comparison is provided by . + + + Null values are not permitted in the map, either for wrapper types or regular messages. + If a map is deserialized from a data stream and the value is missing from an entry, a default value + is created instead. For primitive types, that is the regular default value (0, the empty string and so + on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length + encoded value for the field. + + + This implementation does not generally prohibit the use of key/value types which are not + supported by Protocol Buffers (e.g. using a key type of byte) but nor does it guarantee + that all operations will work in such cases. + + + The order in which entries are returned when iterating over this object is undefined, and may change + in future versions. + + + + + + Creates a deep clone of this object. + + + A deep clone of this object. + + + + + Adds the specified key/value pair to the map. + + + This operation fails if the key already exists in the map. To replace an existing entry, use the indexer. + + The key to add + The value to add. + The given key already exists in map. + + + + Determines whether the specified key is present in the map. + + The key to check. + true if the map contains the given key; false otherwise. + + + + Removes the entry identified by the given key from the map. + + The key indicating the entry to remove from the map. + true if the map contained the given key before the entry was removed; false otherwise. + + + + Gets the value associated with the specified key. + + The key whose value to get. + When this method returns, the value associated with the specified key, if the key is found; + otherwise, the default value for the type of the parameter. + This parameter is passed uninitialized. + true if the map contains an element with the specified key; otherwise, false. + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The property is retrieved and key does not exist in the collection. + The value associated with the specified key. If the specified key is not found, + a get operation throws a , and a set operation creates a new element with the specified key. + + + + Gets a collection containing the keys in the map. + + + + + Gets a collection containing the values in the map. + + + + + Adds the specified entries to the map. The keys and values are not automatically cloned. + + The entries to add to the map. + + + + Returns an enumerator that iterates through the collection. + + + An enumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Adds the specified item to the map. + + The item to add to the map. + + + + Removes all items from the map. + + + + + Determines whether map contains an entry equivalent to the given key/value pair. + + The key/value pair to find. + + + + + Copies the key/value pairs in this map to an array. + + The array to copy the entries into. + The index of the array at which to start copying values. + + + + Removes the specified key/value pair from the map. + + Both the key and the value must be found for the entry to be removed. + The key/value pair to remove. + true if the key/value pair was found and removed; false otherwise. + + + + Gets the number of elements contained in the map. + + + + + Gets a value indicating whether the map is read-only. + + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Compares this map with another for equality. + + + The order of the key/value pairs in the maps is not deemed significant in this comparison. + + The map to compare this with. + true if refers to an equal map; false otherwise. + + + + Adds entries to the map from the given stream. + + + It is assumed that the stream is initially positioned after the tag specified by the codec. + This method will continue reading entries from the stream until the end is reached, or + a different tag is encountered. + + Stream to read from + Codec describing how the key/value pairs are encoded + + + + Writes the contents of this map to the given coded output stream, using the specified codec + to encode each entry. + + The output stream to write to. + The codec to use for each entry. + + + + Calculates the size of this map based on the given entry codec. + + The codec to use to encode each entry. + + + + + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + + + + + A codec for a specific map field. This contains all the information required to encode and + decode the nested messages. + + + + + Creates a new entry codec based on a separate key codec and value codec, + and the tag to use for each map entry. + + The key codec. + The value codec. + The map tag to use to introduce each map entry. + + + + The tag used in the enclosing message to indicate map entries. + + + + + A mutable message class, used for parsing and serializing. This + delegates the work to a codec, but implements the interface + for interop with and . + This is nested inside Codec as it's tightly coupled to the associated codec, + and it's simpler if it has direct access to all its fields. + + + + + Provides a central place to implement equality comparisons, primarily for bitwise float/double equality. + + + + + Returns an equality comparer for suitable for Protobuf equality comparisons. + This is usually just the default equality comparer for the type, but floating point numbers are compared + bitwise. + + The type of equality comparer to return. + The equality comparer. + + + + Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Read-only wrapper around another dictionary. + + + + + The contents of a repeated field: essentially, a collection with some extra + restrictions (no null values) and capabilities (deep cloning). + + + This implementation does not generally prohibit the use of types which are not + supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases. + + The element type of the repeated field. + + + + Creates a deep clone of this repeated field. + + + If the field type is + a message type, each element is also cloned; otherwise, it is + assumed that the field type is primitive (including string and + bytes, both of which are immutable) and so a simple copy is + equivalent to a deep clone. + + A deep clone of this repeated field. + + + + Adds the entries from the given input stream, decoding them with the specified codec. + + The input stream to read from. + The codec to use in order to read each entry. + + + + Calculates the size of this collection based on the given codec. + + The codec to use when encoding each field. + The number of bytes that would be written to a by , + using the same codec. + + + + Writes the contents of this collection to the given , + encoding each value using the specified codec. + + The output stream to write to. + The codec to use when encoding each value. + + + + Gets and sets the capacity of the RepeatedField's internal array. WHen set, the internal array is reallocated to the given capacity. + The new value is less than Count -or- when Count is less than 0. + + + + + Adds the specified item to the collection. + + The item to add. + + + + Removes all items from the collection. + + + + + Determines whether this collection contains the given item. + + The item to find. + true if this collection contains the given item; false otherwise. + + + + Copies this collection to the given array. + + The array to copy to. + The first index of the array to copy to. + + + + Removes the specified item from the collection + + The item to remove. + true if the item was found and removed; false otherwise. + + + + Gets the number of elements contained in the collection. + + + + + Gets a value indicating whether the collection is read-only. + + + + + Adds all of the specified values into this collection. + + The values to add to this collection. + + + + Adds all of the specified values into this collection. This method is present to + allow repeated fields to be constructed from queries within collection initializers. + Within non-collection-initializer code, consider using the equivalent + method instead for clarity. + + The values to add to this collection. + + + + Returns an enumerator that iterates through the collection. + + + An enumerator that can be used to iterate through the collection. + + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Compares this repeated field with another for equality. + + The repeated field to compare this with. + true if refers to an equal repeated field; false otherwise. + + + + Returns the index of the given item within the collection, or -1 if the item is not + present. + + The item to find in the collection. + The zero-based index of the item, or -1 if it is not found. + + + + Inserts the given item at the specified index. + + The index at which to insert the item. + The item to insert. + + + + Removes the item at the given index. + + The zero-based index of the item to remove. + + + + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + + + + + Gets or sets the item at the specified index. + + + The element at the specified index. + + The zero-based index of the element to get or set. + The item at the specified index. + + + + Extension methods for , effectively providing + the familiar members from previous desktop framework versions while + targeting the newer releases, .NET Core etc. + + + + + Returns the public getter of a property, or null if there is no such getter + (either because it's read-only, or the getter isn't public). + + + + + Returns the public setter of a property, or null if there is no such setter + (either because it's write-only, or the setter isn't public). + + + + + Provides extension methods on Type that just proxy to TypeInfo. + These are used to support the new type system from .NET 4.5, without + having calls to GetTypeInfo all over the place. While the methods here are meant to be + broadly compatible with the desktop framework, there are some subtle differences in behaviour - but + they're not expected to affect our use cases. While the class is internal, that should be fine: we can + evaluate each new use appropriately. + + + + + See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom + + + + + Returns a representation of the public property associated with the given name in the given type, + including inherited properties or null if there is no such public property. + Here, "public property" means a property where either the getter, or the setter, or both, is public. + + + + + Returns a representation of the public method associated with the given name in the given type, + including inherited methods. + + + This has a few differences compared with Type.GetMethod in the desktop framework. It will throw + if there is an ambiguous match even between a private method and a public one, but it *won't* throw + if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and + class Child : Base declares public void Foo(long)). + + One type in the hierarchy declared more than one method with the same name + + + + Represents a non-generic extension definition. This API is experimental and subject to change. + + + + + Internal use. Creates a new extension with the specified field number. + + + + + Gets the field number of this extension + + + + + Represents a type-safe extension identifier used for getting and setting single extension values in instances. + This API is experimental and subject to change. + + The message type this field applies to + The field value type of this extension + + + + Creates a new extension identifier with the specified field number and codec + + + + + Represents a type-safe extension identifier used for getting repeated extension values in instances. + This API is experimental and subject to change. + + The message type this field applies to + The repeated field value type of this extension + + + + Creates a new repeated extension identifier with the specified field number and codec + + + + + Provides extensions to messages while parsing. This API is experimental and subject to change. + + + + + Creates a new empty extension registry + + + + + Gets the total number of extensions in this extension registry + + + + + Returns whether the registry is readonly + + + + + Adds the specified extension to the registry + + + + + Adds the specified extensions to the registry + + + + + Clears the registry of all values + + + + + Gets whether the extension registry contains the specified extension + + + + + Copies the arrays in the registry set to the specified array at the specified index + + The array to copy to + The array index to start at + + + + Returns an enumerator to enumerate through the items in the registry + + Returns an enumerator for the extensions in this registry + + + + Removes the specified extension from the set + + The extension + true if the extension was removed, otherwise false + + + + Clones the registry into a new registry + + + + + Methods for managing s with null checking. + + Most users will not use this class directly and its API is experimental and subject to change. + + + + + Gets the value of the specified extension + + + + + Gets the value of the specified repeated extension or null if it doesn't exist in this set + + + + + Gets the value of the specified repeated extension, registering it if it doesn't exist + + + + + Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null. + + + + + Gets whether the value of the specified extension is set + + + + + Clears the value of the specified extension + + + + + Clears the value of the specified extension + + + + + Tries to merge a field from the coded input, returning true if the field was merged. + If the set is null or the field was not otherwise merged, this returns false. + + + + + Merges the second set into the first set, creating a new instance if first is null + + + + + Clones the set into a new set. If the set is null, this returns null + + + + + Used for keeping track of extensions in messages. + methods route to this set. + + Most users will not need to use this class directly + + The message type that extensions in this set target + + + + Gets a hash code of the set + + + + + Returns whether this set is equal to the other object + + + + + Calculates the size of this extension set + + + + + Writes the extension values in this set to the output stream + + + + + Factory methods for . + + + + + Retrieves a codec suitable for a string field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a bytes field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a bool field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an int32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an int64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a float field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a double field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an enum field with the given tag. + + The tag. + A conversion function from to the enum type. + A conversion function from the enum type to . + A codec for the given tag. + + + + Retrieves a codec suitable for a string field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a bytes field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a bool field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an int32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an int64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a float field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a double field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an enum field with the given tag. + + The tag. + A conversion function from to the enum type. + A conversion function from the enum type to . + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a message field with the given tag. + + The tag. + A parser to use for the message type. + A codec for the given tag. + + + + Retrieves a codec suitable for a group field with the given tag. + + The start group tag. + The end group tag. + A parser to use for the group message type. + A codec for given tag + + + + Creates a codec for a wrapper type of a class - which must be string or ByteString. + + + + + Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64, + Bool, Single or Double. + + + + + Helper code to create codecs for wrapper types. + + + Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it + slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place, + we can refactor later if we come up with something cleaner. + + + + + Returns a field codec which effectively wraps a value of type T in a message. + + + + + + + An encode/decode pair for a single field. This effectively encapsulates + all the information needed to read or write the field value from/to a coded + stream. + + + This class is public and has to be as it is used by generated code, but its public + API is very limited - just what the generated code needs to call directly. + + + + This never writes default values to the stream, and does not address "packedness" + in repeated fields itself, other than to know whether or not the field *should* be packed. + + + + + Merges an input stream into a value + + + + + Merges a value into a reference to another value, returning a boolean if the value was set + + + + + Returns a delegate to write a value (unconditionally) to a coded output stream. + + + + + Returns the size calculator for just a value. + + + + + Returns a delegate to read a value from a coded input stream. It is assumed that + the stream is already positioned on the appropriate tag. + + + + + Returns a delegate to merge a value from a coded input stream. + It is assumed that the stream is already positioned on the appropriate tag + + + + + Returns a delegate to merge two values together. + + + + + Returns the fixed size for an entry, or 0 if sizes vary. + + + + + Gets the tag of the codec. + + + The tag of the codec. + + + + + Gets the end tag of the codec or 0 if there is no end tag + + + The end tag of the codec. + + + + + Default value for this codec. Usually the same for every instance of the same type, but + for string/ByteString wrapper fields the codec's default value is null, whereas for + other string/ByteString fields it's "" or ByteString.Empty. + + + The default value of the codec's type. + + + + + Write a tag and the given value, *if* the value is not the default. + + + + + Reads a value of the codec type from the given . + + The input stream to read from. + The value read from the stream. + + + + Calculates the size required to write the given value, with a tag, + if the value is not the default. + + + + + A tree representation of a FieldMask. Each leaf node in this tree represent + a field path in the FieldMask. + + For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be: + + [root] -+- foo -+- bar + | | + | +- baz + | + +- bar --- baz + + + By representing FieldMasks with this tree structure we can easily convert + a FieldMask to a canonical form, merge two FieldMasks, calculate the + intersection to two FieldMasks and traverse all fields specified by the + FieldMask in a message tree. + + + + + Creates an empty FieldMaskTree. + + + + + Creates a FieldMaskTree for a given FieldMask. + + + + + Adds a field path to the tree. In a FieldMask, every field path matches the + specified field as well as all its sub-fields. For example, a field path + "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding + a field path to the tree, redundant sub-paths will be removed. That is, + after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it + exists, which will turn the tree node for "foo.bar" to a leaf node. + Likewise, if the field path to add is a sub-path of an existing leaf node, + nothing will be changed in the tree. + + + + + Merges all field paths in a FieldMask into this tree. + + + + + Converts this tree to a FieldMask. + + + + + Gathers all field paths in a sub-tree. + + + + + Adds the intersection of this tree with the given to . + + + + + Merges all fields specified by this FieldMaskTree from to . + + + + + Merges all fields specified by a sub-tree from to . + + + + + Class containing helpful workarounds for various platform compatibility + + + + + A message type that has a custom string format for diagnostic purposes. + + + + Calling on a generated message type normally + returns the JSON representation. If a message type implements this interface, + then the method will be called instead of the regular + JSON formatting code, but only when ToString() is called either on the message itself + or on another message which contains it. This does not affect the normal JSON formatting of + the message. + + + For example, if you create a proto message representing a GUID, the internal + representation may be a bytes field or four fixed32 fields. However, when debugging + it may be more convenient to see a result in the same format as provides. + + This interface extends to avoid it accidentally being implemented + on types other than messages, where it would not be used by anything in the framework. + + + + + Returns a string representation of this object, for diagnostic purposes. + + + This method is called when a message is formatted as part of a + call. It does not affect the JSON representation used by other than + in calls to . While it is recommended + that the result is valid JSON, this is never assumed by the Protobuf library. + + A string representation of this object, for diagnostic purposes. + + + + Generic interface for a deeply cloneable type. + + + + All generated messages implement this interface, but so do some non-message types. + Additionally, due to the type constraint on T in , + it is simpler to keep this as a separate interface. + + + The type itself, returned by the method. + + + + Creates a deep clone of this object. + + A deep clone of this object. + + + + Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class. + This interface is experiemental and is subject to change. + + + + + Gets the value of the specified extension + + + + + Gets the value of the specified repeated extension or null if the extension isn't registered in this set. + For a version of this method that never returns null, use + + + + + Gets the value of the specified repeated extension, registering it if it hasn't already been registered. + + + + + Sets the value of the specified extension + + + + + Gets whether the value of the specified extension is set + + + + + Clears the value of the specified extension + + + + + Clears the value of the specified repeated extension + + + + + Interface for a Protocol Buffers message, supporting + basic operations required for serialization. + + + + + Merges the data from the specified coded input stream with the current message. + + See the user guide for precise merge semantics. + + + + + Writes the data to the given coded output stream. + + Coded output stream to write the data to. Must not be null. + + + + Calculates the size of this message in Protocol Buffer wire format, in bytes. + + The number of bytes required to write this message + to a coded output stream. + + + + Descriptor for this message. All instances are expected to return the same descriptor, + and for generated types this will be an explicitly-implemented member, returning the + same value as the static property declared on the type. + + + + + Generic interface for a Protocol Buffers message, + where the type parameter is expected to be the same type as + the implementation class. + + The message type. + + + + Merges the given message into this one. + + See the user guide for precise merge semantics. + The message to merge with this one. Must not be null. + + + + Thrown when an attempt is made to parse invalid JSON, e.g. using + a non-string property key, or including a redundant comma. Parsing a protocol buffer + message represented in JSON using can throw both this + exception and depending on the situation. This + exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException + is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer + message. + + + + + Thrown when a protocol message being parsed is invalid in some way, + e.g. it contains a malformed varint or a negative byte length. + + + + + Creates an exception for an error condition of an invalid tag being encountered. + + + + + Reflection-based converter from messages to JSON. + + + + Instances of this class are thread-safe, with no mutable state. + + + This is a simple start to get JSON formatting working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + + + + + + Returns a formatter using the default settings. + + + + + The JSON representation of the first 160 characters of Unicode. + Empty strings are replaced by the static constructor. + + + + + Creates a new formatted with the given settings. + + The settings. + + + + Formats the specified message as JSON. + + The message to format. + The formatted message. + + + + Formats the specified message as JSON. + + The message to format. + The TextWriter to write the formatted message to. + The formatted message. + + + + Converts a message to JSON for diagnostic purposes with no extra context. + + + + This differs from calling on the default JSON + formatter in its handling of . As no type registry is available + in calls, the normal way of resolving the type of + an Any message cannot be applied. Instead, a JSON property named @value + is included with the base64 data from the property of the message. + + The value returned by this method is only designed to be used for diagnostic + purposes. It may not be parsable by , and may not be parsable + by other Protocol Buffer implementations. + + The message to format for diagnostic purposes. + The diagnostic-only JSON representation of the message + + + + Writes a single value to the given writer as JSON. Only types understood by + Protocol Buffers can be written in this way. This method is only exposed for + advanced use cases; most users should be using + or . + + The writer to write the value to. Must not be null. + The value to write. May be null. + + + + Central interception point for well-known type formatting. Any well-known types which + don't need special handling can fall back to WriteMessage. We avoid assuming that the + values are using the embedded well-known types, in order to allow for dynamic messages + in the future. + + + + + Writes a string (including leading and trailing double quotes) to a builder, escaping as required. + + + Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc. + + + + + Settings controlling JSON formatting. + + + + + Default settings, as used by + + + + + Whether fields whose values are the default for the field type (e.g. 0 for integers) + should be formatted (true) or omitted (false). + + + + + The type registry used to format messages. + + + + + Whether to format enums as ints. Defaults to false. + + + + + Creates a new object with the specified formatting of default values + and an empty type registry. + + true if default values (0, empty strings etc) should be formatted; false otherwise. + + + + Creates a new object with the specified formatting of default values + and type registry. + + true if default values (0, empty strings etc) should be formatted; false otherwise. + The to use when formatting messages. + + + + Creates a new object with the specified parameters. + + true if default values (0, empty strings etc) should be formatted; false otherwise. + The to use when formatting messages. TypeRegistry.Empty will be used if it is null. + true to format the enums as integers; false to format enums as enum names. + + + + Creates a new object with the specified formatting of default values and the current settings. + + true if default values (0, empty strings etc) should be formatted; false otherwise. + + + + Creates a new object with the specified type registry and the current settings. + + The to use when formatting messages. + + + + Creates a new object with the specified enums formatting option and the current settings. + + true to format the enums as integers; false to format enums as enum names. + + + + Reflection-based converter from JSON to messages. + + + + Instances of this class are thread-safe, with no mutable state. + + + This is a simple start to get JSON parsing working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + + + + + + Returns a formatter using the default settings. + + + + + Creates a new formatted with the given settings. + + The settings. + + + + Parses and merges the information into the given message. + + The message to merge the JSON information into. + The JSON to parse. + + + + Parses JSON read from and merges the information into the given message. + + The message to merge the JSON information into. + Reader providing the JSON to parse. + + + + Merges the given message using data from the given tokenizer. In most cases, the next + token should be a "start object" token, but wrapper types and nullity can invalidate + that assumption. This is implemented as an LL(1) recursive descent parser over the stream + of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the + tokenizer performing that validation - but not every token stream is valid "protobuf JSON". + + + + + Parses into a new message. + + The type of message to create. + The JSON to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses JSON read from into a new message. + + The type of message to create. + Reader providing the JSON to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses into a new message. + + The JSON to parse. + Descriptor of message type to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses JSON read from into a new message. + + Reader providing the JSON to parse. + Descriptor of message type to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new instance of the message type for the given field. + + + + + Checks that any infinite/NaN values originated from the correct text. + This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the + way that Mono parses out-of-range values as infinity. + + + + + Settings controlling JSON parsing. + + + + + Default settings, as used by . This has the same default + recursion limit as , and an empty type registry. + + + + + The maximum depth of messages to parse. Note that this limit only applies to parsing + messages, not collections - so a message within a collection within a message only counts as + depth 2, not 3. + + + + + The type registry used to parse messages. + + + + + Whether the parser should ignore unknown fields (true) or throw an exception when + they are encountered (false). + + + + + Creates a new object with the specified recursion limit. + + The maximum depth of messages to parse + + + + Creates a new object with the specified recursion limit and type registry. + + The maximum depth of messages to parse + The type registry used to parse messages + + + + Creates a new object set to either ignore unknown fields, or throw an exception + when unknown fields are encountered. + + true if unknown fields should be ignored when parsing; false to throw an exception. + + + + Creates a new object based on this one, but with the specified recursion limit. + + The new recursion limit. + + + + Creates a new object based on this one, but with the specified type registry. + + The new type registry. Must not be null. + + + + Simple but strict JSON tokenizer, rigidly following RFC 7159. + + + + This tokenizer is stateful, and only returns "useful" tokens - names, values etc. + It does not create tokens for the separator between names and values, or for the comma + between values. It validates the token stream as it goes - so callers can assume that the + tokens it produces are appropriate. For example, it would never produce "start object, end array." + + Implementation details: the base class handles single token push-back and + Not thread-safe. + + + + + Creates a tokenizer that reads from the given text reader. + + + + + Creates a tokenizer that first replays the given list of tokens, then continues reading + from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back + on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was + created for the sake of Any parsing. + + + + + Returns the depth of the stack, purely in objects (not collections). + Informally, this is the number of remaining unclosed '{' characters we have. + + + + + Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream, + after which point Next() should not be called again. + + This implementation provides single-token buffering, and calls if there is no buffered token. + The next token in the stream. This is never null. + This method is called after an EndDocument token has been returned + The input text does not comply with RFC 7159 + + + + Returns the next JSON token in the stream, when requested by the base class. (The method delegates + to this if it doesn't have a buffered token.) + + This method is called after an EndDocument token has been returned + The input text does not comply with RFC 7159 + + + + Skips the value we're about to read. This must only be called immediately after reading a property name. + If the value is an object or an array, the complete object/array is skipped. + + + + + Tokenizer which first exhausts a list of tokens, then consults another tokenizer. + + + + + Tokenizer which does all the *real* work of parsing JSON. + + + + + This method essentially just loops through characters skipping whitespace, validating and + changing state (e.g. from ObjectBeforeColon to ObjectAfterColon) + until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point + it returns the token. Although the method is large, it would be relatively hard to break down further... most + of it is the large switch statement, which sometimes returns and sometimes doesn't. + + + + + Reads a string token. It is assumed that the opening " has already been read. + + + + + Reads an escaped character. It is assumed that the leading backslash has already been read. + + + + + Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read. + + + + + Consumes a text-only literal, throwing an exception if the read text doesn't match it. + It is assumed that the first letter of the literal has already been read. + + + + + Validates that we're in a valid state to read a value (using the given error prefix if necessary) + and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty. + + + + + Pops the top-most container, and sets the state to the appropriate one for the end of a value + in the parent container. + + + + + Possible states of the tokenizer. + + + This is a flags enum purely so we can simply and efficiently represent a set of valid states + for checking. + + Each is documented with an example, + where ^ represents the current position within the text stream. The examples all use string values, + but could be any value, including nested objects/arrays. + The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects). + Any additional notional state of "AfterValue" indicates that a value has been completed, at which + point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue. + + + These states were derived manually by reading RFC 7159 carefully. + + + + + + ^ { "foo": "bar" } + Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue" + + + + + { "foo": "bar" } ^ + After the value in a document. Next states: ReaderExhausted + + + + + { "foo": "bar" } ^ (and already read to the end of the reader) + Terminal state. + + + + + { ^ "foo": "bar" } + Before the *first* property in an object. + Next states: + "AfterValue" (empty object) + ObjectBeforeColon (read a name) + + + + + { "foo" ^ : "bar", "x": "y" } + Next state: ObjectAfterColon + + + + + { "foo" : ^ "bar", "x": "y" } + Before any property other than the first in an object. + (Equivalently: after any property in an object) + Next states: + "AfterValue" (value is simple) + ObjectStart (value is object) + ArrayStart (value is array) + + + + + { "foo" : "bar" ^ , "x" : "y" } + At the end of a property, so expecting either a comma or end-of-object + Next states: ObjectAfterComma or "AfterValue" + + + + + { "foo":"bar", ^ "x":"y" } + Read the comma after the previous property, so expecting another property. + This is like ObjectStart, but closing brace isn't valid here + Next state: ObjectBeforeColon. + + + + + [ ^ "foo", "bar" ] + Before the *first* value in an array. + Next states: + "AfterValue" (read a value) + "AfterValue" (end of array; will pop stack) + + + + + [ "foo" ^ , "bar" ] + After any value in an array, so expecting either a comma or end-of-array + Next states: ArrayAfterComma or "AfterValue" + + + + + [ "foo", ^ "bar" ] + After a comma in an array, so there *must* be another value (simple or complex). + Next states: "AfterValue" (simple value), StartObject, StartArray + + + + + Wrapper around a text reader allowing small amounts of buffering and location handling. + + + + + The buffered next character, if we have one. + + + + + Returns the next character in the stream, or null if we have reached the end. + + + + + + Creates a new exception appropriate for the current state of the reader. + + + + + Stream implementation which proxies another stream, only allowing a certain amount + of data to be read. Note that this is only used to read delimited streams, so it + doesn't attempt to implement everything. + + + + + Extension methods on and . + + + + + Merges data from the given byte array into an existing message. + + The message to merge the data into. + The data to merge, which must be protobuf-encoded binary data. + + + + Merges data from the given byte array slice into an existing message. + + The message to merge the data into. + The data containing the slice to merge, which must be protobuf-encoded binary data. + The offset of the slice to merge. + The length of the slice to merge. + + + + Merges data from the given byte string into an existing message. + + The message to merge the data into. + The data to merge, which must be protobuf-encoded binary data. + + + + Merges data from the given stream into an existing message. + + The message to merge the data into. + Stream containing the data to merge, which must be protobuf-encoded binary data. + + + + Merges length-delimited data from the given stream into an existing message. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The message to merge the data into. + Stream containing the data to merge, which must be protobuf-encoded binary data. + + + + Converts the given message into a byte array in protobuf encoding. + + The message to convert. + The message data as a byte array. + + + + Writes the given message data to the given stream in protobuf encoding. + + The message to write to the stream. + The stream to write to. + + + + Writes the length and then data of the given message to a stream. + + The message to write. + The output stream to write to. + + + + Converts the given message into a byte string in protobuf encoding. + + The message to convert. + The message data as a byte string. + + + + Checks if all required fields in a message have values set. For proto3 messages, this returns true + + + + + A general message parser, typically used by reflection-based code as all the methods + return simple . + + + + + Creates a template instance ready for population. + + An empty message. + + + + Parses a message from a byte array. + + The byte array containing the message. Must not be null. + The newly parsed message. + + + + Parses a message from a byte array slice. + + The byte array containing the message. Must not be null. + The offset of the slice to parse. + The length of the slice to parse. + The newly parsed message. + + + + Parses a message from the given byte string. + + The data to parse. + The parsed message. + + + + Parses a message from the given stream. + + The stream to parse. + The parsed message. + + + + Parses a length-delimited message from the given stream. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The stream to parse. + The parsed message. + + + + Parses a message from the given coded input stream. + + The stream to parse. + The parsed message. + + + + Parses a message from the given JSON. + + The JSON to parse. + The parsed message. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new message parser which optionally discards unknown fields when parsing. + + Whether or not to discard unknown fields when parsing. + A newly configured message parser. + + + + Creates a new message parser which registers extensions from the specified registry upon creating the message instance + + The extensions to register + A newly configured message parser. + + + + A parser for a specific message type. + + +

+ This delegates most behavior to the + implementation within the original type, but + provides convenient overloads to parse from a variety of sources. +

+

+ Most applications will never need to create their own instances of this type; + instead, use the static Parser property of a generated message type to obtain a + parser for that type. +

+
+ The type of message to be parsed. +
+ + + Creates a new parser. + + + The factory method is effectively an optimization over using a generic constraint + to require a parameterless constructor: delegates are significantly faster to execute. + + Function to invoke when a new, empty message is required. + + + + Creates a template instance ready for population. + + An empty message. + + + + Parses a message from a byte array. + + The byte array containing the message. Must not be null. + The newly parsed message. + + + + Parses a message from a byte array slice. + + The byte array containing the message. Must not be null. + The offset of the slice to parse. + The length of the slice to parse. + The newly parsed message. + + + + Parses a message from the given byte string. + + The data to parse. + The parsed message. + + + + Parses a message from the given stream. + + The stream to parse. + The parsed message. + + + + Parses a length-delimited message from the given stream. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The stream to parse. + The parsed message. + + + + Parses a message from the given coded input stream. + + The stream to parse. + The parsed message. + + + + Parses a message from the given JSON. + + The JSON to parse. + The parsed message. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new message parser which optionally discards unknown fields when parsing. + + Whether or not to discard unknown fields when parsing. + A newly configured message parser. + + + + Creates a new message parser which registers extensions from the specified registry upon creating the message instance + + The extensions to register + A newly configured message parser. + + + + Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the + extensionByNumber table in ExtensionRegistry. + + + + + Helper methods for throwing exceptions when preconditions are not met. + + + This class is used internally and by generated code; it is not particularly + expected to be used from application code, although nothing prevents it + from being used that way. + + + + + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + + + + + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + + + This is equivalent to but without the type parameter + constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull + with a value type - but it gets in the way if either you want to use it with a nullable + value type, or you want to use it with an unconstrained type parameter. + + + + + Container for a set of custom options specified within a message, field etc. + + + + This type is publicly immutable, but internally mutable. It is only populated + by the descriptor parsing code - by the time any user code is able to see an instance, + it will be fully initialized. + + + If an option is requested using the incorrect method, an answer may still be returned: all + of the numeric types are represented internally using 64-bit integers, for example. It is up to + the caller to ensure that they make the appropriate method call for the option they're interested in. + Note that enum options are simply stored as integers, so the value should be fetched using + and then cast appropriately. + + + Repeated options are currently not supported. Asking for a single value of an option + which was actually repeated will return the last value, except for message types where + all the set values are merged together. + + + + + + Retrieves a Boolean value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 32-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 64-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field, + assuming a zigzag encoding. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field, + assuming a zigzag encoding. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 32-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 64-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a 32-bit floating point value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a 64-bit floating point value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a string value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a bytes value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a message value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + Holder for reflection information generated from google/protobuf/descriptor.proto + + + File descriptor for google/protobuf/descriptor.proto + + + + The protocol compiler can output a FileDescriptorSet containing the .proto + files it parses. + + + + Field number for the "file" field. + + + + Describes a complete .proto file. + + + + Field number for the "name" field. + + + + file name, relative to root of source tree + + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "package" field. + + + + e.g. "foo", "foo.bar", etc. + + + + Gets whether the "package" field is set + + + Clears the value of the "package" field + + + Field number for the "dependency" field. + + + + Names of files imported by this file. + + + + Field number for the "public_dependency" field. + + + + Indexes of the public imported files in the dependency list above. + + + + Field number for the "weak_dependency" field. + + + + Indexes of the weak imported files in the dependency list. + For Google-internal migration only. Do not use. + + + + Field number for the "message_type" field. + + + + All top-level definitions in this file. + + + + Field number for the "enum_type" field. + + + Field number for the "service" field. + + + Field number for the "extension" field. + + + Field number for the "options" field. + + + Field number for the "source_code_info" field. + + + + This field contains optional information about the original source code. + You may safely remove this entire field without harming runtime + functionality of the descriptors -- the information is needed only by + development tools. + + + + Field number for the "syntax" field. + + + + The syntax of the proto file. + The supported values are "proto2" and "proto3". + + + + Gets whether the "syntax" field is set + + + Clears the value of the "syntax" field + + + + Describes a message type. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "field" field. + + + Field number for the "extension" field. + + + Field number for the "nested_type" field. + + + Field number for the "enum_type" field. + + + Field number for the "extension_range" field. + + + Field number for the "oneof_decl" field. + + + Field number for the "options" field. + + + Field number for the "reserved_range" field. + + + Field number for the "reserved_name" field. + + + + Reserved field names, which may not be used by fields in the same message. + A given name may only be reserved once. + + + + Container for nested types declared in the DescriptorProto message type. + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Exclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + Field number for the "options" field. + + + + Range of reserved tag numbers. Reserved tag numbers may not be used by + fields or extension ranges in the same message. Reserved ranges may + not overlap. + + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Exclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + + Describes a field within a message. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "number" field. + + + Gets whether the "number" field is set + + + Clears the value of the "number" field + + + Field number for the "label" field. + + + Gets whether the "label" field is set + + + Clears the value of the "label" field + + + Field number for the "type" field. + + + + If type_name is set, this need not be set. If both this and type_name + are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + + + + Gets whether the "type" field is set + + + Clears the value of the "type" field + + + Field number for the "type_name" field. + + + + For message and enum types, this is the name of the type. If the name + starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + rules are used to find the type (i.e. first the nested types within this + message are searched, then within the parent, on up to the root + namespace). + + + + Gets whether the "type_name" field is set + + + Clears the value of the "type_name" field + + + Field number for the "extendee" field. + + + + For extensions, this is the name of the type being extended. It is + resolved in the same manner as type_name. + + + + Gets whether the "extendee" field is set + + + Clears the value of the "extendee" field + + + Field number for the "default_value" field. + + + + For numeric types, contains the original text representation of the value. + For booleans, "true" or "false". + For strings, contains the default text contents (not escaped in any way). + For bytes, contains the C escaped value. All bytes >= 128 are escaped. + TODO(kenton): Base-64 encode? + + + + Gets whether the "default_value" field is set + + + Clears the value of the "default_value" field + + + Field number for the "oneof_index" field. + + + + If set, gives the index of a oneof in the containing type's oneof_decl + list. This field is a member of that oneof. + + + + Gets whether the "oneof_index" field is set + + + Clears the value of the "oneof_index" field + + + Field number for the "json_name" field. + + + + JSON name of this field. The value is set by protocol compiler. If the + user has set a "json_name" option on this field, that option's value + will be used. Otherwise, it's deduced from the field's name by converting + it to camelCase. + + + + Gets whether the "json_name" field is set + + + Clears the value of the "json_name" field + + + Field number for the "options" field. + + + Field number for the "proto3_optional" field. + + + + If true, this is a proto3 "optional". When a proto3 field is optional, it + tracks presence regardless of field type. + + When proto3_optional is true, this field must be belong to a oneof to + signal to old proto3 clients that presence is tracked for this field. This + oneof is known as a "synthetic" oneof, and this field must be its sole + member (each proto3 optional field gets its own synthetic oneof). Synthetic + oneofs exist in the descriptor only, and do not generate any API. Synthetic + oneofs must be ordered after all "real" oneofs. + + For message fields, proto3_optional doesn't create any semantic change, + since non-repeated message fields always track presence. However it still + indicates the semantic detail of whether the user wrote "optional" or not. + This can be useful for round-tripping the .proto file. For consistency we + give message fields a synthetic oneof also, even though it is not required + to track presence. This is especially important because the parser can't + tell if a field is a message or an enum, so it must always create a + synthetic oneof. + + Proto2 optional fields do not set this flag, because they already indicate + optional with `LABEL_OPTIONAL`. + + + + Gets whether the "proto3_optional" field is set + + + Clears the value of the "proto3_optional" field + + + Container for nested types declared in the FieldDescriptorProto message type. + + + + 0 is reserved for errors. + Order is weird for historical reasons. + + + + + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + negative values are likely. + + + + + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + negative values are likely. + + + + + Tag-delimited aggregate. + Group type is deprecated and not supported in proto3. However, Proto3 + implementations should still be able to parse the group wire format and + treat group fields as unknown fields. + + + + + Length-delimited aggregate. + + + + + New in version 2. + + + + + Uses ZigZag encoding. + + + + + Uses ZigZag encoding. + + + + + 0 is reserved for errors + + + + + Describes a oneof. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "options" field. + + + + Describes an enum type. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "value" field. + + + Field number for the "options" field. + + + Field number for the "reserved_range" field. + + + + Range of reserved numeric values. Reserved numeric values may not be used + by enum values in the same enum declaration. Reserved ranges may not + overlap. + + + + Field number for the "reserved_name" field. + + + + Reserved enum value names, which may not be reused. A given name may only + be reserved once. + + + + Container for nested types declared in the EnumDescriptorProto message type. + + + + Range of reserved numeric values. Reserved values may not be used by + entries in the same enum. Reserved ranges may not overlap. + + Note that this is distinct from DescriptorProto.ReservedRange in that it + is inclusive such that it can appropriately represent the entire int32 + domain. + + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Inclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + + Describes a value within an enum. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "number" field. + + + Gets whether the "number" field is set + + + Clears the value of the "number" field + + + Field number for the "options" field. + + + + Describes a service. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "method" field. + + + Field number for the "options" field. + + + + Describes a method of a service. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "input_type" field. + + + + Input and output type names. These are resolved in the same way as + FieldDescriptorProto.type_name, but must refer to a message type. + + + + Gets whether the "input_type" field is set + + + Clears the value of the "input_type" field + + + Field number for the "output_type" field. + + + Gets whether the "output_type" field is set + + + Clears the value of the "output_type" field + + + Field number for the "options" field. + + + Field number for the "client_streaming" field. + + + + Identifies if client streams multiple client messages + + + + Gets whether the "client_streaming" field is set + + + Clears the value of the "client_streaming" field + + + Field number for the "server_streaming" field. + + + + Identifies if server streams multiple server messages + + + + Gets whether the "server_streaming" field is set + + + Clears the value of the "server_streaming" field + + + Field number for the "java_package" field. + + + + Sets the Java package where classes generated from this .proto will be + placed. By default, the proto package is used, but this is often + inappropriate because proto packages do not normally start with backwards + domain names. + + + + Gets whether the "java_package" field is set + + + Clears the value of the "java_package" field + + + Field number for the "java_outer_classname" field. + + + + If set, all the classes from the .proto file are wrapped in a single + outer class with the given name. This applies to both Proto1 + (equivalent to the old "--one_java_file" option) and Proto2 (where + a .proto always translates to a single class, but you may want to + explicitly choose the class name). + + + + Gets whether the "java_outer_classname" field is set + + + Clears the value of the "java_outer_classname" field + + + Field number for the "java_multiple_files" field. + + + + If set true, then the Java code generator will generate a separate .java + file for each top-level message, enum, and service defined in the .proto + file. Thus, these types will *not* be nested inside the outer class + named by java_outer_classname. However, the outer class will still be + generated to contain the file's getDescriptor() method as well as any + top-level extensions defined in the file. + + + + Gets whether the "java_multiple_files" field is set + + + Clears the value of the "java_multiple_files" field + + + Field number for the "java_generate_equals_and_hash" field. + + + + This option does nothing. + + + + Gets whether the "java_generate_equals_and_hash" field is set + + + Clears the value of the "java_generate_equals_and_hash" field + + + Field number for the "java_string_check_utf8" field. + + + + If set true, then the Java2 code generator will generate code that + throws an exception whenever an attempt is made to assign a non-UTF-8 + byte sequence to a string field. + Message reflection will do the same. + However, an extension field still accepts non-UTF-8 byte sequences. + This option has no effect on when used with the lite runtime. + + + + Gets whether the "java_string_check_utf8" field is set + + + Clears the value of the "java_string_check_utf8" field + + + Field number for the "optimize_for" field. + + + Gets whether the "optimize_for" field is set + + + Clears the value of the "optimize_for" field + + + Field number for the "go_package" field. + + + + Sets the Go package where structs generated from this .proto will be + placed. If omitted, the Go package will be derived from the following: + - The basename of the package import path, if provided. + - Otherwise, the package statement in the .proto file, if present. + - Otherwise, the basename of the .proto file, without extension. + + + + Gets whether the "go_package" field is set + + + Clears the value of the "go_package" field + + + Field number for the "cc_generic_services" field. + + + + Should generic services be generated in each language? "Generic" services + are not specific to any particular RPC system. They are generated by the + main code generators in each language (without additional plugins). + Generic services were the only kind of service generation supported by + early versions of google.protobuf. + + Generic services are now considered deprecated in favor of using plugins + that generate code specific to your particular RPC system. Therefore, + these default to false. Old code which depends on generic services should + explicitly set them to true. + + + + Gets whether the "cc_generic_services" field is set + + + Clears the value of the "cc_generic_services" field + + + Field number for the "java_generic_services" field. + + + Gets whether the "java_generic_services" field is set + + + Clears the value of the "java_generic_services" field + + + Field number for the "py_generic_services" field. + + + Gets whether the "py_generic_services" field is set + + + Clears the value of the "py_generic_services" field + + + Field number for the "php_generic_services" field. + + + Gets whether the "php_generic_services" field is set + + + Clears the value of the "php_generic_services" field + + + Field number for the "deprecated" field. + + + + Is this file deprecated? + Depending on the target platform, this can emit Deprecated annotations + for everything in the file, or it will be completely ignored; in the very + least, this is a formalization for deprecating files. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "cc_enable_arenas" field. + + + + Enables the use of arenas for the proto messages in this file. This applies + only to generated classes for C++. + + + + Gets whether the "cc_enable_arenas" field is set + + + Clears the value of the "cc_enable_arenas" field + + + Field number for the "objc_class_prefix" field. + + + + Sets the objective c class prefix which is prepended to all objective c + generated classes from this .proto. There is no default. + + + + Gets whether the "objc_class_prefix" field is set + + + Clears the value of the "objc_class_prefix" field + + + Field number for the "csharp_namespace" field. + + + + Namespace for generated classes; defaults to the package. + + + + Gets whether the "csharp_namespace" field is set + + + Clears the value of the "csharp_namespace" field + + + Field number for the "swift_prefix" field. + + + + By default Swift generators will take the proto package and CamelCase it + replacing '.' with underscore and use that to prefix the types/symbols + defined. When this options is provided, they will use this value instead + to prefix the types/symbols defined. + + + + Gets whether the "swift_prefix" field is set + + + Clears the value of the "swift_prefix" field + + + Field number for the "php_class_prefix" field. + + + + Sets the php class prefix which is prepended to all php generated classes + from this .proto. Default is empty. + + + + Gets whether the "php_class_prefix" field is set + + + Clears the value of the "php_class_prefix" field + + + Field number for the "php_namespace" field. + + + + Use this option to change the namespace of php generated classes. Default + is empty. When this option is empty, the package name will be used for + determining the namespace. + + + + Gets whether the "php_namespace" field is set + + + Clears the value of the "php_namespace" field + + + Field number for the "php_metadata_namespace" field. + + + + Use this option to change the namespace of php generated metadata classes. + Default is empty. When this option is empty, the proto file name will be + used for determining the namespace. + + + + Gets whether the "php_metadata_namespace" field is set + + + Clears the value of the "php_metadata_namespace" field + + + Field number for the "ruby_package" field. + + + + Use this option to change the package of ruby generated classes. Default + is empty. When this option is not set, the package name will be used for + determining the ruby package. + + + + Gets whether the "ruby_package" field is set + + + Clears the value of the "ruby_package" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. + See the documentation for the "Options" section above. + + + + Container for nested types declared in the FileOptions message type. + + + + Generated classes can be optimized for speed or code size. + + + + + Generate complete code for parsing, serialization, + + + + + etc. + + + + + Generate code using MessageLite and the lite runtime. + + + + Field number for the "message_set_wire_format" field. + + + + Set true to use the old proto1 MessageSet wire format for extensions. + This is provided for backwards-compatibility with the MessageSet wire + format. You should not use this for any other reason: It's less + efficient, has fewer features, and is more complicated. + + The message must be defined exactly as follows: + message Foo { + option message_set_wire_format = true; + extensions 4 to max; + } + Note that the message cannot have any defined fields; MessageSets only + have extensions. + + All extensions of your type must be singular messages; e.g. they cannot + be int32s, enums, or repeated messages. + + Because this is an option, the above two restrictions are not enforced by + the protocol compiler. + + + + Gets whether the "message_set_wire_format" field is set + + + Clears the value of the "message_set_wire_format" field + + + Field number for the "no_standard_descriptor_accessor" field. + + + + Disables the generation of the standard "descriptor()" accessor, which can + conflict with a field of the same name. This is meant to make migration + from proto1 easier; new code should avoid fields named "descriptor". + + + + Gets whether the "no_standard_descriptor_accessor" field is set + + + Clears the value of the "no_standard_descriptor_accessor" field + + + Field number for the "deprecated" field. + + + + Is this message deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the message, or it will be completely ignored; in the very least, + this is a formalization for deprecating messages. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "map_entry" field. + + + + Whether the message is an automatically generated map entry type for the + maps field. + + For maps fields: + map<KeyType, ValueType> map_field = 1; + The parsed descriptor looks like: + message MapFieldEntry { + option map_entry = true; + optional KeyType key = 1; + optional ValueType value = 2; + } + repeated MapFieldEntry map_field = 1; + + Implementations may choose not to generate the map_entry=true message, but + use a native map in the target language to hold the keys and values. + The reflection APIs in such implementations still need to work as + if the field is a repeated message field. + + NOTE: Do not set the option in .proto files. Always use the maps syntax + instead. The option should only be implicitly set by the proto compiler + parser. + + + + Gets whether the "map_entry" field is set + + + Clears the value of the "map_entry" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "ctype" field. + + + + The ctype option instructs the C++ code generator to use a different + representation of the field than it normally would. See the specific + options below. This option is not yet implemented in the open source + release -- sorry, we'll try to include it in a future version! + + + + Gets whether the "ctype" field is set + + + Clears the value of the "ctype" field + + + Field number for the "packed" field. + + + + The packed option can be enabled for repeated primitive fields to enable + a more efficient representation on the wire. Rather than repeatedly + writing the tag and type for each element, the entire array is encoded as + a single length-delimited blob. In proto3, only explicit setting it to + false will avoid using packed encoding. + + + + Gets whether the "packed" field is set + + + Clears the value of the "packed" field + + + Field number for the "jstype" field. + + + + The jstype option determines the JavaScript type used for values of the + field. The option is permitted only for 64 bit integral and fixed types + (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + is represented as JavaScript string, which avoids loss of precision that + can happen when a large value is converted to a floating point JavaScript. + Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + use the JavaScript "number" type. The behavior of the default option + JS_NORMAL is implementation dependent. + + This option is an enum to permit additional types to be added, e.g. + goog.math.Integer. + + + + Gets whether the "jstype" field is set + + + Clears the value of the "jstype" field + + + Field number for the "lazy" field. + + + + Should this field be parsed lazily? Lazy applies only to message-type + fields. It means that when the outer message is initially parsed, the + inner message's contents will not be parsed but instead stored in encoded + form. The inner message will actually be parsed when it is first accessed. + + This is only a hint. Implementations are free to choose whether to use + eager or lazy parsing regardless of the value of this option. However, + setting this option true suggests that the protocol author believes that + using lazy parsing on this field is worth the additional bookkeeping + overhead typically needed to implement it. + + This option does not affect the public interface of any generated code; + all method signatures remain the same. Furthermore, thread-safety of the + interface is not affected by this option; const methods remain safe to + call from multiple threads concurrently, while non-const methods continue + to require exclusive access. + + Note that implementations may choose not to check required fields within + a lazy sub-message. That is, calling IsInitialized() on the outer message + may return true even if the inner message has missing required fields. + This is necessary because otherwise the inner message would have to be + parsed in order to perform the check, defeating the purpose of lazy + parsing. An implementation which chooses not to check required fields + must be consistent about it. That is, for any particular sub-message, the + implementation must either *always* check its required fields, or *never* + check its required fields, regardless of whether or not the message has + been parsed. + + + + Gets whether the "lazy" field is set + + + Clears the value of the "lazy" field + + + Field number for the "deprecated" field. + + + + Is this field deprecated? + Depending on the target platform, this can emit Deprecated annotations + for accessors, or it will be completely ignored; in the very least, this + is a formalization for deprecating fields. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "weak" field. + + + + For Google-internal migration only. Do not use. + + + + Gets whether the "weak" field is set + + + Clears the value of the "weak" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Container for nested types declared in the FieldOptions message type. + + + + Default mode. + + + + + Use the default type. + + + + + Use JavaScript strings. + + + + + Use JavaScript numbers. + + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "allow_alias" field. + + + + Set this option to true to allow mapping different tag names to the same + value. + + + + Gets whether the "allow_alias" field is set + + + Clears the value of the "allow_alias" field + + + Field number for the "deprecated" field. + + + + Is this enum deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum, or it will be completely ignored; in the very least, this + is a formalization for deprecating enums. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "deprecated" field. + + + + Is this enum value deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum value, or it will be completely ignored; in the very least, + this is a formalization for deprecating enum values. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "deprecated" field. + + + + Is this service deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the service, or it will be completely ignored; in the very least, + this is a formalization for deprecating services. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "deprecated" field. + + + + Is this method deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the method, or it will be completely ignored; in the very least, + this is a formalization for deprecating methods. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "idempotency_level" field. + + + Gets whether the "idempotency_level" field is set + + + Clears the value of the "idempotency_level" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Container for nested types declared in the MethodOptions message type. + + + + Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + or neither? HTTP based RPC implementation may choose GET verb for safe + methods, and PUT verb for idempotent methods instead of the default POST. + + + + + implies idempotent + + + + + idempotent, but may have side effects + + + + + A message representing a option the parser does not recognize. This only + appears in options protos created by the compiler::Parser class. + DescriptorPool resolves these when building Descriptor objects. Therefore, + options protos in descriptor objects (e.g. returned by Descriptor::options(), + or produced by Descriptor::CopyTo()) will never have UninterpretedOptions + in them. + + + + Field number for the "name" field. + + + Field number for the "identifier_value" field. + + + + The value of the uninterpreted option, in whatever type the tokenizer + identified it as during parsing. Exactly one of these should be set. + + + + Gets whether the "identifier_value" field is set + + + Clears the value of the "identifier_value" field + + + Field number for the "positive_int_value" field. + + + Gets whether the "positive_int_value" field is set + + + Clears the value of the "positive_int_value" field + + + Field number for the "negative_int_value" field. + + + Gets whether the "negative_int_value" field is set + + + Clears the value of the "negative_int_value" field + + + Field number for the "double_value" field. + + + Gets whether the "double_value" field is set + + + Clears the value of the "double_value" field + + + Field number for the "string_value" field. + + + Gets whether the "string_value" field is set + + + Clears the value of the "string_value" field + + + Field number for the "aggregate_value" field. + + + Gets whether the "aggregate_value" field is set + + + Clears the value of the "aggregate_value" field + + + Container for nested types declared in the UninterpretedOption message type. + + + + The name of the uninterpreted option. Each string represents a segment in + a dot-separated name. is_extension is true iff a segment represents an + extension (denoted with parentheses in options specs in .proto files). + E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents + "foo.(bar.baz).qux". + + + + Field number for the "name_part" field. + + + Gets whether the "name_part" field is set + + + Clears the value of the "name_part" field + + + Field number for the "is_extension" field. + + + Gets whether the "is_extension" field is set + + + Clears the value of the "is_extension" field + + + + Encapsulates information about the original source file from which a + FileDescriptorProto was generated. + + + + Field number for the "location" field. + + + + A Location identifies a piece of source code in a .proto file which + corresponds to a particular definition. This information is intended + to be useful to IDEs, code indexers, documentation generators, and similar + tools. + + For example, say we have a file like: + message Foo { + optional string foo = 1; + } + Let's look at just the field definition: + optional string foo = 1; + ^ ^^ ^^ ^ ^^^ + a bc de f ghi + We have the following locations: + span path represents + [a,i) [ 4, 0, 2, 0 ] The whole field definition. + [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + + Notes: + - A location may refer to a repeated field itself (i.e. not to any + particular index within it). This is used whenever a set of elements are + logically enclosed in a single code segment. For example, an entire + extend block (possibly containing multiple extension definitions) will + have an outer location whose path refers to the "extensions" repeated + field without an index. + - Multiple locations may have the same path. This happens when a single + logical declaration is spread out across multiple places. The most + obvious example is the "extend" block again -- there may be multiple + extend blocks in the same scope, each of which will have the same path. + - A location's span is not always a subset of its parent's span. For + example, the "extendee" of an extension declaration appears at the + beginning of the "extend" block and is shared by all extensions within + the block. + - Just because a location's span is a subset of some other location's span + does not mean that it is a descendant. For example, a "group" defines + both a type and a field in a single declaration. Thus, the locations + corresponding to the type and field and their components will overlap. + - Code which tries to interpret locations should probably be designed to + ignore those that it doesn't understand, as more types of locations could + be recorded in the future. + + + + Container for nested types declared in the SourceCodeInfo message type. + + + Field number for the "path" field. + + + + Identifies which part of the FileDescriptorProto was defined at this + location. + + Each element is a field number or an index. They form a path from + the root FileDescriptorProto to the place where the definition. For + example, this path: + [ 4, 3, 2, 7, 1 ] + refers to: + file.message_type(3) // 4, 3 + .field(7) // 2, 7 + .name() // 1 + This is because FileDescriptorProto.message_type has field number 4: + repeated DescriptorProto message_type = 4; + and DescriptorProto.field has field number 2: + repeated FieldDescriptorProto field = 2; + and FieldDescriptorProto.name has field number 1: + optional string name = 1; + + Thus, the above path gives the location of a field name. If we removed + the last element: + [ 4, 3, 2, 7 ] + this path refers to the whole field declaration (from the beginning + of the label to the terminating semicolon). + + + + Field number for the "span" field. + + + + Always has exactly three or four elements: start line, start column, + end line (optional, otherwise assumed same as start line), end column. + These are packed into a single field for efficiency. Note that line + and column numbers are zero-based -- typically you will want to add + 1 to each before displaying to a user. + + + + Field number for the "leading_comments" field. + + + + If this SourceCodeInfo represents a complete declaration, these are any + comments appearing before and after the declaration which appear to be + attached to the declaration. + + A series of line comments appearing on consecutive lines, with no other + tokens appearing on those lines, will be treated as a single comment. + + leading_detached_comments will keep paragraphs of comments that appear + before (but not connected to) the current element. Each paragraph, + separated by empty lines, will be one comment element in the repeated + field. + + Only the comment content is provided; comment markers (e.g. //) are + stripped out. For block comments, leading whitespace and an asterisk + will be stripped from the beginning of each line other than the first. + Newlines are included in the output. + + Examples: + + optional int32 foo = 1; // Comment attached to foo. + // Comment attached to bar. + optional int32 bar = 2; + + optional string baz = 3; + // Comment attached to baz. + // Another line attached to baz. + + // Comment attached to qux. + // + // Another line attached to qux. + optional double qux = 4; + + // Detached comment for corge. This is not leading or trailing comments + // to qux or corge because there are blank lines separating it from + // both. + + // Detached comment for corge paragraph 2. + + optional string corge = 5; + /* Block comment attached + * to corge. Leading asterisks + * will be removed. */ + /* Block comment attached to + * grault. */ + optional int32 grault = 6; + + // ignored detached comments. + + + + Gets whether the "leading_comments" field is set + + + Clears the value of the "leading_comments" field + + + Field number for the "trailing_comments" field. + + + Gets whether the "trailing_comments" field is set + + + Clears the value of the "trailing_comments" field + + + Field number for the "leading_detached_comments" field. + + + + Describes the relationship between generated code and its original source + file. A GeneratedCodeInfo message is associated with only one generated + source file, but may contain references to different source .proto files. + + + + Field number for the "annotation" field. + + + + An Annotation connects some span of text in generated code to an element + of its generating .proto file. + + + + Container for nested types declared in the GeneratedCodeInfo message type. + + + Field number for the "path" field. + + + + Identifies the element in the original source .proto file. This field + is formatted the same as SourceCodeInfo.Location.path. + + + + Field number for the "source_file" field. + + + + Identifies the filesystem path to the original source .proto. + + + + Gets whether the "source_file" field is set + + + Clears the value of the "source_file" field + + + Field number for the "begin" field. + + + + Identifies the starting offset in bytes in the generated code + that relates to the identified object. + + + + Gets whether the "begin" field is set + + + Clears the value of the "begin" field + + + Field number for the "end" field. + + + + Identifies the ending offset in bytes in the generated code that + relates to the identified offset. The end offset should be one past + the last relevant byte (so the length of the text = end - begin). + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + + Base class for nearly all descriptors, providing common functionality. + + + + + The index of this descriptor within its parent descriptor. + + + This returns the index of this descriptor within its parent, for + this descriptor's type. (There can be duplicate values for different + types, e.g. one enum type with index 0 and one message type with index 0.) + + + + + Returns the name of the entity (field, message etc) being described. + + + + + The fully qualified name of the descriptor's target. + + + + + The file this descriptor was declared in. + + + + + The declaration information about the descriptor, or null if no declaration information + is available for this descriptor. + + + This information is typically only available for dynamically loaded descriptors, + for example within a protoc plugin where the full descriptors, including source info, + are passed to the code by protoc. + + + + + Retrieves the list of nested descriptors corresponding to the given field number, if any. + If the field is unknown or not a nested descriptor list, return null to terminate the search. + The default implementation returns null. + + + + + Provides additional information about the declaration of a descriptor, + such as source location and comments. + + + + + The descriptor this declaration relates to. + + + + + The start line of the declaration within the source file. This value is 1-based. + + + + + The start column of the declaration within the source file. This value is 1-based. + + + + + // The end line of the declaration within the source file. This value is 1-based. + + + + + The end column of the declaration within the source file. This value is 1-based, and + exclusive. (The final character of the declaration is on the column before this value.) + + + + + Comments appearing before the declaration. Never null, but may be empty. Multi-line comments + are represented as a newline-separated string. Leading whitespace and the comment marker ("//") + are removed from each line. + + + + + Comments appearing after the declaration. Never null, but may be empty. Multi-line comments + are represented as a newline-separated string. Leading whitespace and the comment marker ("//") + are removed from each line. + + + + + Comments appearing before the declaration, but separated from it by blank + lines. Each string represents a newline-separated paragraph of comments. + Leading whitespace and the comment marker ("//") are removed from each line. + The list is never null, but may be empty. Likewise each element is never null, but may be empty. + + + + + Contains lookup tables containing all the descriptors defined in a particular file. + + + + + Finds a symbol of the given name within the pool. + + The type of symbol to look for + Fully-qualified name to look up + The symbol with the given name and type, + or null if the symbol doesn't exist or has the wrong type + + + + Adds a package to the symbol tables. If a package by the same name + already exists, that is fine, but if some other kind of symbol + exists under the same name, an exception is thrown. If the package + has multiple components, this also adds the parent package(s). + + + + + Adds a symbol to the symbol table. + + The symbol already existed + in the symbol table. + + + + Verifies that the descriptor's name is valid (i.e. it contains + only letters, digits and underscores, and does not start with a digit). + + + + + + Returns the field with the given number in the given descriptor, + or null if it can't be found. + + + + + Adds a field to the fieldsByNumber table. + + A field with the same + containing type and number already exists. + + + + Adds an enum value to the enumValuesByNumber table. If an enum value + with the same type and number already exists, this method does nothing. + (This is allowed; the first value defined with the number takes precedence.) + + + + + Looks up a descriptor by name, relative to some other descriptor. + The name may be fully-qualified (with a leading '.'), partially-qualified, + or unqualified. C++-like name lookup semantics are used to search for the + matching descriptor. + + + This isn't heavily optimized, but it's only used during cross linking anyway. + If it starts being used more widely, we should look at performance more carefully. + + + + + Internal class containing utility methods when working with descriptors. + + + + + Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert + arrays. + + + + + Converts the given array into a read-only list, applying the specified conversion to + each input element. + + + + + Thrown when building descriptors fails because the source DescriptorProtos + are not valid. + + + + + The full name of the descriptor where the error occurred. + + + + + A human-readable description of the error. (The Message property + is made up of the descriptor's name and this description.) + + + + + Descriptor for an enum type in a .proto file. + + + + + The brief name of the descriptor's target. + + + + + The CLR type for this enum. For generated code, this will be a CLR enum type. + + + + + If this is a nested type, get the outer descriptor, otherwise null. + + + + + An unmodifiable list of defined value descriptors for this enum. + + + + + Finds an enum value by number. If multiple enum values have the + same number, this returns the first defined value with that number. + If there is no value for the given number, this returns null. + + + + + Finds an enum value by name. + + The unqualified name of the value (e.g. "FOO"). + The value's descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this enum. + + + + + The EnumOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value enum option for this descriptor + + + + + Gets a repeated value enum option for this descriptor + + + + + Descriptor for a single enum value within an enum in a .proto file. + + + + + Returns the name of the enum value described by this object. + + + + + Returns the number associated with this enum value. + + + + + Returns the enum descriptor that this value is part of. + + + + + The (possibly empty) set of custom options for this enum value. + + + + + The EnumValueOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value enum value option for this descriptor + + + + + Gets a repeated value enum value option for this descriptor + + + + + A collection to simplify retrieving the descriptors of extensions in a descriptor for a message + + + + + Returns a readonly list of all the extensions defined in this type in + the order they were defined in the source .proto file + + + + + Returns a readonly list of all the extensions define in this type that extend + the provided descriptor type in the order they were defined in the source .proto file + + + + + Returns a readonly list of all the extensions define in this type that extend + the provided descriptor type in accending field order + + + + + Base class for field accessors. + + + + + Descriptor for a field or extension within a message in a .proto file. + + + + + Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension. + + + + + Returns the oneof containing this field, or null if it is not part of a oneof. + + + + + Returns the oneof containing this field if it's a "real" oneof, or null if either this + field is not part of a oneof, or the oneof is synthetic. + + + + + The effective JSON name for this field. This is usually the lower-camel-cased form of the field name, + but can be overridden using the json_name option in the .proto file. + + + + + Indicates whether this field supports presence, either implicitly (e.g. due to it being a message + type field) or explicitly via Has/Clear members. If this returns true, it is safe to call + and + on this field's accessor with a suitable message. + + + + + An extension identifier for this field, or null if this field isn't an extension. + + + + + The brief name of the descriptor's target. + + + + + Returns the accessor for this field. + + + + While a describes the field, it does not provide + any way of obtaining or changing the value of the field within a specific message; + that is the responsibility of the accessor. + + + In descriptors for generated code, the value returned by this property will be non-null for all + regular fields. However, if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, and the value of the map field itself is represented by a dictionary in the + reflection API. There are never instances of those "hidden" messages, so no accessor is provided + and this property will return null. + + + In dynamically loaded descriptors, the value returned by this property will current be null; + if and when dynamic messages are supported, it will return a suitable accessor to work with + them. + + + + + + Maps a field type as included in the .proto file to a FieldType. + + + + + Returns true if this field is a repeated field; false otherwise. + + + + + Returns true if this field is a required field; false otherwise. + + + + + Returns true if this field is a map field; false otherwise. + + + + + Returns true if this field is a packed, repeated field; false otherwise. + + + + + Returns true if this field extends another message type; false otherwise. + + + + + Returns the type of the field. + + + + + Returns the field number declared in the proto file. + + + + + Compares this descriptor with another one, ordering in "canonical" order + which simply means ascending order by field number. + must be a field of the same type, i.e. the of + both fields must be the same. + + + + + For enum fields, returns the field's type. + + + + + For embedded message and group fields, returns the field's type. + + + + + For extension fields, returns the extended type + + + + + The (possibly empty) set of custom options for this field. + + + + + The FieldOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value field option for this descriptor + + + + + Gets a repeated value field option for this descriptor + + + + + Look up and cross-link all field types etc. + + + + + Enumeration of all the possible field types. + + + + + The double field type. + + + + + The float field type. + + + + + The int64 field type. + + + + + The uint64 field type. + + + + + The int32 field type. + + + + + The fixed64 field type. + + + + + The fixed32 field type. + + + + + The bool field type. + + + + + The string field type. + + + + + The field type used for groups. + + + + + The field type used for message fields. + + + + + The bytes field type. + + + + + The uint32 field type. + + + + + The sfixed32 field type. + + + + + The sfixed64 field type. + + + + + The sint32 field type. + + + + + The sint64 field type. + + + + + The field type used for enum fields. + + + + + The syntax of a .proto file + + + + + Proto2 syntax + + + + + Proto3 syntax + + + + + An unknown declared syntax + + + + + Describes a .proto file, including everything defined within. + IDescriptor is implemented such that the File property returns this descriptor, + and the FullName is the same as the Name. + + + + + Computes the full name of a descriptor within this file, with an optional parent message. + + + + + Extracts public dependencies from direct dependencies. This is a static method despite its + first parameter, as the value we're in the middle of constructing is only used for exceptions. + + + + + The descriptor in its protocol message representation. + + + + + The syntax of the file + + + + + The file name. + + + + + The package as declared in the .proto file. This may or may not + be equivalent to the .NET namespace of the generated classes. + + + + + Unmodifiable list of top-level message types declared in this file. + + + + + Unmodifiable list of top-level enum types declared in this file. + + + + + Unmodifiable list of top-level services declared in this file. + + + + + Unmodifiable list of top-level extensions declared in this file. + Note that some extensions may be incomplete (FieldDescriptor.Extension may be null) + if this descriptor was generated using a version of protoc that did not fully + support extensions in C#. + + + + + Unmodifiable list of this file's dependencies (imports). + + + + + Unmodifiable list of this file's public dependencies (public imports). + + + + + The original serialized binary form of this descriptor. + + + + + Implementation of IDescriptor.FullName - just returns the same as Name. + + + + + Implementation of IDescriptor.File - just returns this descriptor. + + + + + Pool containing symbol descriptors. + + + + + Finds a type (message, enum, service or extension) in the file by name. Does not find nested types. + + The unqualified type name to look for. + The type of descriptor to look for + The type's descriptor, or null if not found. + + + + Builds a FileDescriptor from its protocol buffer representation. + + The original serialized descriptor data. + We have only limited proto2 support, so serializing FileDescriptorProto + would not necessarily give us this. + The protocol message form of the FileDescriptor. + FileDescriptors corresponding to all of the + file's dependencies, in the exact order listed in the .proto file. May be null, + in which case it is treated as an empty array. + Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false). + Details about generated code, for the purposes of reflection. + If is not + a valid descriptor. This can occur for a number of reasons, such as a field + having an undefined type or because two messages were defined with the same name. + + + + Creates a descriptor for generated code. + + + This method is only designed to be used by the results of generating code with protoc, + which creates the appropriate dependencies etc. It has to be public because the generated + code is "external", but should not be called directly by end users. + + + + + Converts the given descriptor binary data into FileDescriptor objects. + Note: reflection using the returned FileDescriptors is not currently supported. + + The binary file descriptor proto data. Must not be null, and any + dependencies must come before the descriptor which depends on them. (If A depends on B, and B + depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible + with the order in which protoc provides descriptors to plugins. + The file descriptors corresponding to . + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns the file descriptor for descriptor.proto. + + + This is used for protos which take a direct dependency on descriptor.proto, typically for + annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf + runtime for reflection purposes. The messages are internal to the runtime as they would require + proto2 semantics for full support, but the file descriptor is available via this property. The + C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto. + + + The file descriptor for descriptor.proto. + + + + + The (possibly empty) set of custom options for this file. + + + + + The FileOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value file option for this descriptor + + + + + Gets a repeated value file option for this descriptor + + + + + Performs initialization for the given generic type argument. + + + This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated) + to make calls into the reflection machinery of this library to express an intention to use that type + reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers + attempting to determine which generic type arguments need to be handled will spot the code path and act + accordingly. + + The type to force initialization for. + + + + Extra information provided by generated code when initializing a message or file descriptor. + These are constructed as required, and are not long-lived. Hand-written code should + never need to use this type. + + + + + Irrelevant for file descriptors; the CLR type for the message for message descriptors. + + + + + Irrelevant for file descriptors; the parser for message descriptors. + + + + + Irrelevant for file descriptors; the CLR property names (in message descriptor field order) + for fields in the message for message descriptors. + + + + + The extensions defined within this file/message descriptor + + + + + Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order) + for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo", + there will be a "FooCase" property and a "ClearFoo" method. + + + + + The reflection information for types within this file/message descriptor. Elements may be null + if there is no corresponding generated type, e.g. for map entry types. + + + + + The CLR types for enums within this file/message descriptor. + + + + + Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. + Each array parameter may be null, to indicate a lack of values. + The parameter order is designed to make it feasible to format the generated code readably. + + + + + Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. + Each array parameter may be null, to indicate a lack of values. + The parameter order is designed to make it feasible to format the generated code readably. + + + + + Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions. + + + + + Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums. + + + + + Interface implemented by all descriptor types. + + + + + Returns the name of the entity (message, field etc) being described. + + + + + Returns the fully-qualified name of the entity being described. + + + + + Returns the descriptor for the .proto file that this entity is part of. + + + + + Allows fields to be reflectively accessed. + + + + + Returns the descriptor associated with this field. + + + + + Clears the field in the specified message. (For repeated fields, + this clears the list.) + + + + + Fetches the field value. For repeated values, this will be an + implementation. For map values, this will be an + implementation. + + + + + Indicates whether the field in the specified message is set. + For proto3 fields that aren't explicitly optional, this throws an + + + + + Mutator for single "simple" fields only. + + + Repeated fields are mutated by fetching the value and manipulating it as a list. + Map fields are mutated by fetching the value and manipulating it as a dictionary. + + The field is not a "simple" field. + + + + Accessor for map fields. + + + + + Describes a message type. + + + + + The brief name of the descriptor's target. + + + + + The CLR type used to represent message instances from this descriptor. + + + + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, so this property will return null in such cases. + + + For wrapper types ( and the like), the type returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + + + + + + A parser for this message type. + + + + As is not generic, this cannot be statically + typed to the relevant type, but it should produce objects of a type compatible with . + + + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. No message parser object is created for + such messages, so this property will return null in such cases. + + + For wrapper types ( and the like), the parser returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + + + + + + Returns whether this message is one of the "well known types" which may have runtime/protoc support. + + + + + Returns whether this message is one of the "wrapper types" used for fields which represent primitive values + with the addition of presence. + + + + + If this is a nested type, get the outer descriptor, otherwise null. + + + + + A collection of fields, which can be retrieved by name or field number. + + + + + An unmodifiable list of extensions defined in this message's scope. + Note that some extensions may be incomplete (FieldDescriptor.Extension may be null) + if they are declared in a file generated using a version of protoc that did not fully + support extensions in C#. + + + + + An unmodifiable list of this message type's nested types. + + + + + An unmodifiable list of this message type's enum types. + + + + + An unmodifiable list of the "oneof" field collections in this message type. + All "real" oneofs (where returns false) + come before synthetic ones. + + + + + The number of real "oneof" descriptors in this message type. Every element in + with an index less than this will have a property value + of false; every element with an index greater than or equal to this will have a + property value of true. + + + + + Finds a field by field name. + + The unqualified name of the field (e.g. "foo"). + The field's descriptor, or null if not found. + + + + Finds a field by field number. + + The field number within this message type. + The field's descriptor, or null if not found. + + + + Finds a nested descriptor by name. The is valid for fields, nested + message types, oneofs and enums. + + The unqualified name of the descriptor, e.g. "Foo" + The descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this message. + + + + + The MessageOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value message option for this descriptor + + + + + Gets a repeated value message option for this descriptor + + + + + Looks up and cross-links all fields and nested types. + + + + + A collection to simplify retrieving the field accessor for a particular field. + + + + + Returns the fields in the message as an immutable list, in the order in which they + are declared in the source .proto file. + + + + + Returns the fields in the message as an immutable list, in ascending field number + order. Field numbers need not be contiguous, so there is no direct mapping from the + index in the list to the field number; to retrieve a field by field number, it is better + to use the indexer. + + + + + Returns a read-only dictionary mapping the field names in this message as they're available + in the JSON representation to the field descriptors. For example, a field foo_bar + in the message would result two entries, one with a key fooBar and one with a key + foo_bar, both referring to the same field. + + + + + Retrieves the descriptor for the field with the given number. + + Number of the field to retrieve the descriptor for + The accessor for the given field + The message descriptor does not contain a field + with the given number + + + + Retrieves the descriptor for the field with the given name. + + Name of the field to retrieve the descriptor for + The descriptor for the given field + The message descriptor does not contain a field + with the given name + + + + Describes a single method in a service. + + + + + The service this method belongs to. + + + + + The method's input type. + + + + + The method's input type. + + + + + Indicates if client streams multiple requests. + + + + + Indicates if server streams multiple responses. + + + + + The (possibly empty) set of custom options for this method. + + + + + The MethodOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value method option for this descriptor + + + + + Gets a repeated value method option for this descriptor + + + + + The brief name of the descriptor's target. + + + + + Reflection access for a oneof, allowing clear and "get case" actions. + + + + + Gets the descriptor for this oneof. + + + The descriptor of the oneof. + + + + + Clears the oneof in the specified message. + + + + + Indicates which field in the oneof is set for specified message + + + + + Describes a "oneof" field collection in a message type: a set of + fields of which at most one can be set in any particular message. + + + + + The brief name of the descriptor's target. + + + + + Gets the message type containing this oneof. + + + The message type containing this oneof. + + + + + Gets the fields within this oneof, in declaration order. + + + The fields within this oneof, in declaration order. + + + + + Returns true if this oneof is a synthetic oneof containing a proto3 optional field; + false otherwise. + + + + + Gets an accessor for reflective access to the values associated with the oneof + in a particular message. + + + + In descriptors for generated code, the value returned by this property will always be non-null. + + + In dynamically loaded descriptors, the value returned by this property will current be null; + if and when dynamic messages are supported, it will return a suitable accessor to work with + them. + + + + The accessor used for reflective access. + + + + + The (possibly empty) set of custom options for this oneof. + + + + + The OneofOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value oneof option for this descriptor + + + + + Gets a repeated value oneof option for this descriptor + + + + + Specifies the original name (in the .proto file) of a named element, + such as an enum value. + + + + + The name of the element in the .proto file. + + + + + If the name is preferred in the .proto file. + + + + + Constructs a new attribute instance for the given name. + + The name of the element in the .proto file. + + + + Represents a package in the symbol table. We use PackageDescriptors + just as placeholders so that someone cannot define, say, a message type + that has the same name as an existing package. + + + + + The methods in this class are somewhat evil, and should not be tampered with lightly. + Basically they allow the creation of relatively weakly typed delegates from MethodInfos + which are more strongly typed. They do this by creating an appropriate strongly typed + delegate from the MethodInfo, and then calling that within an anonymous method. + Mind-bending stuff (at least to your humble narrator) but the resulting delegates are + very fast compared with calling Invoke later on. + + + + + Empty Type[] used when calling GetProperty to force property instead of indexer fetching. + + + + + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to object. + + The method to create a delegate for, which must be declared in an IMessage + implementation. + + + + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to the specified type. The method is expected + to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that + means we need some extra work to perform conversions. + + The method to create a delegate for, which must be declared in an IMessage + implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + the type that declares the method, and the second argument to the first parameter type of the method. + + The method to create a delegate for, which must be declared in an IMessage + implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + type that declares the method. + + The method to create a delegate for, which must be declared in an IMessage + implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + the type that declares the method, and the second argument to the first parameter type of the method. + + + + + Creates a reflection helper for the given type arguments. Currently these are created on demand + rather than cached; this will be "busy" when initially loading a message's descriptor, but after that + they can be garbage collected. We could cache them by type if that proves to be important, but creating + an object is pretty cheap. + + + + + Accessor for repeated fields. + + + + + Describes a service type. + + + + + The brief name of the descriptor's target. + + + + + An unmodifiable list of methods in this service. + + + + + Finds a method by name. + + The unqualified name of the method (e.g. "Foo"). + The method's descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this service. + + + + + The ServiceOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value service option for this descriptor + + + + + Gets a repeated value service option for this descriptor + + + + + Accessor for single fields. + + + + + An immutable registry of types which can be looked up by their full name. + + + + + An empty type registry, containing no types. + + + + + Attempts to find a message descriptor by its full name. + + The full name of the message, which is the dot-separated + combination of package, containing messages and message name + The message descriptor corresponding to or null + if there is no such message descriptor. + + + + Creates a type registry from the specified set of file descriptors. + + + This is a convenience overload for + to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2). + + The set of files to include in the registry. Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the specified set of file descriptors. + + + All message types within all the specified files are added to the registry, and + the dependencies of the specified files are also added, recursively. + + The set of files to include in the registry. Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + + + This is a convenience overload for + to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2). + + The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + + + The specified message descriptors are only used to identify their file descriptors; the returned registry + contains all the types within the file descriptors which contain the specified message descriptors (and + the dependencies of those files), not just the specified messages. + + The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values. + A type registry for the given files. + + + + Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls. + + + + + Represents a single field in an UnknownFieldSet. + + An UnknownField consists of four lists of values. The lists correspond + to the four "wire types" used in the protocol buffer binary format. + Normally, only one of the four lists will contain any values, since it + is impossible to define a valid message type that declares two different + types for the same field number. However, the code is designed to allow + for the case where the same unknown field number is encountered using + multiple different wire types. + + + + + + Creates a new UnknownField. + + + + + Checks if two unknown field are equal. + + + + + Get the hash code of the unknown field. + + + + + Serializes the field, including the field number, and writes it to + + + The unknown field number. + The CodedOutputStream to write to. + + + + Computes the number of bytes required to encode this field, including field + number. + + + + + Merge the values in into this field. For each list + of values, 's values are append to the ones in this + field. + + + + + Returns a new list containing all of the given specified values from + both the and lists. + If is null and is empty, + null is returned. Otherwise, either a new list is created (if + is null) or the elements of are added to . + + + + + Adds a varint value. + + + + + Adds a fixed32 value. + + + + + Adds a fixed64 value. + + + + + Adds a length-delimited value. + + + + + Adds to the , creating + a new list if is null. The list is returned - either + the original reference or the new list. + + + + + Used to keep track of fields which were seen when parsing a protocol message + but whose field numbers or types are unrecognized. This most frequently + occurs when new fields are added to a message type and then messages containing + those fields are read by old software that was built before the new types were + added. + + Most users will never need to use this class directly. + + + + + Creates a new UnknownFieldSet. + + + + + Checks whether or not the given field number is present in the set. + + + + + Serializes the set and writes it to . + + + + + Gets the number of bytes required to encode this set. + + + + + Checks if two unknown field sets are equal. + + + + + Gets the unknown field set's hash code. + + + + + Adds a field to the set. If a field with the same number already exists, it + is replaced. + + + + + Parse a single field from and merge it + into this set. + + The coded input stream containing the field + false if the tag is an "end group" tag, true otherwise + + + + Create a new UnknownFieldSet if unknownFields is null. + Parse a single field from and merge it + into unknownFields. If is configured to discard unknown fields, + will be returned as-is and the field will be skipped. + + The UnknownFieldSet which need to be merged + The coded input stream containing the field + The merged UnknownFieldSet + + + + Merges the fields from into this set. + If a field number exists in both sets, the values in + will be appended to the values in this set. + + + + + Created a new UnknownFieldSet to if + needed and merges the fields from into the first set. + If a field number exists in both sets, the values in + will be appended to the values in this set. + + + + + Adds a field to the unknown field set. If a field with the same + number already exists, the two are merged. + + + + + Clone an unknown field set from . + + + + Holder for reflection information generated from google/protobuf/any.proto + + + File descriptor for google/protobuf/any.proto + + + + `Any` contains an arbitrary serialized protocol buffer message along with a + URL that describes the type of the serialized message. + + Protobuf library provides support to pack/unpack Any values in the form + of utility functions or additional generated methods of the Any type. + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := ptypes.MarshalAny(foo) + ... + foo := &pb.Foo{} + if err := ptypes.UnmarshalAny(any, foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + 'type.googleapis.com/full.type.name' as the type URL and the unpack + methods only use the fully qualified type name after the last '/' + in the type URL, for example "foo.bar.com/x/y.z" will yield type + name "y.z". + + JSON + ==== + The JSON representation of an `Any` value uses the regular + representation of the deserialized, embedded message, with an + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": <string>, + "lastName": <string> + } + + If the embedded message type is well-known and has a custom JSON + representation, that representation will be embedded adding a field + `value` which holds the custom JSON in addition to the `@type` + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + + + + Field number for the "type_url" field. + + + + A URL/resource name that uniquely identifies the type of the serialized + protocol buffer message. This string must contain at least + one "/" character. The last segment of the URL's path must represent + the fully qualified name of the type (as in + `path/google.protobuf.Duration`). The name should be in a canonical form + (e.g., leading "." is not accepted). + + In practice, teams usually precompile into the binary all types that they + expect it to use in the context of Any. However, for URLs which use the + scheme `http`, `https`, or no scheme, one can optionally set up a type + server that maps type URLs to message definitions as follows: + + * If no scheme is provided, `https` is assumed. + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the official + protobuf release, and it is not used for type URLs beginning with + type.googleapis.com. + + Schemes other than `http`, `https` (or the empty scheme) might be + used with implementation specific semantics. + + + + Field number for the "value" field. + + + + Must be a valid serialized protocol buffer of the above specified type. + + + + + Retrieves the type name for a type URL, matching the + of the packed message type. + + + + This is always just the last part of the URL, after the final slash. No validation of + anything before the trailing slash is performed. If the type URL does not include a slash, + an empty string is returned rather than an exception being thrown; this won't match any types, + and the calling code is probably in a better position to give a meaningful error. + + + There is no handling of fragments or queries at the moment. + + + The URL to extract the type name from + The type name + + + + Returns a bool indictating whether this Any message is of the target message type + + The descriptor of the message type + true if the type name matches the descriptor's full name or false otherwise + + + + Unpacks the content of this Any message into the target message type, + which must match the type URL within this Any message. + + The type of message to unpack the content into. + The unpacked message. + The target message type doesn't match the type URL in this message + + + + Attempts to unpack the content of this Any message into the target message type, + if it matches the type URL within this Any message. + + The type of message to attempt to unpack the content into. + true if the message was successfully unpacked; false if the type name didn't match + + + + Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com". + + The message to pack. + An Any message with the content and type URL of . + + + + Packs the specified message into an Any message using the specified type URL prefix. + + The message to pack. + The prefix for the type URL. + An Any message with the content and type URL of . + + + Holder for reflection information generated from google/protobuf/api.proto + + + File descriptor for google/protobuf/api.proto + + + + Api is a light-weight descriptor for an API Interface. + + Interfaces are also described as "protocol buffer services" in some contexts, + such as by the "service" keyword in a .proto file, but they are different + from API Services, which represent a concrete implementation of an interface + as opposed to simply a description of methods and bindings. They are also + sometimes simply referred to as "APIs" in other contexts, such as the name of + this message itself. See https://cloud.google.com/apis/design/glossary for + detailed terminology. + + + + Field number for the "name" field. + + + + The fully qualified name of this interface, including package name + followed by the interface's simple name. + + + + Field number for the "methods" field. + + + + The methods of this interface, in unspecified order. + + + + Field number for the "options" field. + + + + Any metadata attached to the interface. + + + + Field number for the "version" field. + + + + A version string for this interface. If specified, must have the form + `major-version.minor-version`, as in `1.10`. If the minor version is + omitted, it defaults to zero. If the entire version field is empty, the + major version is derived from the package name, as outlined below. If the + field is not empty, the version in the package name will be verified to be + consistent with what is provided here. + + The versioning schema uses [semantic + versioning](http://semver.org) where the major version number + indicates a breaking change and the minor version an additive, + non-breaking change. Both version numbers are signals to users + what to expect from different versions, and should be carefully + chosen based on the product plan. + + The major version is also reflected in the package name of the + interface, which must end in `v<major-version>`, as in + `google.feature.v1`. For major versions 0 and 1, the suffix can + be omitted. Zero major versions must only be used for + experimental, non-GA interfaces. + + + + Field number for the "source_context" field. + + + + Source context for the protocol buffer service represented by this + message. + + + + Field number for the "mixins" field. + + + + Included interfaces. See [Mixin][]. + + + + Field number for the "syntax" field. + + + + The source syntax of the service. + + + + + Method represents a method of an API interface. + + + + Field number for the "name" field. + + + + The simple name of this method. + + + + Field number for the "request_type_url" field. + + + + A URL of the input message type. + + + + Field number for the "request_streaming" field. + + + + If true, the request is streamed. + + + + Field number for the "response_type_url" field. + + + + The URL of the output message type. + + + + Field number for the "response_streaming" field. + + + + If true, the response is streamed. + + + + Field number for the "options" field. + + + + Any metadata attached to the method. + + + + Field number for the "syntax" field. + + + + The source syntax of this method. + + + + + Declares an API Interface to be included in this interface. The including + interface must redeclare all the methods from the included interface, but + documentation and options are inherited as follows: + + - If after comment and whitespace stripping, the documentation + string of the redeclared method is empty, it will be inherited + from the original method. + + - Each annotation belonging to the service config (http, + visibility) which is not set in the redeclared method will be + inherited. + + - If an http annotation is inherited, the path pattern will be + modified as follows. Any version prefix will be replaced by the + version of the including interface plus the [root][] path if + specified. + + Example of a simple mixin: + + package google.acl.v1; + service AccessControl { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v1/{resource=**}:getAcl"; + } + } + + package google.storage.v2; + service Storage { + rpc GetAcl(GetAclRequest) returns (Acl); + + // Get a data record. + rpc GetData(GetDataRequest) returns (Data) { + option (google.api.http).get = "/v2/{resource=**}"; + } + } + + Example of a mixin configuration: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + + The mixin construct implies that all methods in `AccessControl` are + also declared with same name and request/response types in + `Storage`. A documentation generator or annotation processor will + see the effective `Storage.GetAcl` method after inherting + documentation and annotations as follows: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/{resource=**}:getAcl"; + } + ... + } + + Note how the version in the path pattern changed from `v1` to `v2`. + + If the `root` field in the mixin is specified, it should be a + relative path under which inherited HTTP paths are placed. Example: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + root: acls + + This implies the following inherited HTTP annotation: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; + } + ... + } + + + + Field number for the "name" field. + + + + The fully qualified name of the interface which is included. + + + + Field number for the "root" field. + + + + If non-empty specifies a path under which inherited HTTP paths + are rooted. + + + + Holder for reflection information generated from google/protobuf/duration.proto + + + File descriptor for google/protobuf/duration.proto + + + + A Duration represents a signed, fixed-length span of time represented + as a count of seconds and fractions of seconds at nanosecond + resolution. It is independent of any calendar and concepts like "day" + or "month". It is related to Timestamp in that the difference between + two Timestamp values is a Duration and it can be added or subtracted + from a Timestamp. Range is approximately +-10,000 years. + + # Examples + + Example 1: Compute Duration from two Timestamps in pseudo code. + + Timestamp start = ...; + Timestamp end = ...; + Duration duration = ...; + + duration.seconds = end.seconds - start.seconds; + duration.nanos = end.nanos - start.nanos; + + if (duration.seconds < 0 && duration.nanos > 0) { + duration.seconds += 1; + duration.nanos -= 1000000000; + } else if (duration.seconds > 0 && duration.nanos < 0) { + duration.seconds -= 1; + duration.nanos += 1000000000; + } + + Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. + + Timestamp start = ...; + Duration duration = ...; + Timestamp end = ...; + + end.seconds = start.seconds + duration.seconds; + end.nanos = start.nanos + duration.nanos; + + if (end.nanos < 0) { + end.seconds -= 1; + end.nanos += 1000000000; + } else if (end.nanos >= 1000000000) { + end.seconds += 1; + end.nanos -= 1000000000; + } + + Example 3: Compute Duration from datetime.timedelta in Python. + + td = datetime.timedelta(days=3, minutes=10) + duration = Duration() + duration.FromTimedelta(td) + + # JSON Mapping + + In JSON format, the Duration type is encoded as a string rather than an + object, where the string ends in the suffix "s" (indicating seconds) and + is preceded by the number of seconds, with nanoseconds expressed as + fractional seconds. For example, 3 seconds with 0 nanoseconds should be + encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should + be expressed in JSON format as "3.000000001s", and 3 seconds and 1 + microsecond should be expressed in JSON format as "3.000001s". + + + + Field number for the "seconds" field. + + + + Signed seconds of the span of time. Must be from -315,576,000,000 + to +315,576,000,000 inclusive. Note: these bounds are computed from: + 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + + + + Field number for the "nanos" field. + + + + Signed fractions of a second at nanosecond resolution of the span + of time. Durations less than one second are represented with a 0 + `seconds` field and a positive or negative `nanos` field. For durations + of one second or more, a non-zero value for the `nanos` field must be + of the same sign as the `seconds` field. Must be from -999,999,999 + to +999,999,999 inclusive. + + + + + The number of nanoseconds in a second. + + + + + The number of nanoseconds in a BCL tick (as used by and ). + + + + + The maximum permitted number of seconds. + + + + + The minimum permitted number of seconds. + + + + + Converts this to a . + + If the duration is not a precise number of ticks, it is truncated towards 0. + The value of this duration, as a TimeSpan. + This value isn't a valid normalized duration, as + described in the documentation. + + + + Converts the given to a . + + The TimeSpan to convert. + The value of the given TimeSpan, as a Duration. + + + + Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes. + + The duration to negate. Must not be null. + The negated value of this duration. + + + + Adds the two specified values together. + + The first value to add. Must not be null. + The second value to add. Must not be null. + + + + + Subtracts one from another. + + The duration to subtract from. Must not be null. + The duration to subtract. Must not be null. + The difference between the two specified durations. + + + + Creates a duration with the normalized values from the given number of seconds and + nanoseconds, conforming with the description in the proto file. + + + + + Converts a duration specified in seconds/nanoseconds to a string. + + + If the value is a normalized duration in the range described in duration.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Seconds portion of the duration. + Nanoseconds portion of the duration. + Determines the handling of non-normalized values + The represented duration is invalid, and is false. + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + + Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which + case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well + as Duration. + + + + Holder for reflection information generated from google/protobuf/empty.proto + + + File descriptor for google/protobuf/empty.proto + + + + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the request + or the response type of an API method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + } + + The JSON representation for `Empty` is empty JSON object `{}`. + + + + Holder for reflection information generated from google/protobuf/field_mask.proto + + + File descriptor for google/protobuf/field_mask.proto + + + + `FieldMask` represents a set of symbolic field paths, for example: + + paths: "f.a" + paths: "f.b.d" + + Here `f` represents a field in some root message, `a` and `b` + fields in the message found in `f`, and `d` a field found in the + message in `f.b`. + + Field masks are used to specify a subset of fields that should be + returned by a get operation or modified by an update operation. + Field masks also have a custom JSON encoding (see below). + + # Field Masks in Projections + + When used in the context of a projection, a response message or + sub-message is filtered by the API to only contain those fields as + specified in the mask. For example, if the mask in the previous + example is applied to a response message as follows: + + f { + a : 22 + b { + d : 1 + x : 2 + } + y : 13 + } + z: 8 + + The result will not contain specific values for fields x,y and z + (their value will be set to the default, and omitted in proto text + output): + + f { + a : 22 + b { + d : 1 + } + } + + A repeated field is not allowed except at the last position of a + paths string. + + If a FieldMask object is not present in a get operation, the + operation applies to all fields (as if a FieldMask of all fields + had been specified). + + Note that a field mask does not necessarily apply to the + top-level response message. In case of a REST get operation, the + field mask applies directly to the response, but in case of a REST + list operation, the mask instead applies to each individual message + in the returned resource list. In case of a REST custom method, + other definitions may be used. Where the mask applies will be + clearly documented together with its declaration in the API. In + any case, the effect on the returned resource/resources is required + behavior for APIs. + + # Field Masks in Update Operations + + A field mask in update operations specifies which fields of the + targeted resource are going to be updated. The API is required + to only change the values of the fields as specified in the mask + and leave the others untouched. If a resource is passed in to + describe the updated values, the API ignores the values of all + fields not covered by the mask. + + If a repeated field is specified for an update operation, new values will + be appended to the existing repeated field in the target resource. Note that + a repeated field is only allowed in the last position of a `paths` string. + + If a sub-message is specified in the last position of the field mask for an + update operation, then new value will be merged into the existing sub-message + in the target resource. + + For example, given the target message: + + f { + b { + d: 1 + x: 2 + } + c: [1] + } + + And an update message: + + f { + b { + d: 10 + } + c: [2] + } + + then if the field mask is: + + paths: ["f.b", "f.c"] + + then the result will be: + + f { + b { + d: 10 + x: 2 + } + c: [1, 2] + } + + An implementation may provide options to override this default behavior for + repeated and message fields. + + In order to reset a field's value to the default, the field must + be in the mask and set to the default value in the provided resource. + Hence, in order to reset all fields of a resource, provide a default + instance of the resource and set all fields in the mask, or do + not provide a mask as described below. + + If a field mask is not present on update, the operation applies to + all fields (as if a field mask of all fields has been specified). + Note that in the presence of schema evolution, this may mean that + fields the client does not know and has therefore not filled into + the request will be reset to their default. If this is unwanted + behavior, a specific service may require a client to always specify + a field mask, producing an error if not. + + As with get operations, the location of the resource which + describes the updated values in the request message depends on the + operation kind. In any case, the effect of the field mask is + required to be honored by the API. + + ## Considerations for HTTP REST + + The HTTP kind of an update operation which uses a field mask must + be set to PATCH instead of PUT in order to satisfy HTTP semantics + (PUT must only be used for full updates). + + # JSON Encoding of Field Masks + + In JSON, a field mask is encoded as a single string where paths are + separated by a comma. Fields name in each path are converted + to/from lower-camel naming conventions. + + As an example, consider the following message declarations: + + message Profile { + User user = 1; + Photo photo = 2; + } + message User { + string display_name = 1; + string address = 2; + } + + In proto a field mask for `Profile` may look as such: + + mask { + paths: "user.display_name" + paths: "photo" + } + + In JSON, the same mask is represented as below: + + { + mask: "user.displayName,photo" + } + + # Field Masks and Oneof Fields + + Field masks treat fields in oneofs just as regular fields. Consider the + following message: + + message SampleMessage { + oneof test_oneof { + string name = 4; + SubMessage sub_message = 9; + } + } + + The field mask can be: + + mask { + paths: "name" + } + + Or: + + mask { + paths: "sub_message" + } + + Note that oneof type names ("test_oneof" in this case) cannot be used in + paths. + + ## Field Mask Verification + + The implementation of any API method which has a FieldMask type field in the + request should verify the included field paths, and return an + `INVALID_ARGUMENT` error if any path is unmappable. + + + + Field number for the "paths" field. + + + + The set of field mask paths. + + + + + Converts a field mask specified by paths to a string. + + + If the value is a normalized duration in the range described in field_mask.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Paths in the field mask + Determines the handling of non-normalized values + The represented field mask is invalid, and is false. + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + + Parses from a string to a FieldMask. + + + + + Parses from a string to a FieldMask and validates all field paths. + + The type to validate the field paths against. + + + + Constructs a FieldMask for a list of field paths in a certain type. + + The type to validate the field paths against. + + + + Constructs a FieldMask from the passed field numbers. + + The type to validate the field paths against. + + + + Constructs a FieldMask from the passed field numbers. + + The type to validate the field paths against. + + + + Checks whether the given path is valid for a field mask. + + true if the path is valid; false otherwise + + + + Checks whether paths in a given fields mask are valid. + + The type to validate the field paths against. + + + + Checks whether paths in a given fields mask are valid. + + + + + Checks whether a given field path is valid. + + The type to validate the field paths against. + + + + Checks whether paths in a given fields mask are valid. + + + + + Converts this FieldMask to its canonical form. In the canonical form of a + FieldMask, all field paths are sorted alphabetically and redundant field + paths are removed. + + + + + Creates a union of two or more FieldMasks. + + + + + Calculates the intersection of two FieldMasks. + + + + + Merges fields specified by this FieldMask from one message to another with the + specified merge options. + + + + + Merges fields specified by this FieldMask from one message to another. + + + + + Options to customize merging behavior. + + + + + Whether to replace message fields(i.e., discard existing content in + destination message fields) when merging. + Default behavior is to merge the source message field into the + destination message field. + + + + + Whether to replace repeated fields (i.e., discard existing content in + destination repeated fields) when merging. + Default behavior is to append elements from source repeated field to the + destination repeated field. + + + + + Whether to replace primitive (non-repeated and non-message) fields in + destination message fields with the source primitive fields (i.e., if the + field is set in the source, the value is copied to the + destination; if the field is unset in the source, the field is cleared + from the destination) when merging. + + Default behavior is to always set the value of the source primitive + field to the destination primitive field, and if the source field is + unset, the default value of the source field is copied to the + destination. + + + + Holder for reflection information generated from google/protobuf/source_context.proto + + + File descriptor for google/protobuf/source_context.proto + + + + `SourceContext` represents information about the source of a + protobuf element, like the file in which it is defined. + + + + Field number for the "file_name" field. + + + + The path-qualified name of the .proto file that contained the associated + protobuf element. For example: `"google/protobuf/source_context.proto"`. + + + + Holder for reflection information generated from google/protobuf/struct.proto + + + File descriptor for google/protobuf/struct.proto + + + + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + + + + + Null value. + + + + + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + + + + Field number for the "fields" field. + + + + Unordered map of dynamically typed values. + + + + + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of that + variants, absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + + + + Field number for the "null_value" field. + + + + Represents a null value. + + + + Field number for the "number_value" field. + + + + Represents a double value. + + + + Field number for the "string_value" field. + + + + Represents a string value. + + + + Field number for the "bool_value" field. + + + + Represents a boolean value. + + + + Field number for the "struct_value" field. + + + + Represents a structured value. + + + + Field number for the "list_value" field. + + + + Represents a repeated `Value`. + + + + Enum of possible cases for the "kind" oneof. + + + + Convenience method to create a Value message with a string value. + + Value to set for the StringValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a number value. + + Value to set for the NumberValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a Boolean value. + + Value to set for the BoolValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a null initial value. + + A newly-created Value message a null initial value. + + + + Convenience method to create a Value message with an initial list of values. + + The values provided are not cloned; the references are copied directly. + A newly-created Value message an initial list value. + + + + Convenience method to create a Value message with an initial struct value + + The value provided is not cloned; the reference is copied directly. + A newly-created Value message an initial struct value. + + + + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + + + + Field number for the "values" field. + + + + Repeated field of dynamically typed values. + + + + + Extension methods on BCL time-related types, converting to protobuf types. + + + + + Converts the given to a . + + The date and time to convert to a timestamp. + The value has a other than Utc. + The converted timestamp. + + + + Converts the given to a + + The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original DateTimeOffset. + The date and time (with UTC offset) to convert to a timestamp. + The converted timestamp. + + + + Converts the given to a . + + The time span to convert. + The converted duration. + + + Holder for reflection information generated from google/protobuf/timestamp.proto + + + File descriptor for google/protobuf/timestamp.proto + + + + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D + ) to obtain a formatter capable of generating timestamps in this format. + + + + Field number for the "seconds" field. + + + + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + + + + Field number for the "nanos" field. + + + + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + + + + + Returns the difference between one and another, as a . + + The timestamp to subtract from. Must not be null. + The timestamp to subtract. Must not be null. + The difference between the two specified timestamps. + + + + Adds a to a , to obtain another Timestamp. + + The timestamp to add the duration to. Must not be null. + The duration to add. Must not be null. + The result of adding the duration to the timestamp. + + + + Subtracts a from a , to obtain another Timestamp. + + The timestamp to subtract the duration from. Must not be null. + The duration to subtract. + The result of subtracting the duration from the timestamp. + + + + Converts this timestamp into a . + + + The resulting DateTime will always have a Kind of Utc. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a value of 99 will result in a + value precisely on a second. + + This timestamp as a DateTime. + The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range. + + + + Converts this timestamp into a . + + + The resulting DateTimeOffset will always have an Offset of zero. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a value of 99 will result in a + value precisely on a second. + + This timestamp as a DateTimeOffset. + The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range. + + + + Converts the specified to a . + + + The Kind of is not DateTimeKind.Utc. + The converted timestamp. + + + + Converts the given to a + + The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original DateTimeOffset. + The date and time (with UTC offset) to convert to a timestamp. + The converted timestamp. + + + + Converts a timestamp specified in seconds/nanoseconds to a string. + + + If the value is a normalized duration in the range described in timestamp.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Seconds portion of the duration. + Nanoseconds portion of the duration. + Determines the handling of non-normalized values + The represented duration is invalid, and is false. + + + + Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + Timestamp to compare + an integer indicating whether this timestamp precedes or follows the other + + + + Compares two timestamps and returns whether the first is less than (chronologically precedes) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a precedes b + + + + Compares two timestamps and returns whether the first is greater than (chronologically follows) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a follows b + + + + Compares two timestamps and returns whether the first is less than (chronologically precedes) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a precedes b + + + + Compares two timestamps and returns whether the first is greater than (chronologically follows) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a follows b + + + + Returns whether two timestamps are equivalent + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if the two timestamps refer to the same nanosecond + + + + Returns whether two timestamps differ + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if the two timestamps differ + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + Holder for reflection information generated from google/protobuf/type.proto + + + File descriptor for google/protobuf/type.proto + + + + The syntax in which a protocol buffer element is defined. + + + + + Syntax `proto2`. + + + + + Syntax `proto3`. + + + + + A protocol buffer message type. + + + + Field number for the "name" field. + + + + The fully qualified message name. + + + + Field number for the "fields" field. + + + + The list of fields. + + + + Field number for the "oneofs" field. + + + + The list of types appearing in `oneof` definitions in this type. + + + + Field number for the "options" field. + + + + The protocol buffer options. + + + + Field number for the "source_context" field. + + + + The source context. + + + + Field number for the "syntax" field. + + + + The source syntax. + + + + + A single field of a message type. + + + + Field number for the "kind" field. + + + + The field type. + + + + Field number for the "cardinality" field. + + + + The field cardinality. + + + + Field number for the "number" field. + + + + The field number. + + + + Field number for the "name" field. + + + + The field name. + + + + Field number for the "type_url" field. + + + + The field type URL, without the scheme, for message or enumeration + types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + + + + Field number for the "oneof_index" field. + + + + The index of the field type in `Type.oneofs`, for message or enumeration + types. The first type has index 1; zero means the type is not in the list. + + + + Field number for the "packed" field. + + + + Whether to use alternative packed wire representation. + + + + Field number for the "options" field. + + + + The protocol buffer options. + + + + Field number for the "json_name" field. + + + + The field JSON name. + + + + Field number for the "default_value" field. + + + + The string value of the default value of this field. Proto2 syntax only. + + + + Container for nested types declared in the Field message type. + + + + Basic field types. + + + + + Field type unknown. + + + + + Field type double. + + + + + Field type float. + + + + + Field type int64. + + + + + Field type uint64. + + + + + Field type int32. + + + + + Field type fixed64. + + + + + Field type fixed32. + + + + + Field type bool. + + + + + Field type string. + + + + + Field type group. Proto2 syntax only, and deprecated. + + + + + Field type message. + + + + + Field type bytes. + + + + + Field type uint32. + + + + + Field type enum. + + + + + Field type sfixed32. + + + + + Field type sfixed64. + + + + + Field type sint32. + + + + + Field type sint64. + + + + + Whether a field is optional, required, or repeated. + + + + + For fields with unknown cardinality. + + + + + For optional fields. + + + + + For required fields. Proto2 syntax only. + + + + + For repeated fields. + + + + + Enum type definition. + + + + Field number for the "name" field. + + + + Enum type name. + + + + Field number for the "enumvalue" field. + + + + Enum value definitions. + + + + Field number for the "options" field. + + + + Protocol buffer options. + + + + Field number for the "source_context" field. + + + + The source context. + + + + Field number for the "syntax" field. + + + + The source syntax. + + + + + Enum value definition. + + + + Field number for the "name" field. + + + + Enum value name. + + + + Field number for the "number" field. + + + + Enum value number. + + + + Field number for the "options" field. + + + + Protocol buffer options. + + + + + A protocol buffer option, which can be attached to a message, field, + enumeration, etc. + + + + Field number for the "name" field. + + + + The option's name. For protobuf built-in options (options defined in + descriptor.proto), this is the short name. For example, `"map_entry"`. + For custom options, it should be the fully-qualified name. For example, + `"google.api.http"`. + + + + Field number for the "value" field. + + + + The option's value packed in an Any message. If the value is a primitive, + the corresponding wrapper type defined in google/protobuf/wrappers.proto + should be used. If the value is an enum, it should be stored as an int32 + value using the google.protobuf.Int32Value type. + + + + Holder for reflection information generated from google/protobuf/wrappers.proto + + + File descriptor for google/protobuf/wrappers.proto + + + + Field number for the single "value" field in all wrapper types. + + + + + Wrapper message for `double`. + + The JSON representation for `DoubleValue` is JSON number. + + + + Field number for the "value" field. + + + + The double value. + + + + + Wrapper message for `float`. + + The JSON representation for `FloatValue` is JSON number. + + + + Field number for the "value" field. + + + + The float value. + + + + + Wrapper message for `int64`. + + The JSON representation for `Int64Value` is JSON string. + + + + Field number for the "value" field. + + + + The int64 value. + + + + + Wrapper message for `uint64`. + + The JSON representation for `UInt64Value` is JSON string. + + + + Field number for the "value" field. + + + + The uint64 value. + + + + + Wrapper message for `int32`. + + The JSON representation for `Int32Value` is JSON number. + + + + Field number for the "value" field. + + + + The int32 value. + + + + + Wrapper message for `uint32`. + + The JSON representation for `UInt32Value` is JSON number. + + + + Field number for the "value" field. + + + + The uint32 value. + + + + + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + + + + Field number for the "value" field. + + + + The bool value. + + + + + Wrapper message for `string`. + + The JSON representation for `StringValue` is JSON string. + + + + Field number for the "value" field. + + + + The string value. + + + + + Wrapper message for `bytes`. + + The JSON representation for `BytesValue` is JSON string. + + + + Field number for the "value" field. + + + + The bytes value. + + + + + This class is used internally by the Protocol Buffer Library and generated + message implementations. It is public only for the sake of those generated + messages. Others should not use this class directly. + + This class contains constants and helper functions useful for dealing with + the Protocol Buffer wire format. + + + + + + Wire types within protobuf encoding. + + + + + Variable-length integer. + + + + + A fixed-length 64-bit value. + + + + + A length-delimited value, i.e. a length followed by that many bytes of data. + + + + + A "start group" value + + + + + An "end group" value + + + + + A fixed-length 32-bit value. + + + + + Given a tag value, determines the wire type (lower 3 bits). + + + + + Given a tag value, determines the field number (the upper 29 bits). + + + + + Makes a tag value given a field number and wire type. + + + + diff --git a/Plugins/LC.Google.Protobuf.xml.meta b/Plugins/LC.Google.Protobuf.xml.meta new file mode 100644 index 0000000..79d23b4 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: df129310053c84ac2b7b17ff17914c74 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.deps.json b/Plugins/LiveQuery.deps.json new file mode 100644 index 0000000..b49ba21 --- /dev/null +++ b/Plugins/LiveQuery.deps.json @@ -0,0 +1,111 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "LiveQuery/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "Realtime": "1.0.0" + }, + "runtime": { + "LiveQuery.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Common/1.0.0": { + "dependencies": { + "LC.Newtonsoft.Json": "11.0.1-beta2" + }, + "runtime": { + "Common.dll": {} + } + }, + "LC.Google.Protobuf/3.12.4": { + "dependencies": { + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "LC.Google.Protobuf.dll": {} + } + }, + "LC.Newtonsoft.Json/11.0.1-beta2": { + "runtime": { + "LC.Newtonsoft.Json.dll": {} + } + }, + "Realtime/1.0.0": { + "dependencies": { + "LC.Google.Protobuf": "3.12.4", + "Storage": "1.0.0" + }, + "runtime": { + "Realtime.dll": {} + } + }, + "Storage/1.0.0": { + "dependencies": { + "Common": "1.0.0" + }, + "runtime": { + "Storage.dll": {} + } + } + } + }, + "libraries": { + "LiveQuery/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Common/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "LC.Google.Protobuf/3.12.4": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "LC.Newtonsoft.Json/11.0.1-beta2": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Realtime/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Storage/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/Plugins/LiveQuery.deps.json.meta b/Plugins/LiveQuery.deps.json.meta new file mode 100644 index 0000000..aaca149 --- /dev/null +++ b/Plugins/LiveQuery.deps.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 418fec3a741684746bb2040a904c156d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.dll b/Plugins/LiveQuery.dll new file mode 100644 index 0000000000000000000000000000000000000000..b2eed8054c314dc1d42f0dc890483ebd01910e51 GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.dll.meta b/Plugins/LiveQuery.dll.meta new file mode 100644 index 0000000..7c56385 --- /dev/null +++ b/Plugins/LiveQuery.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 2c82d02278b334db9b9b7a16c167ea33 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.pdb b/Plugins/LiveQuery.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2e709c69b616d5b41d87052d0b5742fbd2a8e178 GIT binary patch literal 12328 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 literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.dll.meta b/Plugins/Realtime.dll.meta new file mode 100644 index 0000000..d5d2543 --- /dev/null +++ b/Plugins/Realtime.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 97ead4e4cd3d54d7c94821bb4d8b2cdc +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Realtime.pdb b/Plugins/Realtime.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0900e7391d4c7c7e477e25b5640cf597c890a1d9 GIT binary patch literal 105872 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 QT*L!^k70o5FX;FG0hS-v%m4rY literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.pdb.meta b/Plugins/Realtime.pdb.meta new file mode 100644 index 0000000..00d8146 --- /dev/null +++ b/Plugins/Realtime.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: de2293e48546d483eabe71c4b2be9c6a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/link.xml b/Plugins/link.xml new file mode 100644 index 0000000..724110f --- /dev/null +++ b/Plugins/link.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Plugins/link.xml.meta b/Plugins/link.xml.meta new file mode 100644 index 0000000..0df5503 --- /dev/null +++ b/Plugins/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 60844eb578a4c40b29127a712c465565 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..9b5f823 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "com.leancloud.realtime", + "version": "2.2.2-dev.2", + "displayName": "LeanCloud Realtime", + "description": "This is leancloud realtime package", + "unity": "2019.1", + "dependencies": { + "com.leancloud.storage": "https://github.com/leancloud/csharp-sdk-upm.git#storage-2.2.2-dev.2" + }, + "keywords": ["LeanCloud", "Realtime"], + "author": { + "name": "LeanCloud", + "email": "support@leancloud.rocks", + "url": "https://leancloud.cn/" + } +} diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..56f6bb7 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d9e7b91d395f94e9db1e1802a51b6b1f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: