From 0bca0bf7c1fc390a9aa54a9b6fce3f47efcb972e Mon Sep 17 00:00:00 2001 From: leancloud-bot Date: Wed, 18 Oct 2023 17:35:55 +0800 Subject: [PATCH] 2.2.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..d909cfd --- /dev/null +++ b/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 20421d248109b4d368afc9b3201c6943 +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..3ec9f56c693b86d10ba4e6d4e16ddd77c107c239 GIT binary patch literal 358912 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℞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�k^JfCMYXF|`< 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 z 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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..6cae44c --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d168634882c5d49c1a2203e0caacf0a2 +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..3f1be32 --- /dev/null +++ b/Plugins/LiveQuery.deps.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4c4fcd641990746288f62d0de26f9199 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.dll b/Plugins/LiveQuery.dll new file mode 100644 index 0000000000000000000000000000000000000000..419351be95063452ff056e3de12702f491fa0396 GIT binary patch literal 22016 zcmeHvdw5jGmFKy)Z{OQ5HR_gxc+&y{4K0Lt8nD0!Nf_B6fg~_~MYN;~v}yH~yIUAp zYDbLmD`O`nu@gI)WN_?!yZK@^&dxZSWSki%4m)Ajnb~}qymk!1>rLXUop0=!cqZ9z zgZFn%-F`@5$De2an{E46)j6l?)OppZy45Xq-~0%9h{(Y6&O1b3L(QLUQoeUF337Ph zH^TJi{_iz>P22UohQ1@ITx=xk9L^?(V}r>|#>vM9>{xa*6H8@c?cKexVQ0v0s;UZH z<+9$>L9|Qr(5mpdpA~1jNQ+`Yt(m9`7*kZ|k z;Jw_H|1Z}r$S8as1>bINOcKpvLrnjiCJF)fc$%nhI_>wbKZ4wPubPt}2&o;QLDQl-4bYxlSG#=(PP2g=r+ku_( z`7YZPAC^rgFMW3_(E}@qG{Isj=v^tdi+A=B2kJ*fi28K-ze#Y`BK*v=1M)G&~fxkL`k4{tuQI_fVw3fi(MX9xjYsr z9ts^tPv*f;1&>vb!&AXynLBo=8mquKdhl3=D#n5pyM^bkV;!Ixbf_yVS7Q|zM~}n` zn%j(6hZv z*6++gdlY=;))*0E(+j{wj4Z4+67|Z^O=lS89bF4M*O(DA+W=Y|9Re$N0)pNy)COov z3EB#%vjlAdw66rM12kBIRwXt>jCc?$HPL|v0?y@5+-N`p>(NZi zio>aa#z@uytB5xaj|bulQ23pNC^t8}^UgaL0{%wR@5BJVyn-~0(`hUH;wmiwr6hjf zA5IYw9mYpknT>PxsK%jWHb%^G*u_|~QeV2la-g<~IS;MI7{q3I%+k`Bd3scj!|-Nf z)EtM!-O)Y=F~q|$=ldTIkN>O2BSx+;UZ=!#ons~WXPV=P(W1@>%z%Sc0LfYIR*b_E zEbF~N&z^$ui$S)`l0XXi8t41sOE4@B>jtXKaTr*!^g9Usk{y^IVis}yr_9BTHbOd*YX)`_gN!)BClH9zrI`p;&A|kLNz7odja5EFJa`DKBNA3xD+b0y2)F@-QYr(lYcMGI5|VlbgDJ$&6tQL-6HHUG4RSy!Ph&>W0n?zaD?n$~L80S_EY^Xc zk`BtgNCPDv*Sb8mxje9aF%N}~!(YsUp$Z-VDWZ6wd!W$f@@SXZQ|OSouCQI|2}R}% z$GjMdV>Ve+Ix#Oeq$JPvGDa`lAhoBkOX|7;aw*HD$ebjZ7ef_tK~<`$;I&uA=!G7a z#~#H)p*g=Y4~ASGbDO=i4QmBEVHbx5gJSB38tg+X;>iEEP!12S)8#IT*=BqMPNw zumM*F2gVI7O%dU~J>Gx?uyh6b^14l+ zhJ86cPz4J6(3|tYeyQsUeNs;-H1Ci&BNW#=3|)$=o7{0XyWNi<-!StZ4Mg;?2YKAlfCiSyW(U^OPx`1A>`FV!Io=a#MJiw}TPmA`SZpWg}s z@gZi6wa#;9#~_u$iy+xg0Io6OHu^-2TGgqx-T}*ma~Q}Pf7Bm8!W>%l*(K5Z1$e6H zP`}QBmpK0zv1m-F@#_;@U#hE{BAP#*0w;B3a8t%I%U$ezI5(}_?L22d9US<~Z$<*n zQQ$7bYJ&R0ODdph#eOQDBEfi?>2t0~jSqu{1zB9v$bR%q%=BOJz<9EzHz-D)ct-V| z+icRSpkW{=ye_1F5Q7}SUw%Ai|i zg)o0TVicBeEw3g~Y|pS;;=+(V&e$5@xvsD#4+0yu=F$pVISwN(%&zgWF@&>l#1UI; zR5KOr8i&u;c$=qx|5cjJIS%$%4E`1NFz6C`V3ETfOF;^ln?47GYYTX3L|zKq!2cx& z{s<&-;eP^LxiBKSyD&mHaDNE>%IjiDb}@+clE`IrQ1XlAAd8t2k5y5RvR;c=kEPN5 zg*aF8ZWi_EaU{>gg&uvJu~qs6R~5G7Az&i5gQ*O*iLjCJctt6js*Enik+PLV|K3R`)o9|pnE2ew)cQowAy#;k7|FQ+k9TTEhoaDkeuVkE5{^E>Ks*n$dk}BD#qXGG zSx(&*VsUbPcd`Bmu74k5xzmk;^~#eMW|}isMHK4NOlUXPiGlF4i>YHw(HSzcSOU&C zhF%vWZp-NSoj|Uj)^(5rvU~*3Njzbg3$8DHc+XA%w+0Vlx472X#Gd$ZVS#sYgT4hC z;tT#-2@?FZSI>E2l_mQ4Dj*yK?LsqJ`Z$+Yu$YQP9t}sX=1QIN;YcKr#06U)XDqzP zRfQLMi0ehgJa}P26$hm7s#UWJFMs?lw#3{k60JD)ba^)`#^>byw7^}B*y@=X$QxTL<)nffE-F=;Mrq zo?KPv$wOQ{OXsW$^`fb86E^;el~=~9m8U@%h)jo%lf`;*zRI1TdRND_;9s!@y>tM9 zfg=xe+yD}E+=wb@&RPmBJ3L^u1rM?%eFvfp-;vD29>ny5QBWG0jY%N^T&MP5_o32c*I1{jJxvB^V9_21u%d)O`Ghmf(1}t?mfPRp?@@4=S9Pg*!3|R8E zG*#FZiQjh>_Cojjkkrj9!bDW9^kW(8`cd)M%>KIkMTou2vhZrXj%#&kfw!#r?A{-Vdzrv*SzK56 zm&dtpSr?);mYP3eIS*mVrM%uno`(UccL9D)IRa?qR`HXX)>qhBo))huaDL*#fIiMx zen;WD;`k+V`sDZ(!l7OkoiM5ut10oZ_CAVv)OL3n)ffL5h%0#i=T8z(7S9jxMDcJw zLM1-sb-5Ey%*A7^wLub~S- zlG~60jPj+4t`?v^&S>WpxEFS#HS1xla$LUX;|zU%Nqww(8Q6Us^v}mJLBM$w1s}bT zNs1c|i-E=3#g$wX@re*ompK0tWYNc&fW^wyr8=Z_wc+q6@cAV8sM*%utZG?eyr;<) zp_Z6T;V*QTr@)>TW6!1aamHdpz zXgDg}0?bB^hnZE#hPS9CI465n79SHUuKN%Y0gKO|Zhovd5OIFwIrts>R<7l$jNh^G zlAAbxoF^M+0w0LDt}qRc!_f)`3!Hx*9tqV~T_At`wx`hcsdJB4A7@$Qw1hOzZ6#?8 z2^+2tWPc5TWz|oUx10&Cc!+xsnZJYS-;c~nw1t6dzj5iEcZ$HO8?v)KcmWra$)Vx0 z4O_+7WxKXDUJLEy%uz4*or&s--G5^zCc!Dn;!~6eFNTg-6{q?#+Fc6r4hL-rNs;cy z^B?fw-D^q?e-SSFJ|4KYxG&!XK}vaHd++tzHI?$^JMd%cnwp!|Hm_a12?M|_jWQG= zT6{OranyZy#aY~&&!#embKK)4m|~p=xP4gRSS!`QExvAFC$@H~27EjSczfCz;LiBy z$mlmN{Cv<4JpFHNEx&X^Ji=xv`wxPMuEB$Sh%gm>3J>dq7X*%Z=?fn6bw1Ac{O&0@ z?!$a|3}O?X7fpr{)ilfd3%^MZOZhV?pEREL*N|Mv(l3o>)1?3GJ!hGekuo9WPAShw z`JBPjIl;Hk^N;B*4E$B#Qy!C28e<-%CzzF=G4~n2@CWF8h}&81Dc!`cB)HEygUgpd zHR(=sN5G_G#MJ+WGC-&FzXs-lVB#L`xk~!K16svr0;9rCvU|AXMcV3@|xHtDw}Q}?5c z(!cmpo+y3IOhJps{6paLvPku8h}+-yJnMtx9&Rr)Zwbw$_5R0wQCjQ2-#3%|p~pe3 z3NfFX!N(*ItQ4SD-}51pzJYd>HW~M$|9=YJkDkY%3;SsWyA?j<|Ej5~>UW{_(msKd zILBfr#NP;j_GDnf{0g9%(lhFtFxO*8n1y+&=}kDjfT&m`P(64S(7s9_j)wv*#edur zfeUCk#RUorw31c`^bz5*h8hL>l0X}%NuU=5+Dgp=eNUk6_`Z~RUKFU4)(ND^?0aZ~ zKx<`&KH4bIn*tp`T$^;0F%y>GV=O>fFcK&ees0e&xr|zC5Xmb&n^CrUwwMu$`&v=f z1v<>t^pd{W+&kH#_m~ZW-#d8{?Y)yDQtpv*5Pdv!x3v%D+Ta}BLvQL_t^m&lY6v93 zc`bTsl=bIOel>6$<K4Xs55(b0Dl&3Y;Za}-7 z5BHzS=kGCBOQ03y(hzI9R(s9u!yGE*S2p3EBO&%qt@gI`{2j{oH`f_=uIVxqIcu~< zBxect#1JxcpYJdA-y`l12z0`CR<8z>6zD$R&qKPUQ%azFeE$%#0A&?4>&tk>^3a6p zNjcAEKrgsZK_H`n@Hs`bR+Z(UZ7%et9tAYwLU&s;0X@G+_1p%?pf_D80mw_ul73Io zlYn3u7rGsgMbEm>K0rQt&4nHY7fxbfv%+0t}cuk=DK&u9HWGQpGj~arT@y+iu z0^LLR3G}85%?b5ewba5JEZswgLnpm;^neR(H#Q>!y(G{H`ZG_?nn~-HbI%jBEvO+M z-ReS{LkvCYLd!A3Ec%H+uV_6&^R47@uV_(YE@-n{h-tHFR#TZao8m6Sv^mtis!W?h zeJ;ebx%8XnGHosys};nwdGtSBi07L}zp0?jr|+&QkDE_FaUmYJfF4+1rY)eyU5IH5 zDRy<4wvd`#h-oqU&Bih>`7y|1U}tk!IoX;ql`M;0fXh;i}p?9*CgyBDT2QfHHvJcJZp%BxS3Vol@?V@+K*hQa*uFqi>0lxMzp=#+LV-4ptETDwU87A^5Sr={q6^Y=7_ z{(r3v5z9P8IrB$a5;|Vg($X`9wnrZmtxrgq2i~Kf(7x!2pxkE6(Ieyz@P7QVQo zH=_L%@>2*@jh>{}JikZ#4gGDj*ZQu7?2mXlJP~a))P?eI{e7NO^xNP8&!gaTyXQ}c z`TPkz1%I6)&H6n&)lv0;r$PTt@L|t#eSPQ?o~NbfGt%=J>A4GY{g~S6HS=xAz#1*r z&OnCc5;^UnQG@va4k>O>L z;boCwH9T95RohIz@%nHc{2j^`x`c8Y+F{tqW5#HZ?y;J%p1G`{2T;zXQz#eHvnUhv zb(CxAO_bNrJ1E;IP52y?a!|NUO8W&mN{f6iO8X+(2Yjzc`&B7P zJ4%oEG>v8ONErj>+rGupZj*9Q%6p`IO3D|dd{s)1&SMu#*(T*_{V4q(-)WsSx`_4$ zf6Q}~Cj8q_zUV)Q(ifOS*&8^G@-qQ4j?%?I4CTt;LE|2bIxXczDPvy79F+33lozFp znSz({w3HX6j9G%0auI%g)(IO8(m6U$mX^?Zv^%tCwQp#zX$$q``dYnH@6~V9U(sLJ z-`0QVA!C(suknO&#+d0{;l0EAeXouTPV_7NF6<;LtM0}ri_caXa=b?#FWLs)TTS?K zKFS@~A1$0S=cBwHZ6EDI+lL>oFGNP(gSMY~&<^0I=krnSM>|Ld&<@hgXou)lv_teE zw5#YK+Ep}wb{KhSKFULA&!8h{&!F4Uu11!ak1~UHghtSg;FfnGc7QzEQM`LDq`T;2 z^f|nL{t8+ADs7|IuHB_Qsr{AqkD6cKsDD-eTYbQj_nh&3-E*^%Gk$9P5971mFL;ef z-pTmC;%6cDzcNJhy7xBhf75$Cc?H}*UjcUt`zS%{%FpA1V+>pU``ATI%xK~9;ql`M z!0tg=^v(c z)LnQE=nv9o^p*4rwBOXv(AAzZG~xLkaA)W&+Hc}nXuL{0jDMn2#u@qop4ah&y=Q2V zw_fYPlSKOrp0DHimiJXUhx%17)M(k|98P7n4)yo1X{MIm(Sh7xHZ@=~0&sVx#~ySt z8GA5q4@sxhjNF53m%h}n?TqG&$gQLO{j2FlJ9)InK4fR@%%FX6HT5NPN86m?k+hvp zIhkH(G%M)Nj?Cz=olOp;i=EK7b&&g@(PJlvx-;pqHYc6N#0uG(8_NtbyWMvFh%>Z( zG?gB*v+fkFcP3MLfr^~-4%2p}a(PrOTd(f#zcZU0L9?Wf2)>5;oX$*s?HXzsO6HSW z*TW3dlCv{IJe3P(^TWM%_L!Y@;rw8(NGTep%^A()U1U0S%-%a{XUANaEwiSm-5P37 ziAu@r*g;HHlnl*Y%*uvk!PbI;VO+VQquHh$!SvPZ2x4zo$NJ=Kal-2Libaoo$EclC zs0|9$hrd;kQCCm%@am1=ns##HZUBeveE+__9l-9(#olI9sQkMeH}gf@r7znM_YGSS4Uf48P&UQd;gxE?!NA}?p?II^+12QPhaQm zj$Z2R=xXohX7|26+SS%Qa67!-4tEgygnGwvd3(6291Xdq>+Fo3O$~~?oj4LfY*g*` zvDBcA2CLCJGUB!rKLD*mLo_9zN#X{oCJ))&88=RCHNG=fhP&)LuNzGbQA_90)}#IX z+mnMw;inxbI}Mz2^>j2llQMQbmrrJflG!2JWhXN*_2>|l))-Y78Nv_ZPphaSBUPz) zQ!gSpdDw>FyX{;~wc64tJCiTMyX`FKotb0KQB>uXMV;-b+=!FoRVF5BODA)=uH>-I zD=eMI`lU`;R=xRT-rk)YJd(=T)NALbz|f#f+@DO3+I?dqHvH7)WLYeUA4D}z#qhon zcufddn;Yy5^q(8(K11?x3fD_Lqm3^jPE#}w=+4U zo-(R9>kde|-_Bl{*qJ%xWQUWSw36v}?S++mD0O%=EB(qdC^HDM$4)1YODk8V7bVz} z#Zny1Urt~K$;?=p(1WxDKMOve8c3y6`3h=ZcI-MkFFvJX>{)mOk#~#(WY|GfOi3y% z5%a~x=<;oHHDpSkqpsr#EZx=~2Y9hCrR~h&{1I{nZkK@I>{?zDO}mOIvk6(v&cbxX zi7HpUTF6L4b{gS_nA&9@<7R2_P`VO2KAe`hI*~n8ir|LICd9i}FKi_}da<(Lus$rH z44Z&=M9d&7yA%ke(C%{bsY9tjaSo7e66Vv8Dz2v?#kA9K(?FSe8m@y)G6k2Zlt68p zMSEfMb@xmXzn1M+VeaDcFIgMORrYuofh}7!Xa#n#+<_M~C_^a@a>)b3So#7b)0Kpd z`+FO^BqEUSlBip>*k$I&N-BCx;_UKGT}&3&0VR?9n{K4g8fcv zXv&d5p)WfrAn)Y+`v=sqft7R)AGWh-?8~7lCLRHJtb3y1U@kVhGvWyhVR4`+P6Y7G zd)l=JCnTArr*F60&Q_q*u|igi95AROo5k-wi%A@*pJ{GNXQ*jVl~TDIV|yxjIOF8< zslgl;;l51jI0yIcR63o?@%dyZSF~Dj)v7#WXL)+;m^nAeVioh^%2DwIlR`UdBe7?4 zXbp_zQL^_XvU0HKy8iw={$#kwzwZdv!VuUru?ch3amQ#fU80sl5pqiAQCr2(4fa@$ zj&cE`VqL+)JMCmPza9Grd#V_YW#o|(d52`%3Lm)pWjVA})&L*30i{#Pbm}hKh1+p} znu<}vxnzjMr(a}5m{MBUwNkk(8ZNWnM{D_)bTv7qZIA@Z`g%Fq4M-*)+#c zmvbk=E}b01dWC7^z)v?G!5*9$bCWV`jH8o+_GDAT+{T%vczmv~?PX4v)D54jn&(q3 z*wt;7GfpYKDr3!!&@!#KCdTLvKHHNs(l6nS4V5}`U8CuAceZ1A1Q34MH%P;HBPRb4 ze%F-e-!@s;f#@*4BX#f=OjUz;3$}%30~!TR^#l~O@wS`?HH&sydL2VaRYNElW*So* z@JpdDHFTk!$L)5Gn9~TLEa1(+jN@*nfUyqV(r?GOLEtHJ2l_GpF?j%7K?D{?MmIa8pqh5FE9NtqkV47<+G37iAPL7zU9 zN2NC{+XWokac@cYRTw!6yX0V%ET{vZQsPSeM#1X}eS=A{b|+hKK6^q*k``O$T^WQL znJPD|ID;k4LZTFA$Gi=DM22B#!hVV2R!GsgWKU8}8a~Mq1nh$0f+X|CRifxV&EsS{woomc7`I zhPl|M zhv&@;o2uc9>3R)S*RT-!Jg@Zg#fZDs5I~H;OlXp>hr{?@r7qg4M<#z51|l4uXAtCt z4!UXSQD1ZmxZ!LSl;OPT9sG%Ux83}vo)iP<3(H%h5uo~dAMOpO@pQVF5 zs3sJJ7&NeW88{cb&<(4nA;D#a0?w^ z@;E}VE;{)|fUK%7I{6&;Ze&_xHB0UT`RkaNUExKSd9y6G&wQ`X2W_NbnC`G<9@fkZ z)^Tecw>Ac4I>mso8yVZetrl)=FlreHvKTUbq`>0*x)b+el_I2~hQ2iJP4(pl{pE|a<#i2Fw18rQuDGoYPwO7T7yhcdG7W5i#V~ow zHOEy!iMuD^h#D;fVV^865hg??zu*$M<*prG+gi{vATKj3v5E_>dJ3))KNRpqYon8A zmDwiGvJWQDVH692{{u2VtUh^`1I}%TUnkFoisr^R`~^6&M|eieh}vOgH>mm9n93`hwEajYgrdH;Va&*ZDUwteP9& zGE8hNfPBoC*AOG_MHUj3JHfgf=S=!+6=O>ABON&dGPAROci7}v-JB;w&$vs3MJ!2x z>FnYRHX<;(7cS7Edy!Y8Ho{)>BX=liLfCdxt2zqjlz}ZX%7EHnik|aD_hM7iI8dLf zi79s~7OFHsM85OHDQv_sH@@Y@FJv`*xxt?W{Cl`Qeddk0M(=VmrB`>n^Er3sH1yM@ z-v<0vq^YZ;4{sH6@!9BJ5p6lPrU`%d+!wAb-NNymAzlFFMiPJb=Pw_&3EzQQxB|12 zxKgBmM&30|_)j%gCX`GjPF8S8KH9500w1mz8UC{7z)G zMvZ@PoZQ~<2z-@-?}%yL9~?2|I$B2JH!$x$QeI+8H&WBo!<-!&ZM)K(#ap#Xt9y^3L+zhVIw=60x(?$5F;`s997?8pj3z3sjE?$m$GW)~7E$4_%6%A8|WYgr?Ttt>{ODJJoD^ zI=wrIyXRrtFJ*1Ji7&MI^Uf0Rm~M`#%mm_JEX%)nFgcaTxtnkoK$qdU-%dOSKzUwe za7LlM4&{F8#T~(Z>cFo8dhuI@Zrl&_qwc~l36!(GY5c<_{ytoN6VD8ICX#9qV(T7yyL?L_@!0=_%_VOw+1}NSoz)q^vmx6uqI?oagKIKT)a0JnIhYj z#x~-20$NGa{qkO1yrW=!*5G|wJv>hsec2l7{W$~q(iPHO&c6w7(0u2Bzet0nHAs)| z++-AMI0D_+LWgm$g135v5#hH7JV&>SXY27CMco*Z8=x!Lp*)weA>Uf?ozEz4A@UVc zUfG7tVuz_?rdwk*Y|$(a{>>g7J+KwQ(tKMo4DY4oZe;qHvi*4Mzp>9j`S;D}wJra~ L^#1?qiUs~J-NRb< literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.dll.meta b/Plugins/LiveQuery.dll.meta new file mode 100644 index 0000000..9df4b40 --- /dev/null +++ b/Plugins/LiveQuery.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: febe5be7ce5694481afe8179c11ecac6 +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..562759c8dce4698f760d1e41b71e7ee111058d27 GIT binary patch literal 12328 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 literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.pdb.meta b/Plugins/LiveQuery.pdb.meta new file mode 100644 index 0000000..2625932 --- /dev/null +++ b/Plugins/LiveQuery.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 536546fbc731e45858fb46d9abb741c5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Realtime.dll b/Plugins/Realtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..cd60d5546a94d418efd26ee31179b31ca451b0d3 GIT binary patch literal 300032 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 eXc13M>DM4__;Qd5 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¥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
a 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 VS9ef%<8u)Y{5^&NqQ9Wu{|CxS)j9wG literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.pdb.meta b/Plugins/Realtime.pdb.meta new file mode 100644 index 0000000..a7c02c3 --- /dev/null +++ b/Plugins/Realtime.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5de8ab7073e404316b464112c27d2326 +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..b77c820 --- /dev/null +++ b/Plugins/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: df4fbeabe39894ecc8d30b09ab87b300 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..1d194f4 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "com.leancloud.realtime", + "version": "2.2.2", + "displayName": "LeanCloud Realtime", + "description": "This is leancloud realtime package", + "unity": "2019.1", + "dependencies": { + "com.leancloud.storage": "2.2.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..8863dc0 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 633868d99e662455d96325aafd518b8b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant:

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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..cb5a3d5 --- /dev/null +++ b/Plugins/Realtime.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: f87989c68ff14474f83727cbbaefdd50 +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..34ec984cf247dea82efaa685a2a54ec8715cd626 GIT binary patch literal 105872 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"IbS!$IiEj?Gk!~)^LbmGKdZYV&iTA6&iT40 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