From 3a654897f725ec91fbc1c59e617c57a3055e7160 Mon Sep 17 00:00:00 2001 From: leancloud-bot Date: Mon, 20 Feb 2023 10:53:26 +0800 Subject: [PATCH] 1.0.5 --- 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 -> 105612 bytes Plugins/Realtime.pdb.meta | 7 + Plugins/link.xml | 11 + Plugins/link.xml.meta | 7 + package.json | 16 + package.json.meta | 7 + 21 files changed, 9419 insertions(+) create mode 100644 Plugins.meta create mode 100644 Plugins/LC.Google.Protobuf.dll create mode 100644 Plugins/LC.Google.Protobuf.dll.meta create mode 100644 Plugins/LC.Google.Protobuf.pdb create mode 100644 Plugins/LC.Google.Protobuf.pdb.meta create mode 100644 Plugins/LC.Google.Protobuf.xml create mode 100644 Plugins/LC.Google.Protobuf.xml.meta create mode 100644 Plugins/LiveQuery.deps.json create mode 100644 Plugins/LiveQuery.deps.json.meta create mode 100644 Plugins/LiveQuery.dll create mode 100644 Plugins/LiveQuery.dll.meta create mode 100644 Plugins/LiveQuery.pdb create mode 100644 Plugins/LiveQuery.pdb.meta create mode 100644 Plugins/Realtime.dll create mode 100644 Plugins/Realtime.dll.meta create mode 100644 Plugins/Realtime.pdb create mode 100644 Plugins/Realtime.pdb.meta create mode 100644 Plugins/link.xml create mode 100644 Plugins/link.xml.meta create mode 100644 package.json create mode 100644 package.json.meta diff --git a/Plugins.meta b/Plugins.meta new file mode 100644 index 0000000..618d94d --- /dev/null +++ b/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 862b2f0bff6bd45699e0fd56ebe9b91e +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..6e6aaafe5523a433aee0fa69182cadf20e28e8a0 GIT binary patch literal 358912 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

=adF{`Cf|iN|i@s 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 literal 0 HcmV?d00001 diff --git a/Plugins/LC.Google.Protobuf.dll.meta b/Plugins/LC.Google.Protobuf.dll.meta new file mode 100644 index 0000000..7b88d99 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: c782ee2d5132e4ed7b8f9eb192f119bb +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..a48e4e5836763930cfd34210d9276dd0341f8cb0 GIT binary patch literal 142288 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

raxx}ci9Kq^Ww!HJomL0Eb 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 z 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 PxcI8FXij`$zxMwCt`2Pv 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..714431c --- /dev/null +++ b/Plugins/LC.Google.Protobuf.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3315004fa629340d7b146e4330d436dc +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..f80a909 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8920d3fdc631046b99312369e92040b3 +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..3e5c012 --- /dev/null +++ b/Plugins/LiveQuery.deps.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d7929715369754b8bb8763a26f207391 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.dll b/Plugins/LiveQuery.dll new file mode 100644 index 0000000000000000000000000000000000000000..15e05c30fe184d5164aeb114451fad535102834f GIT binary patch literal 22016 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 PTmLO7{r`0>THyZx=gnPB literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.dll.meta b/Plugins/LiveQuery.dll.meta new file mode 100644 index 0000000..02dfe49 --- /dev/null +++ b/Plugins/LiveQuery.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 4ec086072331844438327eeb25150b4f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.pdb b/Plugins/LiveQuery.pdb new file mode 100644 index 0000000000000000000000000000000000000000..96ac15f7f4a24671fb5ecf7f9169b351ab396155 GIT binary patch literal 12328 zcmb7K2V4}#_n%vi;{cB)MM3E(A|Aac7U1Yr0mT|!?iM&X?%)b~F(!vfu$O3JSL_-a zu|^~YjU|!97B!j}#b09knP@DZ{EV^u-|X$cQj*W-e;;Od-p>2J_h#nJo7v?h=4T`d zkO1LdHz>oC61}U!q@nBsBtq{&MGwVqxS|L@`vb}vE1=&;XucTgxGi6=RjNyLxINGs zAt8P?G9Lv)eG;yxj!aL2`+T6+^Z`0irNP21*ZWt8{M{|3@qc%=JQ+IZlz!izC*UzE z^x9}^ZHri|Qh;`XG9F4C6n`iZD9fQ(LKy_b2MX>11qJJNhvESRKf^rujxl~v@DKR# zBltZw-_S|usabvk++(2FL%|pqC~3f60H}p2<`%k zLKf(~-WF&kl(|rrKzY{_#I*ZapbtGQPFUGfn>h;nFX50-FL8eA#z}c1A4~ZDfBUSPrySA zdKPhaNr0Kwa`$@f{wsUO14;Y`+yZcIG`I)oZKH8Jo*%-G+b!V

ey2N8@?0>OhNm zbO^Lt^Jv@w8y+13#$g(3NQbs_T)QREg-~yTVhgPzpz#k}6V`wbi8(q9XbI4^JlYOu zJ05Khv?E9N2Yv^jyK{5`N4o-zZR-ui5!&5&?M^^@a5VPy?m&BTbU4t?KznmEmf->; zLTEfbu3#OZoq=}a(YU<_crt0%0^O5G<97EBvupN1{(=I0c6!fdnmL=a`;K`ESyKr z;?X@YFGoiKKh|9i1@lJ({XNuiT#W=ehLfiU{%9V36xw5X^nRcR@#r_ePv{0{+XMyw zaIg~~ygDg%j)lkwbxV{5SA-Tr5wLNaU#Hkz=KuSoJwMiB!Fn3D8*9P40L9L;1BN$?X6xM$ztod-TFcQ{wG{mG> z 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 literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.pdb.meta b/Plugins/LiveQuery.pdb.meta new file mode 100644 index 0000000..29b44a8 --- /dev/null +++ b/Plugins/LiveQuery.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e1f1fcbb73c5d46608186b906b8d22e7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Realtime.dll b/Plugins/Realtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..d337a218db188e214074cf6c33624404b50ae161 GIT binary patch literal 299008 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 Y-S5@k4`QYs72b+H_y7O>{%PQU0MV_MVE_OC literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.dll.meta b/Plugins/Realtime.dll.meta new file mode 100644 index 0000000..fcd6c68 --- /dev/null +++ b/Plugins/Realtime.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 87b0958d1bf02496da218fa9f928dc39 +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..c7860f13bcbd86b45fcf50dcc92c52678c0fe921 GIT binary patch literal 105612 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 z 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 literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.pdb.meta b/Plugins/Realtime.pdb.meta new file mode 100644 index 0000000..ba03f55 --- /dev/null +++ b/Plugins/Realtime.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: caf5e80504ee04316aba2e266648cbd3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/link.xml b/Plugins/link.xml new file mode 100644 index 0000000..724110f --- /dev/null +++ b/Plugins/link.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Plugins/link.xml.meta b/Plugins/link.xml.meta new file mode 100644 index 0000000..ade607a --- /dev/null +++ b/Plugins/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a421bcefba95b4ec184a758fd4b6e459 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..30158a4 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "com.leancloud.realtime", + "version": "1.0.5", + "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-1.0.5" + }, + "keywords": ["LeanCloud", "Realtime"], + "author": { + "name": "LeanCloud", + "email": "support@leancloud.rocks", + "url": "https://leancloud.cn/" + } +} diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..1629a87 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 945ff10587144402ba99d7103d7ee852 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: