From e7ac05da288acd3279437020304adcb6412ae644 Mon Sep 17 00:00:00 2001 From: leancloud-bot Date: Thu, 13 Jul 2023 11:14:56 +0800 Subject: [PATCH] 2.0.0 --- Plugins.meta | 8 + Plugins/LC.Google.Protobuf.dll | Bin 0 -> 358912 bytes Plugins/LC.Google.Protobuf.dll.meta | 33 + Plugins/LC.Google.Protobuf.pdb | Bin 0 -> 142288 bytes Plugins/LC.Google.Protobuf.pdb.meta | 7 + Plugins/LC.Google.Protobuf.xml | 9125 +++++++++++++++++++++++++++ Plugins/LC.Google.Protobuf.xml.meta | 7 + Plugins/LiveQuery.deps.json | 111 + Plugins/LiveQuery.deps.json.meta | 7 + Plugins/LiveQuery.dll | Bin 0 -> 22016 bytes Plugins/LiveQuery.dll.meta | 33 + Plugins/LiveQuery.pdb | Bin 0 -> 12328 bytes Plugins/LiveQuery.pdb.meta | 7 + Plugins/Realtime.dll | Bin 0 -> 300032 bytes Plugins/Realtime.dll.meta | 33 + Plugins/Realtime.pdb | Bin 0 -> 105872 bytes Plugins/Realtime.pdb.meta | 7 + Plugins/link.xml | 11 + Plugins/link.xml.meta | 7 + package.json | 16 + package.json.meta | 7 + 21 files changed, 9419 insertions(+) create mode 100644 Plugins.meta create mode 100644 Plugins/LC.Google.Protobuf.dll create mode 100644 Plugins/LC.Google.Protobuf.dll.meta create mode 100644 Plugins/LC.Google.Protobuf.pdb create mode 100644 Plugins/LC.Google.Protobuf.pdb.meta create mode 100644 Plugins/LC.Google.Protobuf.xml create mode 100644 Plugins/LC.Google.Protobuf.xml.meta create mode 100644 Plugins/LiveQuery.deps.json create mode 100644 Plugins/LiveQuery.deps.json.meta create mode 100644 Plugins/LiveQuery.dll create mode 100644 Plugins/LiveQuery.dll.meta create mode 100644 Plugins/LiveQuery.pdb create mode 100644 Plugins/LiveQuery.pdb.meta create mode 100644 Plugins/Realtime.dll create mode 100644 Plugins/Realtime.dll.meta create mode 100644 Plugins/Realtime.pdb create mode 100644 Plugins/Realtime.pdb.meta create mode 100644 Plugins/link.xml create mode 100644 Plugins/link.xml.meta create mode 100644 package.json create mode 100644 package.json.meta diff --git a/Plugins.meta b/Plugins.meta new file mode 100644 index 0000000..33eace8 --- /dev/null +++ b/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66eaec1d672c5482eb24292965b527f4 +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..126994c8076edc2a697dd40de3207b9325d95ae6 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..eadfdb6 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 1514880c4395a4bbaa859a3a7dcf38b4 +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..23a25c2dd59d47c0482b8a9cf89503ec63320cc2 GIT binary patch literal 142288 zcmbT91+-R0*tYjM#0k2)ySux)ySp0!>F!Pmr9(w{h#}0 z&hh?+e|>BH|GRuI=9*___TJCTj`uxqtlXq_<&YpGz$>o38&<8Haaf`J1z8cq4n|vH zyuGtD?AjT1&+Yw5qL3iV*dREWI3)Na++t0J4DQvx$7_hsP7@Nuv_G>nYZA=2@<5bp zG^*N2BM7=$d4-j&3E%PU&-M1c zV((;DS-}3pD>R6SCieRG#IR{+s1uc8noG z6=P^HoaL!3A7uFy%a2(Ou}p;qC5+ad4A8bgCYERSLN z5X&F4{FG(PKxj~w^H7uJp)5~e`4Gz=vm9Y_7ZM~hh6XiQZo=|Jmglm3gym0I{+s34 zw!%V#a>kIL7R%#Up2hM}mQS<%jODNhw69_e2^z6Ho#n+WUt;+ymg7gFO#KP(ru6DlOAYzz%XvOJyT_gOy6 zau5$~;u|f8EZ1gv49l}vKFRWBmP2hJhXe_Yc8n}HVtFddi&;Ly@^zNuB|!T$#?YW1 z%WYVm$MQ;+KWF)SmeV9e`&`D*pe@V2S>C|%9+rP(`3cMU6QO-sV`$KiS%ja1RO^)^njiEsWmg}&* zpXJjm$4h}W8H}O!=jC*;P`jRm2K&gPak4yF zovcqbC)<=ob|?Fj%gO6xcvkey zPc|T1kR8Y#Zu$eH8`@(fuc2cj3q!Z}f1 zOa4I)$c38M$#LXP@;Z5s49Sf)5#&H}BDpvZ>K__o28Hs1CCLh8b+R7Wp6o{UC0`@Q zlhes1GQb@C_jSMpEtA2LA^v@A(hB^#1+$R*@Da;q^>aE!c4{y_doW-W?n8?p;I zncPTzMdm1mHtoo6) zhh*#$7$-iNoXka5B_+w@hmqsR>Er@(1-XvgM!rWLB|j!Fkk`p?$b01P}^aMyi1-WzaYOM%a=j43ptrQL>4ZK z`XW?kH+hi!fILN>C$EyX$UEfEU#4NjJ!ntLiVYNmJ7(t zwNP$CE+Ny`Monq*ZE`31oQz)w(Mx3Ax+qU1?-|nv@#=v|$uwkUG8b8pEJ2nhtC4ld zCS+@}6WNm-K+Yr=klV@M$e8tmAVW}|tVY%)n~<%^X~vhY48f7;a>n4El`{rG12Bw? zPbMSNl3B>yWFfLH*@SFu%oOw|hmxboN#sm&0lAyJL_Q&7G(_LbWIb{?xt=_4%p5!< zpO7!el#NiIfhnZ&0%Rq!3E7Q&og8P( z5=?OClfS9{oCXx?&GIlfeA~TZtjMaihWM{G$ zIfvXw#%+!^Wypc#H1Y`JB9ppap2QpDBjGT(BMGhfX8*2m?$ZO;pYeb8ZWsTK?`o@~v&zeCq zmV1%|$YJCdaufLl`3?Ca`3L!&jM)aG#U)dbnaKQPak4yFhipRbC1bTk-*{wi@&K8z z9qNaZ3&`cWcSHO1##%uGV;$~!ouE0(J;?s#P;xXmom@_?A>SrXkk`qt$Y06W-7#`H zvaqo(w^BDK#d2-3G1;2zOb#Juk&DPT$@S!E@_X_ZGG-5qoRKVRtQQO-car*)lXJ);^@B@dCu$;;%AMOGwhlKsh<8VllK+y4`e7@n$UI~bvKm>B z+)YOGN6SRy81f=ndO#2~4UUkXkQc~nK(-*q zkju%n54ssv)KKU_up1elhCVwyn z!2@Fx9%+-{AC?mhK}||B1DTzyO^zTZkTb|P$W`PfatFDO{E+;VyiR^imK=($j3uX% zSICsZP~V+AN!}#ykUx`ukZE5>%Z_AEav(W|oI)-nSCDU$JIN#DN%9hTgZzPfKt3a5 z498aDkSWQGWInPOxtA> z9r6+Rl#D$ZBgZG(k}JuL_;vm*N_*5(} zo;*o@PsW~t(Q=Xn$&zG6vL@M#>`M+IN0T$i1>}D62KfycIu#>lA*+(z$^PUpax6KO zTtsdq_mGFkQ{)BmF`0ZCMov#wAUl#1$o1ql@?G*U`5}3cyh}bL|0H8h$Cz=+!empj zEjfl{ZV=?) zH6ce(j^)N=YZ7N`j-WHkL&@3XV)89=19^u0fqX#5nuorb$Z}){vOhVD97|3m50eq| z(JK*|ip);tC(Dpk$cAJ~vK!ft97>KMr;u~VCFDwSBe{n>M4loqkT=OY}a97|3m=aO%d>&ac@QSvN#g}h1LAs>+yR$%-ZWCOA-*_9kbP9m3(E6J_o z5%N5Fjr@*$OoqLQkrR+<$*g1{vJ_dJtWUNfyO0CP;p7x@4!MHdPQFimOnydwN&ZOw zO1>aty@fqVOlBpEljX@eWE1i>*=;4-_an2dLU|imW;M!Z$%r*5Cn8gknaKQPZL%@h zn(RRiAV-sv$pz$c@-+De`JBwV7F%gS&L&Tg7s>17*W{06*gCW?OqM1qlMTogWLL5; zIfR@*&L9_%%gMWBru7&z7ul0sNB%&T-hgN;vJ=^h97K*KH;~)O_sHYqY4RHRBl$NO zx)Eb0AXAW8$-HED@=bC*`7N1Z6M8i#-ypY;yUBy(aqwhV8-@lagu4Tx21#JXxJ=Lbf4$k^{*x

rtxq^I~+({lGPm-6& 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

~ibvo)#>9WZHD`No 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 O@l|EfocP3k?f(Hyl4f%N 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..d483419 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ae90dc836841244868cec0f538326ad0 +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..cc1c77d --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4f80d71a27a144aaab9c6223d1124de7 +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..24a9645 --- /dev/null +++ b/Plugins/LiveQuery.deps.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba663a3583a70473a8bbe8902ee4bdf2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.dll b/Plugins/LiveQuery.dll new file mode 100644 index 0000000000000000000000000000000000000000..2a0444c43ceb93cdb9db34245bc9cffd80d8070b GIT binary patch literal 22016 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

px=SWwxp!ECB2ryRz@nV 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

uRT)+mI1Qr$gQ(p-1AlIFVc5~b#T6<|W% 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 z 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 z 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�e{wQ+2O9m9tsY<$6Zi(>^Zl|6a7tof(A*)cyM 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 literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.dll.meta b/Plugins/Realtime.dll.meta new file mode 100644 index 0000000..dfcbd08 --- /dev/null +++ b/Plugins/Realtime.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 1f14a1350a82e4d63b4540d31db62de5 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Realtime.pdb b/Plugins/Realtime.pdb new file mode 100644 index 0000000000000000000000000000000000000000..12a0ee0ba1cd10f8d8ddb6b9fe891733ba8014b1 GIT binary patch literal 105872 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 P!~=hiVSwl_==c8t=+4<; literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.pdb.meta b/Plugins/Realtime.pdb.meta new file mode 100644 index 0000000..ef157e4 --- /dev/null +++ b/Plugins/Realtime.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9491bef4826b4490ebf2d20b3d0cf485 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/link.xml b/Plugins/link.xml new file mode 100644 index 0000000..724110f --- /dev/null +++ b/Plugins/link.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Plugins/link.xml.meta b/Plugins/link.xml.meta new file mode 100644 index 0000000..cff93f9 --- /dev/null +++ b/Plugins/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8e848c565708342cd9e96286be7094a6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..d6913dd --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "com.leancloud.realtime", + "version": "2.0.0", + "displayName": "LeanCloud Realtime", + "description": "This is leancloud realtime package", + "unity": "2019.1", + "dependencies": { + "com.leancloud.storage": "https://github.com/leancloud/csharp-sdk-upm.git#storage-2.0.0" + }, + "keywords": ["LeanCloud", "Realtime"], + "author": { + "name": "LeanCloud", + "email": "support@leancloud.rocks", + "url": "https://leancloud.cn/" + } +} diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..85a4d1d --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 66c2a2fd1b5b4439bae940847d7de7a8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: