From 9b87fcda46e4573d6b28d75d3749ae7275e754f7 Mon Sep 17 00:00:00 2001 From: leancloud-bot Date: Mon, 29 Aug 2022 10:45:41 +0800 Subject: [PATCH] 0.10.15 --- 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 -> 299008 bytes Plugins/Realtime.dll.meta | 33 + Plugins/Realtime.pdb | Bin 0 -> 105448 bytes Plugins/Realtime.pdb.meta | 7 + Plugins/link.xml | 10 + Plugins/link.xml.meta | 7 + package.json | 16 + package.json.meta | 7 + 21 files changed, 9418 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..6c16a7d --- /dev/null +++ b/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9eb0e2c4abe6740cb88e7062700d9bee +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..600c7c1cff0f69e3d32c96d17ca9ace7f852184b GIT binary patch literal 358912 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Ä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 literal 0 HcmV?d00001 diff --git a/Plugins/LC.Google.Protobuf.dll.meta b/Plugins/LC.Google.Protobuf.dll.meta new file mode 100644 index 0000000..2dafa96 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: c882df7d8132a4e97a448bdb0868d5d6 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LC.Google.Protobuf.pdb b/Plugins/LC.Google.Protobuf.pdb new file mode 100644 index 0000000000000000000000000000000000000000..979d68c2507983a83d095fb2e981180260fa0a10 GIT binary patch literal 142288 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Π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 NSCvI`;uHI|{|7O%Y)}9I literal 0 HcmV?d00001 diff --git a/Plugins/LC.Google.Protobuf.pdb.meta b/Plugins/LC.Google.Protobuf.pdb.meta new file mode 100644 index 0000000..cab30dc --- /dev/null +++ b/Plugins/LC.Google.Protobuf.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 34485fd09a32c494580c5e43ad220945 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LC.Google.Protobuf.xml b/Plugins/LC.Google.Protobuf.xml new file mode 100644 index 0000000..0a7b479 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml @@ -0,0 +1,9125 @@ + + + + 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..22143e5 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bca275d29b036426ea5a31f7131d9b51 +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..b5883a9 --- /dev/null +++ b/Plugins/LiveQuery.deps.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5a887f568c4cf48f59a18889183389df +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.dll b/Plugins/LiveQuery.dll new file mode 100644 index 0000000000000000000000000000000000000000..741418e4d09ad4f132df60f269a72749ff7cde8f GIT binary patch literal 22016 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 z zdax3t+jxL2-9v#M05Wm>mETEt+{77g97Y9dEGVI!#03u+NKS(R#LEK&Nw&5l4jA(x z`M2qi6HpQY9gbB&Z-EXAx~cSR6zq0AK`;yaQWpkYl#Q z0XgH)ROt1=!Z!2G5!NGwKsjkJc6l~954%GU)?*LigGOQftTas_j4}kGIm1ALFL|*3 z3M>%ThNq%41wnyr+U-IKAxIW?F)V-J+ap=uW_y=a_8Cat2`R)Hq_^`9cF>Lo92QRCkjRcnq!5XtP9RT2l9G~oisTht^`tqPYc@FbQ1a-`jD&{ z;Gm>;C3CS2kWwK|36{#9$VX@d%_C7j5v*;t?CupKoSEUJVw*bS^01Zi+fN8#mUFO;DF12520xc~qF literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.pdb.meta b/Plugins/LiveQuery.pdb.meta new file mode 100644 index 0000000..99909b7 --- /dev/null +++ b/Plugins/LiveQuery.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ddfbe8a0f2a814d99b2e3f341979064b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Realtime.dll b/Plugins/Realtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..e0f53fbdc7ab5849a78d3c5da5dca637c077fbfe GIT binary patch literal 299008 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%0AA~%Ur zu2c?v=914F$Tzouh&JED&RX{HysHsnT<`<%k~QjHE#IZu&$m)uR1=4&cR2!)9x%?u>B z6S=*~{RzV7x6b3R7LcQN`xXU0Q@geSpL(w7HX7N+%|kRA5(1VsdPG-ndl+zJsMQ~P zV$U{clU2TSx3)+do8~~6QJO;GhftcQDTQvOb@+jW%H~VCENj^Y{J(OfT6~0M_^R|ss8Kb# z&Mln)*X^jxX>G8#e&lo$@@h0BxghuXJu&w$nq%&rO6t5O7RqZNm47sqzY&x_GVOFP zjP+X!%<(>r{0S5$lfpEoFr_HpR&8*^ZtipeG;@LK72F#0ngR8Ko>D0H$h6;~#p3D18sod~wh`YV}N^Fr}y#e^M=csTOUirV-^XLA~0Qz6JHF zPOUSoCDv=ZqfY0SLg^%sB}{6LT0KcR>_|R6$TIJcwG1YoG2}C|47SAt@|j0IU8r?> zkk63jm{%NFdt_QkDo;H1CQnM|cM4-eI!U5fm&sNimBY69(h1w*2l6>eKFi5xA+>Uw zwrB|lDEFh3vS(|wx=GacMQ?1=a%6|erEoMDMs2!*Z2ku2{ujj>Nv9Q`D~J?CXK4b$PRQ~x?em^KbT8^sw&(T%e$p#A3j_UX^<+YaVxdYkr zShC(l)KYt>rHb~@!qyd;_8DpBPqMdXU~iFW(wla(H&)+}l#MMt^Kl>1rAJ%q}0 zm~0@iEn3&QGMMr-@(CcT_>8QgF2!m^vF1~m=a9X9PFC8Ie7+?8I8%#{r=DJP#3(w- z6&*2(jwDKI{=c+)(eb>fev0K)N47~;|)4NctX4GDTsqZf; zjiW))c7H%+ZcF2NS!%(e`Z-2nYLJE7kcC$ngyX}HWG$D-S{_mfv&m;K`D`Pffo*YA zSy2YZkfYSEU(h&Hj8+}aWIq|LFic$KJ}Vod1}ylz?ynN73u{UWb>=Y=P>zPB%dFtUS_g{4`{Bp zqkbAhJ|5)r2aPS?(CVcd^|_ZJyLn+ju(zc+|x>IS3QwlX`e8{8mA(4F6laC#x*^hkYlt$w;)vIMpk7kMIN`M|jB--EDLJez+TO@QwpVoYC_3x?mv$^_ zv0syJ*OOJxr#fa)i)^A6ISMU;^( zMWg*L8tt3W=vs8lxkq;1h33k+WW!+;s}HS7Txc~IMpiVp^+YK7x1}e7hHp^43>4-m z+2?ceDNjDXkxvTsj=L?fE$+aIF*5BIwQqEVsnEXRW#&=qEG?vsqBBBK{S>YH*OdG9 z7C37>q}&UyMN#vs3*}Wb<)U+6VU1xrn+v5=bd^}Nmlf`bn9d$fCo-*QNs9Kk{E_xB zjkKppdlw6pB$#YKwrv6Hkn}QmM^<#*RX8s!$rx(A+(Saxa|M`|e^2xA^<+Vv5e@MQ8kbWdDNZuYsj- zjW>|&e+~7K^Uz1IrY{QBbSK%ie+603Sp=3TUa#ot5o49Er&nnIt;J8#IPf#AYT{@- zzeYaK$R~z;7LxXoY0Q~HW6nDA$s(VrvC`a^p~hoxbHNN+IoNMCg2m|gu5t1X>6HHWB4}G`8@L3LOy57$4u=~ zg+}a18nK&Dm~Iqi35D^XS@Hp`A8yk6;d{#cQ812>y=dh>lG^SQnw=A9cAiK+Ipi~* zd^%9y+};vn9j9^iA>0$eNxf2DV0HF%omR>puB~7tCWUfr4A)+CUD>fYT=%2v0LRvF zy@J9YFVz9AyVCWNQeki%MAyqoMZ$F@3SZK(2VA$O>$;A8;Cd5X4{;m-*SjeE52c2} z^+>v2Un&N!$5NO!j-%juI{EJ{l?2zWbUm}wIJllqVY)hI!1WpO|GCtZdSPkf?f2Dj z7HhlAgg$jJ37-zEa+nJ(SfvAw^V1vRe I&kRe;B6lW)4@=9oe`K%{p01A!&LS!L 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
_ea3u&XLdt% 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 I|7qaA0pvlLDgXcg literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.dll.meta b/Plugins/Realtime.dll.meta new file mode 100644 index 0000000..577a238 --- /dev/null +++ b/Plugins/Realtime.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 2cc7db9093f3d4b919a2a1723cdc15e1 +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..466260ab2c2df68edda2f93042917df9ed759a54 GIT binary patch literal 105448 zcmeF4b$Aq4{O)H%vWpe>LI~~_+zJGDcPK;_2t*))7Kh@6;_hDDij@X;r&uWjhXSQ7 zQlQY@_npkb+bRA1aqn~gx;M}B;ml{g=X=hXGrGHB6VSX~fWvSY{7DX))ClnFU7~1l zbA{nFzQ6*>)g&Z{>t2C$YvF@Xf1P0z_r`Mbn5fW*uF;HF+GH45W#nqv+^CA>&RnkD zvThBO3*mJh!UMu0+1RU%Gam-Hyz9*y)9X$7LFe}_dbe*lRvWFeFHV*uyJ3!MEc_-o z<}{2Xi4CJ|q6A;*Wf)sA>~~my2l29C0M>0n`~{XXBF3%q0W4=(WqNBp)IfEH@bfgG zFb)`bvBZ9My9~pPXh(P$7y~MzdTnI&MmY@SK9pxsdOI9OT8Ed>3}qn7c_`PQyod4y z$|7D4qmq}G(GTTll>1ShLzy^{!^oJ(%czgC9m>fl7oj|hG9G0*Z-DwqQngH>Py_!jH|2f+z&9$W=C z!2|FVyaexncRq)a45R^BKu%B)_=5@{0MrA`Ksyiwx`Qat9}ELy!DKKSEC#E=Ca@Fi z1INHQa24DFKZD=F8{m~6GXtK0Bn2EssRB4m{`1FSgrH6snD(!F=o{--7w|IT!JoiY z(96hQkd1j6bqgjknt;~ebKnMHAli(3Bj#=N2cLtX<~kp&^T9eFtn^q93nnqnfJ@*y*ahx_XW(y;tWXl82IyNTsWBLQ2_}H4U=COe zR)G!RTd=1P`$%dWER+o6NM@Wsc^=#;lpNzsj_pcrJi_wt;59G`CpU6{{Gb%52^xS4 zh1t$0MwKF;81;*!!1z)a%}@?5lmcT&fia}O7*ZH*v92@d1^O}$z62A%R4@lD2CKjZ z@GaN_4uTWlJh%#Of(PI!__Ih#%xy~SiuGm5ZjroTb8?rNWp}Va`$+ zjj*mA=mMsJ?~A5Joz$q4+Bk&ebKpAo8)Pq*2Kyxq_DdS0IF>7ch9DelD3%uIOIqVw zlxd5nHFARrpg!mdqQQEwyLdVr8|jSwC_Cg$XB

9pzb+55QCKC-5qf&PW1MfsDWx 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 R-32O`{vO8w(O=N-{{ySis)GOk literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.pdb.meta b/Plugins/Realtime.pdb.meta new file mode 100644 index 0000000..f113953 --- /dev/null +++ b/Plugins/Realtime.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d2fa7833c77f846a1acc72cfc6839956 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/link.xml b/Plugins/link.xml new file mode 100644 index 0000000..a083f9d --- /dev/null +++ b/Plugins/link.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Plugins/link.xml.meta b/Plugins/link.xml.meta new file mode 100644 index 0000000..fe84a06 --- /dev/null +++ b/Plugins/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5fe94085c0d484738958ab562a8d5fc8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..5373b3f --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "com.leancloud.realtime", + "version": "0.10.15", + "displayName": "LeanCloud Realtime", + "description": "This is leancloud realtime package", + "unity": "2019.1", + "dependencies": { + "com.leancloud.storage": "https://github.com/leancloud/csharp-sdk-upm.git#storage-0.10.15" + }, + "keywords": ["LeanCloud", "Storage"], + "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..cbd8a81 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 04d22298636b648d39cc6515be168ce7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: