From a30965409c7898c41e0cb367c7e342e2921b2242 Mon Sep 17 00:00:00 2001 From: leancloud-bot Date: Thu, 17 Mar 2022 16:42:26 +0800 Subject: [PATCH] 0.10.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 -> 105448 bytes Plugins/Realtime.pdb.meta | 7 + Plugins/link.xml | 10 + Plugins/link.xml.meta | 7 + package.json | 16 + package.json.meta | 7 + 21 files changed, 9418 insertions(+) create mode 100644 Plugins.meta create mode 100644 Plugins/LC.Google.Protobuf.dll create mode 100644 Plugins/LC.Google.Protobuf.dll.meta create mode 100644 Plugins/LC.Google.Protobuf.pdb create mode 100644 Plugins/LC.Google.Protobuf.pdb.meta create mode 100644 Plugins/LC.Google.Protobuf.xml create mode 100644 Plugins/LC.Google.Protobuf.xml.meta create mode 100644 Plugins/LiveQuery.deps.json create mode 100644 Plugins/LiveQuery.deps.json.meta create mode 100644 Plugins/LiveQuery.dll create mode 100644 Plugins/LiveQuery.dll.meta create mode 100644 Plugins/LiveQuery.pdb create mode 100644 Plugins/LiveQuery.pdb.meta create mode 100644 Plugins/Realtime.dll create mode 100644 Plugins/Realtime.dll.meta create mode 100644 Plugins/Realtime.pdb create mode 100644 Plugins/Realtime.pdb.meta create mode 100644 Plugins/link.xml create mode 100644 Plugins/link.xml.meta create mode 100644 package.json create mode 100644 package.json.meta diff --git a/Plugins.meta b/Plugins.meta new file mode 100644 index 0000000..929fc78 --- /dev/null +++ b/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: be26b01df324d412bb8e13607b020140 +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..5a98c05dce56257d66c3e609044264e8ea908840 GIT binary patch literal 358912 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

WT#ZF#7+q;X~vHk1-JID^P#XrpY$!srM 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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..7bc64fa --- /dev/null +++ b/Plugins/LC.Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 0521c2e94fd8644c7ad7bf5955b0846f +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..3d20e6706fdd956c399044af3c6736701bb5bd56 GIT binary patch literal 142288 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 BWX=Ep 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..562f0d7 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 470f5c3e5c0534cbd8e6a288aeacf7b1 +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..7a86a72 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9b5f38cb8d621457bb374b9974c43ea4 +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..ed7ab50 --- /dev/null +++ b/Plugins/LiveQuery.deps.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 31f8ec7ec049e40f0b5568421f985eb7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.dll b/Plugins/LiveQuery.dll new file mode 100644 index 0000000000000000000000000000000000000000..74dc1a19fc7ce5f5fef955f045f8865c9d376a2d GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.dll.meta b/Plugins/LiveQuery.dll.meta new file mode 100644 index 0000000..c64b1a1 --- /dev/null +++ b/Plugins/LiveQuery.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: f0ae4694c90db4b5b9af4667ad9572ab +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..5cc6fac2d54e2716534074b8ca189ead3f6fd9f0 GIT binary patch literal 12328 zcmb7K2Ut``*PgvB%YrOTii#p#L|l5a0!!~ru|}8O3#@E`EtoYiE-JCNXkv|GFIb2g zR3rvX)I<_nG||K;Mq~L*G?p))F_!<#-8*n8$@BdCF!#=xIqx}VX3ms5oP>h(1Rmlc z{Ii9Wo0#BP6)Fy43XlN33mH8mpImt{F8c%0IxC>xLujE8^0=-*uT`i^b+|sj8X-O| z8&!aUAU_%BQ%0pF!h0dm>->REP-?KStS6TmetMCczU9K7!Fh!*KmXrH1y7(D74_fL z!@37ztV#yj3DS5-Lm~M>5*V2J+BwPyD9P zIp&S?+#iMh@}$sgFH&ZK)-rhul;DlaEYLLey@Pr4kv-ELJXFBEDYSxp$KfspJ&W15 zt)H2$WZ(PP_buj)JCgVhxCP+aX>bqF+fL(pJU)aU*IPmfp>e%{L*sF<>O>1UbTHIg zb7go60&qC&?2CFaA-TA?KreO z(2guU2>2a)H?y~&eGV|djjpj(qTY51MSJuScVJq2%&NR zxPocgL@MKc21-dtf#`S$V(e502B-HoqMEB#+81KQM<9HqED3Fi&^=%IJ6_=w?guV`VhAMHHXG)!Cc@K_Su+F-)(ZRx!8$Plo)oihn)UKw>@X+R zYs2WJV1{BjxSYr2c}U8X;C>Jyyoj2$STfqJm=a6oi4hY$zzKi@=Pf-g;f;4H9t!uw zt0!!zpa;_po_P1hUWq-=8@PPI)BHh00B{Aux)B6xgBa$22+a8~urLDVb`-2hF~}1} z!wamnK;F~QhNl4i?Q4R3nx6^sll__@ztIm_S)$8+aq!go$5{!`JiPQG zq$!?4%k+s-y%bd%XswaS$uX&rBbf@4Moy!tw6r{*E`YEI%Fu

o=&Lvn>okCY0X9%*S% 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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..6015a74 --- /dev/null +++ b/Plugins/LiveQuery.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 50b4cce36fe594823b11fa74c57322a6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Realtime.dll b/Plugins/Realtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..82c86d45398526fd0fd2b22b0cad41aba734aa85 GIT binary patch literal 299008 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 XfMW%^x{JCCR51NLjsc>-;NSlT_XDbU literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.pdb.meta b/Plugins/Realtime.pdb.meta new file mode 100644 index 0000000..482ceef --- /dev/null +++ b/Plugins/Realtime.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 080c2f763b2de4dcdaa14c2477f37014 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/link.xml b/Plugins/link.xml new file mode 100644 index 0000000..a083f9d --- /dev/null +++ b/Plugins/link.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Plugins/link.xml.meta b/Plugins/link.xml.meta new file mode 100644 index 0000000..e977df3 --- /dev/null +++ b/Plugins/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 031bcd14ac3924dd6919f3caa98f4a13 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..888ac97 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "com.leancloud.realtime", + "version": "0.10.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-0.10.5" + }, + "keywords": ["LeanCloud", "Storage"], + "author": { + "name": "LeanCloud", + "email": "support@leancloud.rocks", + "url": "https://leancloud.cn/" + } +} diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..f269139 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bf6a3fdbe97ce4848a2fcb68ee8b7a7b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: