diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj index 7f6a20974..9bf97f043 100644 --- a/ArchiSteamFarm/ArchiSteamFarm.csproj +++ b/ArchiSteamFarm/ArchiSteamFarm.csproj @@ -98,12 +98,11 @@ ..\packages\NLog.5.0.0-beta06\lib\net45\NLog.dll True - - ..\packages\protobuf-net.2.0.0.668\lib\net40\protobuf-net.dll - True + + ..\packages\protobuf-net.2.1.0\lib\net451\protobuf-net.dll - - ..\packages\SteamKit2.1.8.2\lib\net45\SteamKit2.dll + + ..\packages\SteamKit2.2.0.0-Alpha3\lib\net46\SteamKit2.dll diff --git a/ArchiSteamFarm/packages.config b/ArchiSteamFarm/packages.config index fe55bca46..232707648 100644 --- a/ArchiSteamFarm/packages.config +++ b/ArchiSteamFarm/packages.config @@ -9,7 +9,7 @@ - + - + \ No newline at end of file diff --git a/GUI/GUI.csproj b/GUI/GUI.csproj index cc15436a1..9ea91d1d1 100644 --- a/GUI/GUI.csproj +++ b/GUI/GUI.csproj @@ -71,12 +71,11 @@ ..\packages\NLog.Windows.Forms.4.2.3\lib\net35\NLog.Windows.Forms.dll True - - ..\packages\protobuf-net.2.0.0.668\lib\net40\protobuf-net.dll - True + + ..\packages\protobuf-net.2.1.0\lib\net451\protobuf-net.dll - - ..\packages\SteamKit2.1.8.2\lib\net45\SteamKit2.dll + + ..\packages\SteamKit2.2.0.0-Alpha3\lib\net46\SteamKit2.dll diff --git a/GUI/packages.config b/GUI/packages.config index db4a90ff9..ec6e1fc46 100644 --- a/GUI/packages.config +++ b/GUI/packages.config @@ -10,7 +10,7 @@ - + - + \ No newline at end of file diff --git a/packages/SteamKit2.1.8.2/SteamKit2.1.8.2.nupkg b/packages/SteamKit2.1.8.2/SteamKit2.1.8.2.nupkg deleted file mode 100644 index 5a94a998c..000000000 Binary files a/packages/SteamKit2.1.8.2/SteamKit2.1.8.2.nupkg and /dev/null differ diff --git a/packages/SteamKit2.1.8.2/lib/net45/SteamKit2.dll b/packages/SteamKit2.1.8.2/lib/net45/SteamKit2.dll deleted file mode 100644 index 9df185534..000000000 Binary files a/packages/SteamKit2.1.8.2/lib/net45/SteamKit2.dll and /dev/null differ diff --git a/packages/SteamKit2.2.0.0-Alpha3/3rd party.txt b/packages/SteamKit2.2.0.0-Alpha3/3rd party.txt new file mode 100644 index 000000000..ce6f94db4 --- /dev/null +++ b/packages/SteamKit2.2.0.0-Alpha3/3rd party.txt @@ -0,0 +1,4 @@ +SteamKit2 makes use of the following libraries: + +protobuf-net by Marc Gravell (marc.gravell@gmail.com) licensed under Apache License 2.0 + License and source code available at https://github.com/mgravell/protobuf-net diff --git a/packages/SteamKit2.2.0.0-Alpha3/SteamKit2.2.0.0-Alpha3.nupkg b/packages/SteamKit2.2.0.0-Alpha3/SteamKit2.2.0.0-Alpha3.nupkg new file mode 100644 index 000000000..ea8f68d8a Binary files /dev/null and b/packages/SteamKit2.2.0.0-Alpha3/SteamKit2.2.0.0-Alpha3.nupkg differ diff --git a/packages/SteamKit2.2.0.0-Alpha3/gpl.txt b/packages/SteamKit2.2.0.0-Alpha3/gpl.txt new file mode 100644 index 000000000..c69e8aeb5 --- /dev/null +++ b/packages/SteamKit2.2.0.0-Alpha3/gpl.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. \ No newline at end of file diff --git a/packages/SteamKit2.2.0.0-Alpha3/lgpl.txt b/packages/SteamKit2.2.0.0-Alpha3/lgpl.txt new file mode 100644 index 000000000..4362b4915 --- /dev/null +++ b/packages/SteamKit2.2.0.0-Alpha3/lgpl.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/packages/SteamKit2.2.0.0-Alpha3/lib/net46/SteamKit2.dll b/packages/SteamKit2.2.0.0-Alpha3/lib/net46/SteamKit2.dll new file mode 100644 index 000000000..83686a6a1 Binary files /dev/null and b/packages/SteamKit2.2.0.0-Alpha3/lib/net46/SteamKit2.dll differ diff --git a/packages/SteamKit2.1.8.2/lib/net45/SteamKit2.xml b/packages/SteamKit2.2.0.0-Alpha3/lib/net46/SteamKit2.xml similarity index 94% rename from packages/SteamKit2.1.8.2/lib/net45/SteamKit2.xml rename to packages/SteamKit2.2.0.0-Alpha3/lib/net46/SteamKit2.xml index 787b05b9c..27d9ed45b 100644 --- a/packages/SteamKit2.1.8.2/lib/net45/SteamKit2.xml +++ b/packages/SteamKit2.2.0.0-Alpha3/lib/net46/SteamKit2.xml @@ -323,119 +323,6 @@ The data representing a client message. - - - Represents a unified interface into client messages. - - - - - Gets a value indicating whether this client message is protobuf backed. - - - true if this instance is protobuf backed; otherwise, false. - - - - - Gets the network message type of this client message. - - - The message type. - - - - - Gets or sets the target job id for this client message. - - - The target job id. - - - - - Gets or sets the source job id for this client message. - - - The source job id. - - - - - Serializes this client message instance to a byte array. - - Data representing a client message. - - - - Initializes this client message by deserializing the specified data. - - The data representing a client message. - - - - This is the abstract base class for all available game coordinator messages. - It's used to maintain packet payloads and provide a header for all gc messages. - - The header type for this gc message. - - - - Gets a value indicating whether this gc message is protobuf backed. - - - true if this instance is protobuf backed; otherwise, false. - - - - - Gets the network message type of this gc message. - - - The network message type. - - - - - Gets or sets the target job id for this gc message. - - - The target job id. - - - - - Gets or sets the source job id for this gc message. - - - The source job id. - - - - - Gets the header for this message type. - - - - - Initializes a new instance of the class. - - The number of bytes to initialize the payload capacity to. - - - - Serializes this gc message instance to a byte array. - - - Data representing a gc message. - - - - - Initializes this gc message by deserializing the specified data. - - The data representing a gc message. - Represents a protobuf backed game coordinator message. @@ -602,6 +489,119 @@ The data representing a client message. + + + Represents a unified interface into client messages. + + + + + Gets a value indicating whether this client message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this client message. + + + The message type. + + + + + Gets or sets the target job id for this client message. + + + The target job id. + + + + + Gets or sets the source job id for this client message. + + + The source job id. + + + + + Serializes this client message instance to a byte array. + + Data representing a client message. + + + + Initializes this client message by deserializing the specified data. + + The data representing a client message. + + + + This is the abstract base class for all available game coordinator messages. + It's used to maintain packet payloads and provide a header for all gc messages. + + The header type for this gc message. + + + + Gets a value indicating whether this gc message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this gc message. + + + The network message type. + + + + + Gets or sets the target job id for this gc message. + + + The target job id. + + + + + Gets or sets the source job id for this gc message. + + + The source job id. + + + + + Gets the header for this message type. + + + + + Initializes a new instance of the class. + + The number of bytes to initialize the payload capacity to. + + + + Serializes this gc message instance to a byte array. + + + Data representing a gc message. + + + + + Initializes this gc message by deserializing the specified data. + + The data representing a gc message. + Represents a simple unified interface into game coordinator messages recieved from the network. @@ -750,12 +750,6 @@ The data. - - - This is the base class for the utility class. - This is for internal use only, and shouldn't be used directly. - - This base client handles the underlying connection to a CM server. This class should not be use directly, but through the class. @@ -882,6 +876,12 @@ Called when the client is physically disconnected from Steam3. + + + This is the base class for the utility class. + This is for internal use only, and shouldn't be used directly. + + Represents a unified interface into client messages. @@ -1478,173 +1478,304 @@ The data. - + - A server list provider that uses a file to persist the server list using protobuf + Represents data that has been received over the network. - + - Initialize a new instance of FileStorageServerListProvider + Occurs when a net message is recieved over the network. - + - Read the stored list of servers from the file + Raises the event. - List of servers if persisted, otherwise an empty list + The instance containing the event data. - + - Writes the supplied list of servers to persistent storage - - List of server endpoints - Awaitable task for write completion - - - - A server list provider that returns an empty list, for consumers that populate the server list themselves + The of the current connection. + This is non-null between and , inclusive. - + - No-op implementation that returns an empty server list - - Empty server list - - - - No-op implementation that does not persist server list - - Server list - Completed task - - - - Currently marked quality of a server. All servers start off as Undetermined. + Occurs when the physical connection is established. - + - Known good server. + Occurs when the physical connection is broken. - + - Known bad server. + Connects to the specified end point. + + Task returning the end point. + Timeout in milliseconds + + + + Disconnects this instance. - + - Smart list of CM servers. + Sends the specified client net message. + + The client net message. + + + + Gets the local IP. + + The local IP. + + + + Sets the network encryption filter for this connection + + filter implementing + + + + Connects to the specified end point. + + Task returning the end point. + Timeout in milliseconds + + + + Nets the loop. - + - Initialize SmartCMServerList with a given server list provider - - The ServerListProvider to persist servers - Specifies if we can query SteamDirectory to discover more servers - - - - Initialize SmartCMServerList with the default server list provider + Seconds to wait before sending packets. - + - The server list provider chosen to provide a persistent list of servers to connect to + Seconds to wait before considering the connection dead. - + - The preferred cell id for retrieving the list of servers from the Steam directory + Maximum number of packets to resend when RESEND_DELAY is exceeded. - + - Determines how long a server's bad connection state is remembered for. + Maximum number of packets that we can be waiting on at a time. - + - Resets the scores of all servers which has a last bad connection more than ago. + Contains information about the state of the connection, used to filter out packets that are + unexpected or not valid given the state of the connection. - + - Replace the list with a new list of servers provided to us by the Steam servers. - - The s to use for this . - - - - Explicitly resets the known state of all servers. + The next outgoing sequence number to be used. - + - Perform the actual score lookup of the server list and return the candidate - - IPEndPoint candidate - - - - Get the next server in the list. - - An , or null if the list is empty. - - - - Get the next server in the list. - - An , or null if the list is empty. - - - - Gets the s of all servers in the server list. - - An array contains the s of the servers in the list - - - - A server list provider that uses IsolatedStorage to persist the server list + The highest sequence number of an outbound packet that has been sent. - + - Initialize a new instance of IsolatedStorageServerListProvider using + The sequence number of the highest packet acknowledged by the server. - + - Read the stored list of servers from IsolatedStore - - List of servers if persisted, otherwise an empty list - - - - Writes the supplied list of servers to persistent storage - - List of server endpoints - Awaitable task for write completion - - - - An interface for persisting the server list for connection discovery + The sequence number we plan on acknowledging receiving with the next Ack. All packets below or equal + to inSeq *must* have been received, but not necessarily handled. - + - Ask a provider to fetch any servers that it has available + The highest sequence number we've acknowledged receiving. - A list of IPEndPoints representing servers - + - Update the persistent list of endpoints + The highest sequence number we've processed. - List of endpoints + + + + Connects to the specified CM server. + + Task returning the CM server. + Timeout in milliseconds + + + + Disconnects this instance, blocking until the queue of messages is empty or the connection + is otherwise terminated. + + + + + Serializes and sends the provided message to the server in as many packets as is necessary. + + The ClientMsg + + + + Sends the data sequenced as a single message, splitting it into multiple parts if necessary. + + The data to send. + + + + Sends the packet as a sequenced, reliable packet. + + The packet. + + + + Sends the packets as one sequenced, reliable net message. + + The packets that make up the single net message + + + + Sends a packet immediately. + + The packet. + + + + Sends a datagram Ack, used when an Ack needs to be sent but there is no data response to piggy-back on. + + + + + Sends or resends sequenced messages, if necessary. Also responsible for throttling + the rate at which they are sent. + + + + + Returns the number of message parts in the next message. + + Non-zero number of message parts if a message is ready to be handled, 0 otherwise + + + + Dispatches up to one message to the rest of SteamKit + + True if a message was dispatched, false otherwise + + + + Processes incoming packets, maintains connection consistency, and oversees outgoing packets. + + + + + Receives the packet, performs all sanity checks and then passes it along as necessary. + + The packet. + + + + Receives the challenge and responds with a Connect request + + The packet. + + + + Receives the notification of an accepted connection and sets the connection id that will be used for the + connection's duration. + + The packet. + + + + Receives typical data packets before dispatching them for consumption by the rest of SteamKit + + The packet. + + + + Sets the network encryption filter for this connection + + filter implementing + + + + Gets a value indicating whether this instance is valid. + + + true if this instance is valid; otherwise, false. + + + + + Initializes a new instance of the class with + information from the memory stream. + + Header is populated from the MemoryStream + + The stream containing the packet and it's payload data. + + + + Initializes a new instance of the class, with + no payload. + + Header must be populated manually. + + The type. + + + + Initializes a new instance of the class, of the + specified type containing the specified payload. + + Header must be populated manually. + + The type. + The payload. + + + + Initializes a new instance of the class, of the + specified type containing the first 'length' bytes of specified payload. + + Header must be populated manually. + + The type. + The payload. + The length. + + + + Sets the payload + + The payload to copy. + + + + Sets the payload. + + The payload. + The length. + + + + Serializes the UdpPacket. + + The serialized packet. @@ -1765,7 +1896,7 @@ This must be present when connected to steam non-anonymously. - + Fetches a list of content servers. @@ -1784,14 +1915,14 @@ Check that the associated with this instance is logged onto Steam. - + Connects and initializes a session to the specified content server. The content server to connect to. csServer was null. - + Authenticate a CDNClient to a depot in the connected session @@ -1802,7 +1933,7 @@ CDN auth token for CDN content server endpoints. - + Downloads the depot manifest specified by the given manifest ID, and optionally decrypts the manifest's filenames if the depot decryption key has been provided. @@ -1810,7 +1941,7 @@ The unique identifier of the manifest to be downloaded. A instance that contains information about the files present within a depot. - + Downloads the depot manifest specified by the given manifest ID, and optionally decrypts the manifest's filenames if the depot decryption key has been provided. @@ -1824,7 +1955,7 @@ A instance that contains information about the files present within a depot. - + Downloads the specified depot chunk, and optionally processes the chunk and verifies the checksum if the depot decryption key has been provided. @@ -1835,12 +1966,12 @@ The id of the depot being accessed. A instance that represents the chunk to download. - This value should come from a manifest downloaded with . + This value should come from a manifest downloaded with . A instance that contains the data for the given chunk. chunk's was null. - + Downloads the specified depot chunk, and optionally processes the chunk and verifies the checksum if the depot decryption key has been provided. @@ -1851,7 +1982,7 @@ The id of the depot being accessed. A instance that represents the chunk to download. - This value should come from a manifest downloaded with . + This value should come from a manifest downloaded with . A instance that contains the data for the given chunk. CDN hostname. @@ -1862,2464 +1993,207 @@ chunk's was null. - + - This handler is used for interacting with remote storage and user generated content. + Disposes of this object. - + - This callback is recieved in response to calling . + A server list provider that uses a file to persist the server list using protobuf - + - Gets the result of the request. + Initialize a new instance of FileStorageServerListProvider - + - Gets the App ID the UGC is for. + Read the stored list of servers from the file + + List of servers if persisted, otherwise an empty list + + + + Writes the supplied list of servers to persistent storage + + List of server endpoints + Awaitable task for write completion + + + + An interface for persisting the server list for connection discovery - + - Gets the SteamID of the UGC's creator. + Ask a provider to fetch any servers that it has available + + A list of IPEndPoints representing servers + + + + Update the persistent list of endpoints + + List of endpoints + + + + A server list provider that uses IsolatedStorage to persist the server list - + - Gets the URL that the content is located at. + Initialize a new instance of IsolatedStorageServerListProvider using - + - Gets the name of the file. + Read the stored list of servers from IsolatedStore + + List of servers if persisted, otherwise an empty list + + + + Writes the supplied list of servers to persistent storage + + List of server endpoints + Awaitable task for write completion + + + + A server list provider that returns an empty list, for consumers that populate the server list themselves - + - Gets the size of the file. + No-op implementation that returns an empty server list + + Empty server list + + + + No-op implementation that does not persist server list + + Server list + Completed task + + + + Currently marked quality of a server. All servers start off as Undetermined. - + - This callback is recieved in response to calling . + Known good server. - + - Gets the result of the request. + Known bad server. - + - Gets the App ID the file is for. + Smart list of CM servers. - + - Gets the file name request. + Initialize SmartCMServerList with a given server list provider + + The ServerListProvider to persist servers + Specifies if we can query SteamDirectory to discover more servers + + + + Initialize SmartCMServerList with the default server list provider - + - Gets the SHA hash of the file. + The server list provider chosen to provide a persistent list of servers to connect to - + - Gets the timestamp of the file. + The preferred cell id for retrieving the list of servers from the Steam directory - + - Gets the size of the file. + Determines how long a server's bad connection state is remembered for. - + - Gets if the file was explicity deleted by the user. + Resets the scores of all servers which has a last bad connection more than ago. - + - This callback is recieved in response to calling . + Replace the list with a new list of servers provided to us by the Steam servers. + + The s to use for this . + + + + Explicitly resets the known state of all servers. - + - Gets the result of the request. + Perform the actual score lookup of the server list and return the candidate + + IPEndPoint candidate + + + + Get the next server in the list. + + An , or null if the list is empty. + + + + Get the next server in the list. + + An , or null if the list is empty. + + + + Gets the s of all servers in the server list. + + An array contains the s of the servers in the list + + + + This class implements the base requirements every message handler should inherit from. - + - Gets the resulting UGC handle. + Gets the underlying for use in sending replies. - + - Requests details for a specific item of user generated content from the Steam servers. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. + Gets or sets whether or not the related should imminently expect the server to close the connection. + If this is true when the connection is closed, the 's property + will be set to true. - The unique user generated content id. - The Job ID of the request. This can be used to find the appropriate . - + - Requests details for a specific file in the user's Cloud storage. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. + Initializes a new instance of the class. - The app id of the game. - The path to the file being requested. - The Job ID of the request. This can be used to find the appropriate . - - - Commit a Cloud file at the given path to make its UGC handle publicly visible. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The app id of the game. - The path to the file being requested. - The Job ID of the request. This can be used to find the appropriate . - - + Handles a client message. This should not be called directly. The packet message that contains the data. - - - This handler is used for interacting with the Steam network as a game server. - - - - - This callback is fired when the game server receives a status reply. - - - - - Gets a value indicating whether this game server is VAC secure. - - - true if this server is VAC secure; otherwise, false. - - - - - This callback is fired when ticket authentication has completed. - - - - - Gets the SteamID the ticket auth completed for. - - - - - Gets the GameID the ticket was for. - - - - - Gets the authentication state. - - - - - Gets the auth session response. - - - - - Gets the ticket CRC. - - - - - Gets the ticket sequence. - - - - - Represents the details required to log into Steam3 as a game server. - - - - - Gets or sets the authentication token used to log in as a game server. - - - - - Gets or sets the AppID this gameserver will serve. - - - - - Represents the details of the game server's current status. - - - - - Gets or sets the AppID this game server is serving. - - - - - Gets or sets the server's basic state as flags. - - - - - Gets or sets the directory the game data is in. - - - - - Gets or sets the IP address the game server listens on. - - - - - Gets or sets the port the game server listens on. - - - - - Gets or sets the port the game server responds to queries on. - - - - - Gets or sets the current version of the game server. - - - - - Logs onto the Steam network as a persistent game server. - The client should already have been connected at this point. - Results are return in a . - - The details to use for logging on. - No logon details were provided. - Username or password are not set within . - - - - Logs the client into the Steam3 network as an anonymous game server. - The client should already have been connected at this point. - Results are returned in a . - - The AppID served by this game server, or 0 for the default. - - - - Informs the Steam servers that this client wishes to log off from the network. - The Steam server will disconnect the client, and a will be posted. - - - - - Sends the server's status to the Steam network. - Results are returned in a callback. - - A object containing the server's status. - - - - Handles a client message. This should not be called directly. - - The packet message that contains the data. - - - - This handler handles all game coordinator messaging. - - - - - This callback is fired when a game coordinator message is recieved from the network. - - - - - Gets the game coordinator message type. - - - - - Gets the AppID of the game coordinator the message is from. - - - - - Gets a value indicating whether this message is protobuf'd. - - - true if this instance is protobuf'd; otherwise, false. - - - - - Gets the actual message. - - - - - Sends a game coordinator message for a specific appid. - - The GC message to send. - The app id of the game coordinator to send to. - - - - Handles a client message. This should not be called directly. - - The packet message that contains the data. - - - - This handler is used for requesting server list details from Steam. - - - - - This callback is received in response to calling . - - - - - Represents a single server. - - - - - Gets the IP endpoint of the server. - - - - - Gets the number of Steam authenticated players on this server. - - - - - Gets the list of servers. - - - - - Details used when performing a server list query. - - - - - Gets or sets the AppID used when querying servers. - - - - - Gets or sets the filter used for querying the master server. - Check https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol for details on how the filter is structured. - - - - - Gets or sets the region that servers will be returned from. - - - - - Gets or sets the IP address that will be GeoIP located. - This is done to return servers closer to this location. - - - - - Gets or sets the maximum number of servers to return. - - - - - Requests a list of servers from the Steam game master server. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The details for the request. - The Job ID of the request. This can be used to find the appropriate . - - - - Handles a client message. This should not be called directly. - - The packet message that contains the data. - - - - This handler is used for initializing Steam trades with other clients. - - - - - This callback is fired when this client receives a trade proposal. - - - - - Gets the result. - - - - - Gets the screenshot ID of the newly added screenshot. - - - - - Width of a screenshot thumnail - - - - - Represents the details required to add a screenshot - - - - - Gets or sets the Steam game ID this screenshot belongs to - - The game ID. - - - - Gets or sets the UFS image filepath. - - The UFS image filepath. - - - - Gets or sets the UFS thumbnail filepath. - - The UFS thumbnail filepath. - - - - Gets or sets the screenshot caption - - The screenshot caption. - - - - Gets or sets the screenshot privacy - - The screenshot privacy. - - - - Gets or sets the screenshot width - - The screenshot width. - - - - Gets or sets the screenshot height - - The screenshot height. - - - - Gets or sets the creation time - - The creation time. - - - - Gets or sets whether or not the screenshot contains spoilers - - Whether or not the screenshot contains spoilers. - - - - Initializes a new instance of the class. - - - - - Adds a screenshot to the user's screenshot library. The screenshot image and thumbnail must already exist on the UFS. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The details of the screenshot. - The Job ID of the request. This can be used to find the appropriate . - - - - Handles a client message. This should not be called directly. - - The packet message that contains the data. - - - - This handler is used for initializing Steam trades with other clients. - - - - - This callback is fired when this client receives a trade proposal. - - - - - Gets the Trade ID of his proposal, used for replying. - - - - - Gets the SteamID of the client that sent the proposal. - - - - - Gets the persona name of the client that sent the proposal. - - - - - This callback is fired when this client receives the response from a trade proposal. - - - - - Gets the Trade ID that this result is for. - - - - - Gets the response of the trade proposal. - - - - - Gets the SteamID of the client that responded to the proposal. - - - - - Gets the number of days Steam Guard is required to have been active on this account. - - - - - Gets the number of days a new device cannot trade for. - - - - - Gets the default number of days one cannot trade for after a password reset. - - - - - Gets the number of days one cannot trade for after a password reset. - - - - - This callback is fired when a trading session has started. - - - - - Gets the SteamID of the client that this the trading session has started with. - - - - - Proposes a trade to another client. - - The client to trade. - - - - Responds to a trade proposal. - - The trade id of the received proposal. - if set to true, the trade will be accepted. - - - - Cancels an already sent trade proposal. - - The user. - - - - Handles a client message. This should not be called directly. - - The packet message that contains the data. - - - - This handler is used for interacting with Steamworks unified messaging - - - - - This callback is returned in response to a service method sent through . - - - - - Gets the result of the message. - - - - - Gets the raw binary response. - - - - - Gets the name of the Service. - - - - - Gets the name of the RPC method. - - - - - Gets the full name of the service method. - - - - - Deserializes the response into a protobuf object. - - Protobuf type of the response message. - The response to the message sent through . - - - - This callback represents a service notification recieved though . - - - - - Gets the name of the Service. - - - - - Gets the name of the RPC method. - - - - - Gets the full name of the service method. - - - - - Gets the protobuf notification body. - - - - - This wrapper is used for expression-based RPC calls using Steam Unified Messaging. - - - - - Sends a message. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The type of the protobuf object which is the response to the RPC call. - RPC call expression, e.g. x => x.SomeMethodCall(message); - Whether this message is a notification or not. - The JobID of the request. This can be used to find the appropriate . - - - - Sends a message. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The type of a protobuf object. - Name of the RPC endpoint. Takes the format ServiceName.RpcName - The message to send. - Whether this message is a notification or not. - The JobID of the request. This can be used to find the appropriate . - - - - Creates a wrapper for expression-based unified messaging. - - The type of a service interface. - The wrapper. - - - - Handles a client message. This should not be called directly. - - The packet message that contains the data. - - - - This handler is used for requesting files published on the Steam Workshop. - - - - - This callback is received in response to calling . - - - - - Represents the details of a single published file. - - - - - Gets the file ID. - - - - - Gets the number of reports for this file. - - - - - Gets the score of this file, based on up and down votes. - - - - - Gets the total count of up votes. - - - - - Gets the total count of down votes. - - - - - Gets the result. - - - - - Gets the list of enumerated files. - - - - - Gets the count of total results. - - - - - This callback is received in response to calling . - - - - - Represents the details of a single published file. - - - - - Gets the file ID. - - - - - Gets the result. - - - - - Gets the list of enumerated files. - - - - - Gets the count of total results. - - - - - This callback is received in response to calling . - - - - - Represents the details of a single published file. - - - - - Gets the file ID. - - - - - Gets the time this file was subscribed to. - - - - - Gets the result. - - - - - Gets the list of enumerated files. - - - - - Gets the count of total results. - - - - - This callback is received in response to calling . - - - - - Represents the details of a single published file. - - - - - Gets the file ID. - - - - - Gets the timestamp of this file. - - - - - Gets the result. - - - - - Gets the list of enumerated files. - - - - - Gets the count of total results. - - - - - Represents the details of an enumeration request used for the local user's files. - - - - - Gets or sets the AppID of the workshop to enumerate. - - - The AppID. - - - - - Gets or sets the sort order. - This value is only used by . - - - The sort order. - - - - - Gets or sets the start index. - - - The start index. - - - - - Gets or sets the user action to filter by. - This value is only used by . - - - The user action. - - - - - Enumerates the list of published files for the current logged in user. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The specific details of the request. - The Job ID of the request. This can be used to find the appropriate . - - - - Enumerates the list of subscribed files for the current logged in user. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The specific details of the request. - The Job ID of the request. This can be used to find the appropriate . - - - - Enumerates the list of published files for the current logged in user based on user action. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The specific details of the request. - The Job ID of the request. This can be used to find the appropriate . - - - - Represents the details of an enumeration request for all published files. - - - - - Gets or sets the AppID of the workshop to enumerate. - - - The AppID. - - - - - Gets or sets the type of the enumeration. - - - The type. - - - - - Gets or sets the start index. - - - The start index. - - - - - Gets or sets the days. - - - The days. - - - - - Gets or sets the number of results to return. - - - The number of results. - - - - - Gets the list of tags to enumerate. - - - - - Gets the list of user tags to enumerate. - - - - - Initializes a new instance of the class. - - - - - Enumerates the list of all published files on the Steam workshop. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The specific details of the request. - The Job ID of the request. This can be used to find the appropriate . - - - - Handles a client message. This should not be called directly. - - The packet message that contains the data. - - - - This handler handles Steam user statistic related actions. - - - - - Retrieves the number of current players for a given . - Results are returned in a . - - The GameID to request the number of players for. - The Job ID of the request. This can be used to find the appropriate . - - - - Retrieves the number of current players for a given app id. - Results are returned in a . - - The app id to request the number of players for. - The Job ID of the request. This can be used to find the appropriate . - - - - Asks the Steam back-end for a leaderboard by name for a given appid. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The AppID to request a leaderboard for. - Name of the leaderboard to request. - The Job ID of the request. This can be used to find the appropriate . - - - - Asks the Steam back-end for a leaderboard by name, and will create it if it's not yet. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The AppID to request a leaderboard for. - Name of the leaderboard to create. - Sort method to use for this leaderboard - Display type for this leaderboard. - The Job ID of the request. This can be used to find the appropriate . - - - - Asks the Steam back-end for a set of rows in the leaderboard. - Results are returned in a . - The returned can also be awaited to retrieve the callback result. - - The AppID to request leaderboard rows for. - ID of the leaderboard to view. - The Job ID of the request. This can be used to find the appropriate . - Range start or 0. - Range end or max leaderboard entries. - Type of request. - - - - Handles a client message. This should not be called directly. - - The instance containing the event data. - - - - This callback is fired in response to . - - - - - Gets the result of the request. - - - - - Gets the current number of players according to Steam. - - - - - This callback is fired in response to and . - - - - - Gets the result of the request. - - - - - Leaderboard ID. - - - - - How many entires there are for requested leaderboard. - - - - - Sort method to use for this leaderboard. - - - - - Display type for this leaderboard. - - - - - This callback is fired in response to . - - - - - Represents a single package in this response. - - - - - Gets the for this entry. - - - - - Gets the global rank for this entry. - - - - - Gets the score for this entry. - - - - - Gets the attached to this entry. - - - - - Extra game-defined information regarding how the user got that score. - - - - - Gets the result of the request. - - - - - How many entires there are for requested leaderboard. - - - - - Gets the list of leaderboard entries this response contains. - - - - - Tracks a job with this manager. - - The asynchronous job to track. - - - - Passes a callback to a pending async job. - If the given callback completes the job, the job is removed from this manager. - - The JobID. - The callback. - - - - Extends the lifetime of a job. - - The job identifier. - - - - Marks a certain job as remotely failed. - - The job identifier. - - - - Cancels and clears all jobs being tracked. - - - - - Enables or disables periodic checks for job timeouts. - - Whether or not job timeout checks should be enabled. - - - - This is called periodically to cancel and clear out any jobs that have timed out (no response from Steam). - - - - - Retrieves a job from this manager, and optionally removes it from tracking. - - The JobID. - If set to true, this job is removed from tracking. - - - - - Thrown when Steam encounters a remote error with a pending . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message that describes the error. - - - - Initializes a new instance of the class. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - This utility class is used for binding a callback to a function. - - The callback type this instance will handle. - - - - Gets or sets the job ID this callback will handle. - Setting this field to the maximum value of a ulong will unbind this handler, - allowing all callbacks of type TCall to be handled. - - - - - Gets or sets the function to call when a callback of type TCall arrives. - - - - - Initializes a new instance of the class. - - The function to call when a callback of type TCall arrives. - The that is responsible for the routing of callbacks to this handler, or null if the callback will be registered manually. - - - - Initializes a new instance of the class. - - The function to call when a callback of type TCall arrives. - The that is responsible for the routing of callbacks to this handler, or null if the callback will be registered manually. - The to filter matching callbacks by. Specify to recieve all callbacks of type TCall. - - - - Attaches the specified to this handler. - - The manager to attach. - - - - Releases unmanaged resources and performs other cleanup operations before the - is reclaimed by garbage collection. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - This function will unregister the callback. - - - - - This class is a utility for routing callbacks to function calls. - In order to bind callbacks to functions, an instance of this class must be created for the - instance that will be posting callbacks. - - - - - Initializes a new instance of the class. - - The instance to handle the callbacks of. - - - - Runs a single queued callback. - If no callback is queued, this method will instantly return. - - - - - Blocks the current thread to run a single queued callback. - If no callback is queued, the method will block for the given timeout. - - The length of time to block. - - - - Blocks the current thread to run all queued callbacks. - If no callback is queued, the method will block for the given timeout. - - The length of time to block. - - - - Blocks the current thread to run a single queued callback. - If no callback is queued, the method will block until one is posted. - - - - - Manually registers the specified callback handler. - This is generally not required, as a handler will register itself when it is created. - If the specified callback is already registered, no exception is thrown. - - The callback handler to register. - - - - Registers the provided to receive callbacks of type . - - The of the callbacks that should be subscribed to. - If this is , all callbacks of type will be recieved. - The function to invoke with the callback. - The type of callback to subscribe to. - An . Disposing of the return value will unsubscribe the . - - - - Registers the provided to receive callbacks of type . - - The function to invoke with the callback. - An . Disposing of the return value will unsubscribe the . - - - - Unregisters the specified callback handler. - This is generally not required, as a handler will unregister itself when disposed or finalized. - If the specified callback isn't registered, no exception is thrown. - - The callback handler to unregister. - - - - Represents a single client that connects to a UFS server. - - - - - This callback is received after attempting to connect to the UFS server. - - - - - Gets the result of the connection attempt. - - The result. - - - - This callback is received when the client is physically disconnected from the UFS server. - - - - - If true, the disconnection was initiated by calling . - If false, the disconnection was the cause of something not user-controlled, such as a network failure or - a forcible disconnection by the remote server. - - - - - This callback is returned in response to an attempt to log on to the UFS server through . - - - - - Gets the result of the logon - - - - - This callback is returned in response to a request to upload a file through . - - - - - Gets the result of the upload request - - - - - Gets whether or not the file upload should proceed over HTTP - - - - - Gets whether or not the file upload should proceed over HTTPS - - - - - Gets whether or not the file should be encrypted during upload - - - - - Gets the SHA hash of the file to be uploaded - - - - - Gets the JobID on the UFS server. - - - - - This callback is returned when a file upload through is completed. - - - - - Gets the result of the file upload - - - - - Gets the SHA hash of the file that was uploaded - - - - - Gets the connected universe of this client. - This value will be if the client is not connected to Steam. - - The universe. - - - - Gets a value indicating whether this instance is connected to the remote UFS server. - - - true if this instance is connected; otherwise, false. - - - - - Gets or sets the connection timeout used when connecting to the UFS server. - The default value is 5 seconds. - - - The connection timeout. - - - - - Initializes a new instance of the class. - - - The parent instance that the UFS connection is for. - Callbacks will also be posted through this instance. - - - - - Connects this client to a UFS server. - This begins the process of connecting and encrypting the data channel between the client and the UFS server. - Results are returned asynchronously in a . - If the UFS server that this client attempts to connect to is down, a will be posted instead. - will not attempt to reconnect to Steam, you must handle this callback and call again, preferrably after a short delay. - In order to connect to the UFS server, the parent must be connected to the CM server. - - - The of the UFS server to connect to. - If null, will randomly select a UFS server from the 's list of servers. - - - - - Disconnects this client from the UFS server. - a will be posted upon disconnection. - - - - - Represents all the information required to upload a file to the UFS server. - - - - - Gets or sets the AppID this upload request is for. - - - The AppID. - - - - - Gets or sets the remote name of the file that is being uploaded. - - - The name of the file. - - - - - Gets or sets the physical file data for this upload. - - - The file data. - - - - - Gets or sets the JobID of this file upload. This value should be assigned from . - - - The job ID. - - - - - Attempt to logon to the UFS and authorize the client for the given AppIDs. - The should be connected before this point. - Results are returned in a . - - The AppIDs to authorize when connecting to the UFS. - The Job ID of the request. This can be used to find the appropriate . - - - - Begins a request to upload a file to the UFS. - The should be logged on before this point. - Results are returned in a . - - The details to use for uploading the file. - The Job ID of the request. This can be used to find the appropriate . - - - - Uploads the actual contents of a file to the UFS. - The should be logged on before this point, and the previous request to upload a file must have completed successfully. - Results are returned in a . - - The details to use for uploading the file. - The Job ID of the request. This can be used to find the appropriate . - - - - Sends the specified client message to the UFS server. - This method will automatically assign the correct of the message, as given by the parent . - - The client message to send. - - - - Helper class to load servers from the Steam Directory Web API. - - - - - Initializes 's server list with servers from the Steam Directory. - - Cell ID - - - - Load a list of servers from the Steam Directory. - - Cell ID - A with the Result set to an enumerable list of s. - - - - Load a list of servers from the Steam Directory. - - Cell ID - Cancellation Token - A with the Result set to an enumerable list of s. - - - - Utility class for interacting with the Steam Web API. - - - - - Represents a single interface that exists within the Web API. - This is a dynamic object that allows function calls to interfaces with minimal code. - - - - - Gets or sets the timeout value in milliseconds for any web requests made to the WebAPI. - - - The timeout value in milliseconds. The default value is 100,000 milliseconds (100 seconds). - - - - - Manually calls the specified Web API function with the provided details. - - The function name to call. - The version of the function to call. - A dictionary of string key value pairs representing arguments to be passed to the API. - The http request method. Either "POST" or "GET". - if set to true this method will be called through the secure API. - A object representing the results of the Web API call. - The function name or request method provided were null. - An network error occurred when performing the request. - An error occured when parsing the response from the WebAPI. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Provides the implementation for operations that invoke a member. - Classes derived from the class can - override this method to specify dynamic behavior for operations such as calling a method. - This method should not be called directly, it is called through dynamic method calls. - - - Provides information about the dynamic operation. - The binder.Name property provides the name of the member on which the dynamic operation is performed. - For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the - class derived from the class, binder.Name returns "SampleMethod". - The binder.IgnoreCase property specifies whether the member name is case-sensitive. - - - The arguments that are passed to the object member during the invoke operation. For example, - for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the - class, the first argument to is equal to 100. - - The result of the member invocation. - - true if the operation is successful; otherwise, false. If this method returns false, the run-time - binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) - - - Dynamic method is called with non-named argument. - All parameters must be passed as name arguments to API calls. - - or - - The dynamic method name was not in the correct format. - All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number. - - - The reserved named parameter 'secure' was not a boolean value. - This parameter is used when requests must go through the secure API. - - - The function version number specified was out of range. - - - - - Represents a single interface that exists within the Web API. - This is a dynamic object that allows function calls to interfaces with minimal code. - This version of the class makes use of TPL Tasks to provide an asynchronous API. - - - - - Manually calls the specified Web API function with the provided details. - - The function name to call. - The version of the function to call. - A dictionary of string key value pairs representing arguments to be passed to the API. - The http request method. Either "POST" or "GET". - if set to true this method will be called through the secure API. - A that contains a object representing the results of the Web API call. - The function name or request method provided were null. - An network error occurred when performing the request. - An error occured when parsing the response from the WebAPI. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Provides the implementation for operations that invoke a member. - Classes derived from the class can - override this method to specify dynamic behavior for operations such as calling a method. - This method should not be called directly, it is called through dynamic method calls. - - - Provides information about the dynamic operation. - The binder.Name property provides the name of the member on which the dynamic operation is performed. - For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the - class derived from the class, binder.Name returns "SampleMethod". - The binder.IgnoreCase property specifies whether the member name is case-sensitive. - - - The arguments that are passed to the object member during the invoke operation. For example, - for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the - class, the first argument to is equal to 100. - - The result of the member invocation. - - true if the operation is successful; otherwise, false. If this method returns false, the run-time - binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) - - - Dynamic method is called with non-named argument. - All parameters must be passed as name arguments to API calls. - - or - - The dynamic method name was not in the correct format. - All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number. - - - The reserved named parameter 'secure' was not a boolean value. - This parameter is used when requests must go through the secure API. - - - The function version number specified was out of range. - - - - - Retreives a dynamic handler capable of interacting with the specified interface on the Web API. - - The interface to retrieve a handler for. - An optional API key to be used for authorized requests. - A dynamic object to interact with the Web API. - - - - Retreives a dynamic handler capable of interacting with the specified interface on the Web API. - - The interface to retrieve a handler for. - An optional API key to be used for authorized requests. - A dynamic object to interact with the Web API. - - - - Represents a globally unique identifier within the Steam network. - Guaranteed to be unique across all racks and servers for a given Steam universe. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The GID value. - - - - Performs an implicit conversion from to . - - The gid. - - The result of the conversion. - - - - - Performs an implicit conversion from to . - - The gid. - - The result of the conversion. - - - - - Gets or sets the sequential count for this GID. - - - The sequential count. - - - - - Gets or sets the start time of the server that generated this GID. - - - The start time. - - - - - Gets or sets the process ID of the server that generated this GID. - - - The process ID. - - - - - Gets or sets the box ID of the server that generated this GID. - - - The box ID. - - - - - Gets or sets the entire 64bit value of this GID. - - - The value. - - - - - 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. - - - - - 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. - - - - - Implements the operator ==. - - The left side GID. - The right side GID. - - The result of the operator. - - - - - Implements the operator !=. - - The left side GID. - The right side GID. - - The result of the operator. - - - - - 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. - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Represents a single unique handle to a piece of User Generated Content. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The UGC ID. - - - - Performs an implicit conversion from to . - - The UGC handle. - - The result of the conversion. - - - - - Performs an implicit conversion from to . - - The UGC ID. - - The result of the conversion. - - - - - Represents a Steam3 depot manifest. - - - - - Represents a single chunk within a file. - - - - - Gets or sets the SHA-1 hash chunk id. - - - - - Gets or sets the expected Adler32 checksum of this chunk. - - - - - Gets or sets the chunk offset. - - - - - Gets or sets the compressed length of this chunk. - - - - - Gets or sets the decompressed length of this chunk. - - - - - Initializes a new instance of the class. - - - - - Represents a single file within a manifest. - - - - - Gets the name of the file. - - - - - Gets the chunks that this file is composed of. - - - - - Gets the file flags - - - - - Gets the total size of this file. - - - - - Gets the hash of this file. - - - - - Gets the list of files within this manifest. - - - - - Gets a value indicating whether filenames within this depot are encrypted. - - - true if the filenames are encrypted; otherwise, false. - - - - - Attempts to decrypts file names with the given encryption key. - - The encryption key. - true if the file names were successfully decrypted; otherwise, false. - - - - Represents an identifier of a network task known as a job. - - - - - Represents an invalid JobID. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The Job ID to initialize this instance with. - - - - Performs an implicit conversion from to . - - The Job ID. - - The result of the conversion. - - - - - Performs an implicit conversion from to . - - The Job ID. - - The result of the conversion. - - - - - Performs an implicit conversion from to . - - The asynchronous job. - - The result of the conversion. - - - - - The base class for awaitable versions of a . - Should not be used or constructed directly, but rather with . - - - - - Gets the for this job. - - - - - Gets or sets the period of time before this job will be considered timed out and will be canceled. By default this is 10 seconds. - - - - - Adds a callback to the async job's result set. - - The callback. - true if this result completes the set; otherwise, false. - - - - Sets this job as failed, either remotely or due to a message timeout. - - - If set to true this job is marked as failed because Steam informed us of a job failure; - otherwise, this job has failed due to a message timeout. - - - - - Marks this job as having received a heartbeat and extends the job's timeout. - - - - - Represents an awaitable version of a . - Can either be converted to a TPL with or can be awaited directly. - - The callback type that will be returned by this async job. - - - - Initializes a new instance of the class. - - The that this job will be associated with. - The Job ID value associated with this async job. - - - - Converts this instance into a TPL . - - - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler use rather than use directly in code. - - - - Adds a callback to the async job's result set. For an , this always completes the set. - - The callback. - Always true. - - - - Sets this job as failed, either remotely or due to a message timeout. - - - If set to true this job is marked as failed because Steam informed us of a job failure; - otherwise, this job has failed due to a message timeout. - - - - - Represents an awaitable version of a . - Can either be converted to a TPL with or can be awaited directly. - This type of async job can contain multiple callback results. - - The callback type that will be returned by this async job. - - - - The set of callback results for an . - - - - - Gets a value indicating whether this is complete and contains every result sent by Steam. - - - - - Gets a value indicating whether the parent received an incomplete result set and then encountered a remote failure. - - - - - Gets a read only collection of callback results for this async job. - - - - - Initializes a new instance of the class. - - The that this job will be associated with. - The Job ID value associated with this async job. - The condition that must be fulfilled for the result set to be considered complete. - - - - Converts this instance into a TPL . - - - - - Gets an awaiter used to await this . - An awaiter instance. - This method is intended for compiler use rather than use directly in code. - - - - Adds a callback to the async job's result set. - - The callback. - true if this result completes the set; otherwise, false. - - - - Sets this job as failed, either remotely or due to a message timeout. - - - If set to true this job is marked as failed because Steam informed us of a job failure; - otherwise, this job has failed due to a message timeout. - - - - - Represents a backed MessageObject structure, which are often sent by the Steam servers. - - - - - Gets the inner object. - - - - - Initializes a new instance of the class, using the provided KeyValues object. - - The KeyValue backing store for this message object. - - - - Initializes a new instance of the class with an empty inner KeyValues. - - - - - Populates this MessageObject instance from the data inside the given stream. - - The stream to load data from. - true on success; otherwise, false. - - - - Writes this MessageObject instance to the given stream. - - The stream to write to. - - - - The base class used for wrapping common ulong types, to introduce type safety and distinguish between common types. - - - - - Gets or sets the value. - - - The value. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The value to initialize this handle to. - - - - 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. - - - - - 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 that represents this instance. - - - A that represents this instance. - - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - - true if the current object is equal to the other parameter; otherwise, false. - - - - - Represents a handle to a published file on the Steam workshop. - - - - - Initializes a new instance of the class. - - The file id. - - - - Performs an implicit conversion from to . - - The published file. - - The result of the conversion. - - - - - Performs an implicit conversion from to . - - The file id. - - The result of the conversion. - - - - - Implements the operator ==. - - The first published file. - The second published file. - - The result of the operator. - - - - - Implements the operator !=. - - The first published file. - The second published file. - - The result of the operator. - - - - - This is a debug utility, do not use it to implement your business logic. - - This interface is used for logging network messages sent to and received from the Steam server that the client is connected to. - - - - - Called when a packet is received from the Steam server. - - Network message type of this packet message. - Raw packet data that was received. - - - - Called when a packet is about to be sent to the Steam server. - - Network message type of this packet message. - Raw packet data that will be sent. - - - - Dump any network messages sent to and received from the Steam server that the client is connected to. - These messages are dumped to file, and can be analyzed further with NetHookAnalyzer, a hex editor, or your own purpose-built tools. - - Be careful with this, sensitive data may be written to the disk (such as your Steam password). - - - - - Will create a folder in path "%assembly%/nethook/%currenttime%/" - - - - - Log to your own folder. - - Path to folder. - - - - Called when a packet is received from the Steam server. - - Network message type of this packet message. - Raw packet data that was received. - - - - Called when a packet is about to be sent to the Steam server. - - Network message type of this packet message. - Raw packet data that will be sent. - - - - Gets a value indicating whether this instance is valid. - - - true if this instance is valid; otherwise, false. - - - - - Initializes a new instance of the class with - information from the memory stream. - - Header is populated from the MemoryStream - - The stream containing the packet and it's payload data. - - - - Initializes a new instance of the class, with - no payload. - - Header must be populated manually. - - The type. - - - - Initializes a new instance of the class, of the - specified type containing the specified payload. - - Header must be populated manually. - - The type. - The payload. - - - - Initializes a new instance of the class, of the - specified type containing the first 'length' bytes of specified payload. - - Header must be populated manually. - - The type. - The payload. - The length. - - - - Sets the payload - - The payload to copy. - - - - Sets the payload. - - The payload. - The length. - - - - Serializes the UdpPacket. - - The serialized packet. - This handler is used for interacting with apps and packages on the Steam network. @@ -4455,144 +2329,6 @@ Gets the ticket data. - - - This callback is received in response to calling . - - - - - Represents a single app in the info response. - - - - - The status of a requested app. - - - - - The information for this app was requested successfully. - - - - - This app is unknown. - - - - - Gets the status of the app. - - - - - Gets the AppID for this app. - - - - - Gets the last change number for this app. - - - - - Gets a section data for this app. - - - - - Gets the list of apps this response contains. - - - - - Gets the number of apps pending in this response. - - - - - This callback is received in response to calling . - - - - - Represents a single package in this response. - - - - - The status of a package. - - - - - The information for this package was requested successfully. - - - - - This package is unknown. - - - - - Gets the status of this package. - - - - - Gets the PackageID for this package. - - - - - Gets the last change number for this package. - - - - - Gets a hash of the package data for caching purposes. - - - - - Gets the data for this package. - - - - - Gets the list of packages this response contains. - - - - - Gets a count of packages pending in this response. - - - - - This callback is received in response to calling . - - - - - Gets the list of AppIDs that have changed since the last change number request. - - - - - Gets the current change number. - - - - - Gets a value indicating whether the backend wishes for the client to perform a full update. - - - true if the client should perform a full update; otherwise, false. - - This callback is recieved in response to calling . @@ -4863,33 +2599,6 @@ Map of beta names to their encryption keys - - - Represents app request details when calling . - - - - - Gets or sets the AppID for this request. - - The AppID. - - - - Gets or sets the section flags for this request. - - The section flags. - - - - Gets the Section CRC list for this request. - - - - - Initializes a new instance of the class. - - Represents a PICS request used for @@ -4941,88 +2650,6 @@ The appid to request the ownership ticket of. The Job ID of the request. This can be used to find the appropriate . - - - Requests app information for a single app. Use the overload for requesting information on a batch of apps. - Results are returned in a callback. - The returned can also be awaited to retrieve the callback result. - - Consider using instead. - - The app to request information for. - if set to true, the request supports batches. - The Job ID of the request. This can be used to find the appropriate . - - - - Requests app information for a single app. Use the overload for requesting information on a batch of apps. - Results are returned in a callback. - The returned can also be awaited to retrieve the callback result. - - Consider using instead. - - The app to request information for. - if set to true, the request supports batches. - The Job ID of the request. This can be used to find the appropriate . - - - - Requests app information for a list of apps. - Results are returned in a callback. - The returned can also be awaited to retrieve the callback result. - - Consider using instead. - - The apps to request information for. - if set to true, the request supports batches. - The Job ID of the request. This can be used to find the appropriate . - - - - Requests app information for a list of apps. - Results are returned in a callback. - The returned can also be awaited to retrieve the callback result. - - Consider using instead. - - The apps to request information for. - if set to true, the request supports batches. - The Job ID of the request. This can be used to find the appropriate . - - - - Requests package information for a single package. Use the overload for requesting information on a batch of packages. - Results are returned in a callback. - The returned can also be awaited to retrieve the callback result. - - Consider using instead. - - The package id to request information for. - if set to true, request metadata only. - The Job ID of the request. This can be used to find the appropriate . - - - - Requests package information for a list of packages. - Results are returned in a callback. - The returned can also be awaited to retrieve the callback result. - - Consider using instead. - - The packages to request information for. - if set to true to request metadata only. - The Job ID of the request. This can be used to find the appropriate . - - - - Requests a list of app changes since the last provided change number value. - Results are returned in a callback. - - Consider using instead. - - The last change number value. - if set to true, request a change list. - Request the depot decryption key for a specified DepotID. @@ -5144,6 +2771,136 @@ The packet message that contains the data. + + + This handler is used for interacting with remote storage and user generated content. + + + + + This callback is recieved in response to calling . + + + + + Gets the result of the request. + + + + + Gets the App ID the UGC is for. + + + + + Gets the SteamID of the UGC's creator. + + + + + Gets the URL that the content is located at. + + + + + Gets the name of the file. + + + + + Gets the size of the file. + + + + + This callback is recieved in response to calling . + + + + + Gets the result of the request. + + + + + Gets the App ID the file is for. + + + + + Gets the file name request. + + + + + Gets the SHA hash of the file. + + + + + Gets the timestamp of the file. + + + + + Gets the size of the file. + + + + + Gets if the file was explicity deleted by the user. + + + + + This callback is recieved in response to calling . + + + + + Gets the result of the request. + + + + + Gets the resulting UGC handle. + + + + + Requests details for a specific item of user generated content from the Steam servers. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The unique user generated content id. + The Job ID of the request. This can be used to find the appropriate . + + + + Requests details for a specific file in the user's Cloud storage. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The app id of the game. + The path to the file being requested. + The Job ID of the request. This can be used to find the appropriate . + + + + Commit a Cloud file at the given path to make its UGC handle publicly visible. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The app id of the game. + The path to the file being requested. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + This handler handles all interaction with other users on the Steam3 network. @@ -6098,6 +3855,730 @@ The packet message that contains the data. + + + This handler handles all game coordinator messaging. + + + + + This callback is fired when a game coordinator message is recieved from the network. + + + + + Gets the game coordinator message type. + + + + + Gets the AppID of the game coordinator the message is from. + + + + + Gets a value indicating whether this message is protobuf'd. + + + true if this instance is protobuf'd; otherwise, false. + + + + + Gets the actual message. + + + + + Sends a game coordinator message for a specific appid. + + The GC message to send. + The app id of the game coordinator to send to. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for interacting with the Steam network as a game server. + + + + + This callback is fired when the game server receives a status reply. + + + + + Gets a value indicating whether this game server is VAC secure. + + + true if this server is VAC secure; otherwise, false. + + + + + This callback is fired when ticket authentication has completed. + + + + + Gets the SteamID the ticket auth completed for. + + + + + Gets the GameID the ticket was for. + + + + + Gets the authentication state. + + + + + Gets the auth session response. + + + + + Gets the ticket CRC. + + + + + Gets the ticket sequence. + + + + + Represents the details required to log into Steam3 as a game server. + + + + + Gets or sets the authentication token used to log in as a game server. + + + + + Gets or sets the AppID this gameserver will serve. + + + + + Represents the details of the game server's current status. + + + + + Gets or sets the AppID this game server is serving. + + + + + Gets or sets the server's basic state as flags. + + + + + Gets or sets the directory the game data is in. + + + + + Gets or sets the IP address the game server listens on. + + + + + Gets or sets the port the game server listens on. + + + + + Gets or sets the port the game server responds to queries on. + + + + + Gets or sets the current version of the game server. + + + + + Logs onto the Steam network as a persistent game server. + The client should already have been connected at this point. + Results are return in a . + + The details to use for logging on. + No logon details were provided. + Username or password are not set within . + + + + Logs the client into the Steam3 network as an anonymous game server. + The client should already have been connected at this point. + Results are returned in a . + + The AppID served by this game server, or 0 for the default. + + + + Informs the Steam servers that this client wishes to log off from the network. + The Steam server will disconnect the client, and a will be posted. + + + + + Sends the server's status to the Steam network. + Results are returned in a callback. + + A object containing the server's status. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for requesting server list details from Steam. + + + + + This callback is received in response to calling . + + + + + Represents a single server. + + + + + Gets the IP endpoint of the server. + + + + + Gets the number of Steam authenticated players on this server. + + + + + Gets the list of servers. + + + + + Details used when performing a server list query. + + + + + Gets or sets the AppID used when querying servers. + + + + + Gets or sets the filter used for querying the master server. + Check https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol for details on how the filter is structured. + + + + + Gets or sets the region that servers will be returned from. + + + + + Gets or sets the IP address that will be GeoIP located. + This is done to return servers closer to this location. + + + + + Gets or sets the maximum number of servers to return. + + + + + Requests a list of servers from the Steam game master server. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The details for the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for initializing Steam trades with other clients. + + + + + This callback is fired when this client receives a trade proposal. + + + + + Gets the result. + + + + + Gets the screenshot ID of the newly added screenshot. + + + + + Width of a screenshot thumnail + + + + + Represents the details required to add a screenshot + + + + + Gets or sets the Steam game ID this screenshot belongs to + + The game ID. + + + + Gets or sets the UFS image filepath. + + The UFS image filepath. + + + + Gets or sets the UFS thumbnail filepath. + + The UFS thumbnail filepath. + + + + Gets or sets the screenshot caption + + The screenshot caption. + + + + Gets or sets the screenshot privacy + + The screenshot privacy. + + + + Gets or sets the screenshot width + + The screenshot width. + + + + Gets or sets the screenshot height + + The screenshot height. + + + + Gets or sets the creation time + + The creation time. + + + + Gets or sets whether or not the screenshot contains spoilers + + Whether or not the screenshot contains spoilers. + + + + Initializes a new instance of the class. + + + + + Adds a screenshot to the user's screenshot library. The screenshot image and thumbnail must already exist on the UFS. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The details of the screenshot. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for initializing Steam trades with other clients. + + + + + This callback is fired when this client receives a trade proposal. + + + + + Gets the Trade ID of his proposal, used for replying. + + + + + Gets the SteamID of the client that sent the proposal. + + + + + This callback is fired when this client receives the response from a trade proposal. + + + + + Gets the Trade ID that this result is for. + + + + + Gets the response of the trade proposal. + + + + + Gets the SteamID of the client that responded to the proposal. + + + + + Gets the number of days Steam Guard is required to have been active on this account. + + + + + Gets the number of days a new device cannot trade for. + + + + + Gets the default number of days one cannot trade for after a password reset. + + + + + Gets the number of days one cannot trade for after a password reset. + + + + + This callback is fired when a trading session has started. + + + + + Gets the SteamID of the client that this the trading session has started with. + + + + + Proposes a trade to another client. + + The client to trade. + + + + Responds to a trade proposal. + + The trade id of the received proposal. + if set to true, the trade will be accepted. + + + + Cancels an already sent trade proposal. + + The user. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for interacting with Steamworks unified messaging + + + + + This callback is returned in response to a service method sent through . + + + + + Gets the result of the message. + + + + + Gets the raw binary response. + + + + + Gets the name of the Service. + + + + + Gets the name of the RPC method. + + + + + Gets the full name of the service method. + + + + + Deserializes the response into a protobuf object. + + Protobuf type of the response message. + The response to the message sent through . + + + + This callback represents a service notification recieved though . + + + + + Gets the name of the Service. + + + + + Gets the name of the RPC method. + + + + + Gets the full name of the service method. + + + + + Gets the protobuf notification body. + + + + + This wrapper is used for expression-based RPC calls using Steam Unified Messaging. + + + + + Sends a message. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The type of the protobuf object which is the response to the RPC call. + RPC call expression, e.g. x => x.SomeMethodCall(message); + Whether this message is a notification or not. + The JobID of the request. This can be used to find the appropriate . + + + + Sends a message. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The type of a protobuf object. + Name of the RPC endpoint. Takes the format ServiceName.RpcName + The message to send. + Whether this message is a notification or not. + The JobID of the request. This can be used to find the appropriate . + + + + Creates a wrapper for expression-based unified messaging. + + The type of a service interface. + The wrapper. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler handles Steam user statistic related actions. + + + + + This callback is fired in response to . + + + + + Gets the result of the request. + + + + + Gets the current number of players according to Steam. + + + + + This callback is fired in response to and . + + + + + Gets the result of the request. + + + + + Leaderboard ID. + + + + + How many entires there are for requested leaderboard. + + + + + Sort method to use for this leaderboard. + + + + + Display type for this leaderboard. + + + + + This callback is fired in response to . + + + + + Represents a single package in this response. + + + + + Gets the for this entry. + + + + + Gets the global rank for this entry. + + + + + Gets the score for this entry. + + + + + Gets the attached to this entry. + + + + + Extra game-defined information regarding how the user got that score. + + + + + Gets the result of the request. + + + + + How many entires there are for requested leaderboard. + + + + + Gets the list of leaderboard entries this response contains. + + + + + Retrieves the number of current players for a given app id. + Results are returned in a . + + The app id to request the number of players for. + The Job ID of the request. This can be used to find the appropriate . + + + + Asks the Steam back-end for a leaderboard by name for a given appid. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The AppID to request a leaderboard for. + Name of the leaderboard to request. + The Job ID of the request. This can be used to find the appropriate . + + + + Asks the Steam back-end for a leaderboard by name, and will create it if it's not yet. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The AppID to request a leaderboard for. + Name of the leaderboard to create. + Sort method to use for this leaderboard + Display type for this leaderboard. + The Job ID of the request. This can be used to find the appropriate . + + + + Asks the Steam back-end for a set of rows in the leaderboard. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The AppID to request leaderboard rows for. + ID of the leaderboard to view. + The Job ID of the request. This can be used to find the appropriate . + Range start or 0. + Range end or max leaderboard entries. + Type of request. + + + + Handles a client message. This should not be called directly. + + The instance containing the event data. + This handler handles all user log on/log off related actions and callbacks. @@ -6256,29 +4737,11 @@ Gets the country this account is connected from. - - - Gets the salt used for the password. - - - - - Gets the SHA-1 disgest of the password. - - Gets the count of SteamGuard authenticated computers. - - - Gets a value indicating whether this account is locked with IPT. - - - true if this account is locked with IPT; otherwise, false. - - Gets the account flags for this account. @@ -6593,7 +5056,7 @@ Gets or sets the target Job ID for the request. - This is provided in the for a . + This is provided in the for a . The Job ID. @@ -6714,6 +5177,431 @@ The packet message that contains the data. + + + This handler is used for requesting files published on the Steam Workshop. + + + + + This callback is received in response to calling . + + + + + Represents the details of a single published file. + + + + + Gets the file ID. + + + + + Gets the number of reports for this file. + + + + + Gets the score of this file, based on up and down votes. + + + + + Gets the total count of up votes. + + + + + Gets the total count of down votes. + + + + + Gets the result. + + + + + Gets the list of enumerated files. + + + + + Gets the count of total results. + + + + + This callback is received in response to calling . + + + + + Represents the details of a single published file. + + + + + Gets the file ID. + + + + + Gets the result. + + + + + Gets the list of enumerated files. + + + + + Gets the count of total results. + + + + + This callback is received in response to calling . + + + + + Represents the details of a single published file. + + + + + Gets the file ID. + + + + + Gets the time this file was subscribed to. + + + + + Gets the result. + + + + + Gets the list of enumerated files. + + + + + Gets the count of total results. + + + + + This callback is received in response to calling . + + + + + Represents the details of a single published file. + + + + + Gets the file ID. + + + + + Gets the timestamp of this file. + + + + + Gets the result. + + + + + Gets the list of enumerated files. + + + + + Gets the count of total results. + + + + + Represents the details of an enumeration request used for the local user's files. + + + + + Gets or sets the AppID of the workshop to enumerate. + + + The AppID. + + + + + Gets or sets the sort order. + This value is only used by . + + + The sort order. + + + + + Gets or sets the start index. + + + The start index. + + + + + Gets or sets the user action to filter by. + This value is only used by . + + + The user action. + + + + + Enumerates the list of published files for the current logged in user. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The specific details of the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Enumerates the list of subscribed files for the current logged in user. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The specific details of the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Enumerates the list of published files for the current logged in user based on user action. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The specific details of the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Represents the details of an enumeration request for all published files. + + + + + Gets or sets the AppID of the workshop to enumerate. + + + The AppID. + + + + + Gets or sets the type of the enumeration. + + + The type. + + + + + Gets or sets the start index. + + + The start index. + + + + + Gets or sets the days. + + + The days. + + + + + Gets or sets the number of results to return. + + + The number of results. + + + + + Gets the list of tags to enumerate. + + + + + Gets the list of user tags to enumerate. + + + + + Initializes a new instance of the class. + + + + + Enumerates the list of all published files on the Steam workshop. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The specific details of the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + Tracks a job with this manager. + + The asynchronous job to track. + + + + Passes a callback to a pending async job. + If the given callback completes the job, the job is removed from this manager. + + The JobID. + The callback. + + + + Extends the lifetime of a job. + + The job identifier. + + + + Marks a certain job as remotely failed. + + The job identifier. + + + + Cancels and clears all jobs being tracked. + + + + + Enables or disables periodic checks for job timeouts. + + Whether or not job timeout checks should be enabled. + + + + This is called periodically to cancel and clear out any jobs that have timed out (no response from Steam). + + + + + Retrieves a job from this manager, and optionally removes it from tracking. + + The JobID. + If set to true, this job is removed from tracking. + + + + + Thrown when Steam encounters a remote error with a pending . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message that describes the error. + + + + Initializes a new instance of the class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + This class is a utility for routing callbacks to function calls. + In order to bind callbacks to functions, an instance of this class must be created for the + instance that will be posting callbacks. + + + + + Initializes a new instance of the class. + + The instance to handle the callbacks of. + + + + Runs a single queued callback. + If no callback is queued, this method will instantly return. + + + + + Blocks the current thread to run a single queued callback. + If no callback is queued, the method will block for the given timeout. + + The length of time to block. + + + + Blocks the current thread to run all queued callbacks. + If no callback is queued, the method will block for the given timeout. + + The length of time to block. + + + + Blocks the current thread to run a single queued callback. + If no callback is queued, the method will block until one is posted. + + + + + Registers the provided to receive callbacks of type . + + The of the callbacks that should be subscribed to. + If this is , all callbacks of type will be recieved. + The function to invoke with the callback. + The type of callback to subscribe to. + An . Disposing of the return value will unsubscribe the . + + + + Registers the provided to receive callbacks of type . + + The function to invoke with the callback. + An . Disposing of the return value will unsubscribe the . + A callback message @@ -6905,33 +5793,504 @@ Called when the client is physically disconnected from Steam3. - + - This class implements the base requirements every message handler should inherit from. + Represents a single client that connects to a UFS server. - + - Gets the underlying for use in sending replies. + This callback is received after attempting to connect to the UFS server. - + - Gets or sets whether or not the related should imminently expect the server to close the connection. - If this is true when the connection is closed, the 's property - will be set to true. + Gets the result of the connection attempt. + + The result. + + + + This callback is received when the client is physically disconnected from the UFS server. - + - Initializes a new instance of the class. + If true, the disconnection was initiated by calling . + If false, the disconnection was the cause of something not user-controlled, such as a network failure or + a forcible disconnection by the remote server. - + - Handles a client message. This should not be called directly. + This callback is returned in response to an attempt to log on to the UFS server through . - The packet message that contains the data. + + + + Gets the result of the logon + + + + + This callback is returned in response to a request to upload a file through . + + + + + Gets the result of the upload request + + + + + Gets whether or not the file upload should proceed over HTTP + + + + + Gets whether or not the file upload should proceed over HTTPS + + + + + Gets whether or not the file should be encrypted during upload + + + + + Gets the SHA hash of the file to be uploaded + + + + + Gets the JobID on the UFS server. + + + + + This callback is returned when a file upload through is completed. + + + + + Gets the result of the file upload + + + + + Gets the SHA hash of the file that was uploaded + + + + + Gets the connected universe of this client. + This value will be if the client is not connected to Steam. + + The universe. + + + + Gets a value indicating whether this instance is connected to the remote UFS server. + + + true if this instance is connected; otherwise, false. + + + + + Gets or sets the connection timeout used when connecting to the UFS server. + The default value is 5 seconds. + + + The connection timeout. + + + + + Initializes a new instance of the class. + + + The parent instance that the UFS connection is for. + Callbacks will also be posted through this instance. + + + + + Connects this client to a UFS server. + This begins the process of connecting and encrypting the data channel between the client and the UFS server. + Results are returned asynchronously in a . + If the UFS server that this client attempts to connect to is down, a will be posted instead. + will not attempt to reconnect to Steam, you must handle this callback and call again, preferrably after a short delay. + In order to connect to the UFS server, the parent must be connected to the CM server. + + + The of the UFS server to connect to. + If null, will randomly select a UFS server from the 's list of servers. + + + + + Disconnects this client from the UFS server. + a will be posted upon disconnection. + + + + + Represents all the information required to upload a file to the UFS server. + + + + + Gets or sets the AppID this upload request is for. + + + The AppID. + + + + + Gets or sets the remote name of the file that is being uploaded. + + + The name of the file. + + + + + Gets or sets the physical file data for this upload. + + + The file data. + + + + + Gets or sets the JobID of this file upload. This value should be assigned from . + + + The job ID. + + + + + Attempt to logon to the UFS and authorize the client for the given AppIDs. + The should be connected before this point. + Results are returned in a . + + The AppIDs to authorize when connecting to the UFS. + The Job ID of the request. This can be used to find the appropriate . + + + + Begins a request to upload a file to the UFS. + The should be logged on before this point. + Results are returned in a . + + The details to use for uploading the file. + The Job ID of the request. This can be used to find the appropriate . + + + + Uploads the actual contents of a file to the UFS. + The should be logged on before this point, and the previous request to upload a file must have completed successfully. + Results are returned in a . + + The details to use for uploading the file. + The Job ID of the request. This can be used to find the appropriate . + + + + Sends the specified client message to the UFS server. + This method will automatically assign the correct of the message, as given by the parent . + + The client message to send. + + + + Helper class to load servers from the Steam Directory Web API. + + + + + Initializes 's server list with servers from the Steam Directory. + + Cell ID + + + + Load a list of servers from the Steam Directory. + + Cell ID + A with the Result set to an enumerable list of s. + + + + Load a list of servers from the Steam Directory. + + Cell ID + Cancellation Token + A with the Result set to an enumerable list of s. + + + + Utility class for interacting with the Steam Web API. + + + + + Represents a single interface that exists within the Web API. + This is a dynamic object that allows function calls to interfaces with minimal code. + + + + + Gets or sets the timeout value in milliseconds for any web requests made to the WebAPI. + + + The timeout value in milliseconds. The default value is 100,000 milliseconds (100 seconds). + + + + + Manually calls the specified Web API function with the provided details. + + The function name to call. + The version of the function to call. + A dictionary of string key value pairs representing arguments to be passed to the API. + if set to true this method will be called through the secure API. + A object representing the results of the Web API call. + The function name or request method provided were null. + An network error occurred when performing the request. + An error occured when parsing the response from the WebAPI. + + + + Manually calls the specified Web API function with the provided details. + + The function name to call. + The version of the function to call. + A dictionary of string key value pairs representing arguments to be passed to the API. + The http request method. Either "POST" or "GET". + if set to true this method will be called through the secure API. + A object representing the results of the Web API call. + The function name or request method provided were null. + An network error occurred when performing the request. + An error occured when parsing the response from the WebAPI. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Provides the implementation for operations that invoke a member. + Classes derived from the class can + override this method to specify dynamic behavior for operations such as calling a method. + This method should not be called directly, it is called through dynamic method calls. + + + Provides information about the dynamic operation. + The binder.Name property provides the name of the member on which the dynamic operation is performed. + For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the + class derived from the class, binder.Name returns "SampleMethod". + The binder.IgnoreCase property specifies whether the member name is case-sensitive. + + + The arguments that are passed to the object member during the invoke operation. For example, + for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the + class, the first argument to is equal to 100. + + The result of the member invocation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time + binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + Dynamic method is called with non-named argument. + All parameters must be passed as name arguments to API calls. + - or - + The dynamic method name was not in the correct format. + All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number. + + + The reserved named parameter 'secure' was not a boolean value. + This parameter is used when requests must go through the secure API. + + + The function version number specified was out of range. + + + + + Represents a single interface that exists within the Web API. + This is a dynamic object that allows function calls to interfaces with minimal code. + This version of the class makes use of TPL Tasks to provide an asynchronous API. + + + + + Manually calls the specified Web API function with the provided details. + + The function name to call. + The version of the function to call. + A dictionary of string key value pairs representing arguments to be passed to the API. + The http request method. Either "POST" or "GET". + if set to true this method will be called through the secure API. + A that contains a object representing the results of the Web API call. + The function name or request method provided were null. + An network error occurred when performing the request. + An error occured when parsing the response from the WebAPI. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Provides the implementation for operations that invoke a member. + Classes derived from the class can + override this method to specify dynamic behavior for operations such as calling a method. + This method should not be called directly, it is called through dynamic method calls. + + + Provides information about the dynamic operation. + The binder.Name property provides the name of the member on which the dynamic operation is performed. + For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the + class derived from the class, binder.Name returns "SampleMethod". + The binder.IgnoreCase property specifies whether the member name is case-sensitive. + + + The arguments that are passed to the object member during the invoke operation. For example, + for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the + class, the first argument to is equal to 100. + + The result of the member invocation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time + binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + Dynamic method is called with non-named argument. + All parameters must be passed as name arguments to API calls. + - or - + The dynamic method name was not in the correct format. + All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number. + + + The reserved named parameter 'secure' was not a boolean value. + This parameter is used when requests must go through the secure API. + + + The function version number specified was out of range. + + + + + Retreives a dynamic handler capable of interacting with the specified interface on the Web API. + + The interface to retrieve a handler for. + An optional API key to be used for authorized requests. + A dynamic object to interact with the Web API. + + + + Retreives a dynamic handler capable of interacting with the specified interface on the Web API. + + The interface to retrieve a handler for. + An optional API key to be used for authorized requests. + A dynamic object to interact with the Web API. + + + + Represents a Steam3 depot manifest. + + + + + Represents a single chunk within a file. + + + + + Gets or sets the SHA-1 hash chunk id. + + + + + Gets or sets the expected Adler32 checksum of this chunk. + + + + + Gets or sets the chunk offset. + + + + + Gets or sets the compressed length of this chunk. + + + + + Gets or sets the decompressed length of this chunk. + + + + + Initializes a new instance of the class. + + + + + Represents a single file within a manifest. + + + + + Gets the name of the file. + + + + + Gets the chunks that this file is composed of. + + + + + Gets the file flags + + + + + Gets the total size of this file. + + + + + Gets the hash of this file. + + + + + Gets the list of files within this manifest. + + + + + Gets a value indicating whether filenames within this depot are encrypted. + + + true if the filenames are encrypted; otherwise, false. + + + + + Attempts to decrypts file names with the given encryption key. + + The encryption key. + true if the file names were successfully decrypted; otherwise, false. @@ -7129,6 +6488,358 @@ A that represents this instance. + + + Represents a globally unique identifier within the Steam network. + Guaranteed to be unique across all racks and servers for a given Steam universe. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The GID value. + + + + Performs an implicit conversion from to . + + The gid. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The gid. + + The result of the conversion. + + + + + Gets or sets the sequential count for this GID. + + + The sequential count. + + + + + Gets or sets the start time of the server that generated this GID. + + + The start time. + + + + + Gets or sets the process ID of the server that generated this GID. + + + The process ID. + + + + + Gets or sets the box ID of the server that generated this GID. + + + The box ID. + + + + + Gets or sets the entire 64bit value of this GID. + + + The value. + + + + + 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. + + + + + 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. + + + + + Implements the operator ==. + + The left side GID. + The right side GID. + + The result of the operator. + + + + + Implements the operator !=. + + The left side GID. + The right side GID. + + The result of the operator. + + + + + 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. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Represents a single unique handle to a piece of User Generated Content. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The UGC ID. + + + + Performs an implicit conversion from to . + + The UGC handle. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The UGC ID. + + The result of the conversion. + + + + + Represents an identifier of a network task known as a job. + + + + + Represents an invalid JobID. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Job ID to initialize this instance with. + + + + Performs an implicit conversion from to . + + The Job ID. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The Job ID. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The asynchronous job. + + The result of the conversion. + + + + + The base class for awaitable versions of a . + Should not be used or constructed directly, but rather with . + + + + + Gets the for this job. + + + + + Gets or sets the period of time before this job will be considered timed out and will be canceled. By default this is 10 seconds. + + + + + Adds a callback to the async job's result set. + + The callback. + true if this result completes the set; otherwise, false. + + + + Sets this job as failed, either remotely or due to a message timeout. + + + If set to true this job is marked as failed because Steam informed us of a job failure; + otherwise, this job has failed due to a message timeout. + + + + + Marks this job as having received a heartbeat and extends the job's timeout. + + + + + Represents an awaitable version of a . + Can either be converted to a TPL with or can be awaited directly. + + The callback type that will be returned by this async job. + + + + Initializes a new instance of the class. + + The that this job will be associated with. + The Job ID value associated with this async job. + + + + Converts this instance into a TPL . + + + + + Gets an awaiter used to await this . + An awaiter instance. + This method is intended for compiler use rather than use directly in code. + + + + Adds a callback to the async job's result set. For an , this always completes the set. + + The callback. + Always true. + + + + Sets this job as failed, either remotely or due to a message timeout. + + + If set to true this job is marked as failed because Steam informed us of a job failure; + otherwise, this job has failed due to a message timeout. + + + + + Represents an awaitable version of a . + Can either be converted to a TPL with or can be awaited directly. + This type of async job can contain multiple callback results. + + The callback type that will be returned by this async job. + + + + The set of callback results for an . + + + + + Gets a value indicating whether this is complete and contains every result sent by Steam. + + + + + Gets a value indicating whether the parent received an incomplete result set and then encountered a remote failure. + + + + + Gets a read only collection of callback results for this async job. + + + + + Initializes a new instance of the class. + + The that this job will be associated with. + The Job ID value associated with this async job. + The condition that must be fulfilled for the result set to be considered complete. + + + + Converts this instance into a TPL . + + + + + Gets an awaiter used to await this . + An awaiter instance. + This method is intended for compiler use rather than use directly in code. + + + + Adds a callback to the async job's result set. + + The callback. + true if this result completes the set; otherwise, false. + + + + Sets this job as failed, either remotely or due to a message timeout. + + + If set to true this job is marked as failed because Steam informed us of a job failure; + otherwise, this job has failed due to a message timeout. + + Represents a recursive string key to arbitrary value container. @@ -7263,13 +6974,6 @@ This method will swallow any exceptions that occur when reading, use if you wish to handle exceptions. - - - Attempts to load the given filename as a binary . - - The path to the file to load. - a instance if the load was successful, or null on failure. - Attempts to load the given filename as a binary . @@ -7317,13 +7021,6 @@ The to save to. If set to true, saves this instance as binary. - - - Populate this instance from the given as a binary . - - The input to read from. - true if the read was successful; otherwise, false. - Populate this instance from the given as a binary . @@ -7336,505 +7033,146 @@ Represents the binary Steam3 manifest format. - + - Interface all debug log listeners must implement in order to register themselves. + Represents a backed MessageObject structure, which are often sent by the Steam servers. - + - Called when the DebugLog wishes to inform listeners of debug spew. - - The category of the message. - The message to log. - - - - Represents the root debug logging functionality. + Gets the inner object. - + - Gets or sets a value indicating whether debug logging is enabled. + Initializes a new instance of the class, using the provided KeyValues object. + + The KeyValue backing store for this message object. + + + + Initializes a new instance of the class with an empty inner KeyValues. + + + + + Populates this MessageObject instance from the data inside the given stream. + + The stream to load data from. + true on success; otherwise, false. + + + + Writes this MessageObject instance to the given stream. + + The stream to write to. + + + + The base class used for wrapping common ulong types, to introduce type safety and distinguish between common types. + + + + + Gets or sets the value. - true if enabled; otherwise, false. + The value. - + - Initializes the class. + Initializes a new instance of the class. - + - Adds a listener. + Initializes a new instance of the class. - The listener. + The value to initialize this handle to. - + - Adds an action listener. + Returns a hash code for this instance. - The listener action. - - - - Removes a listener. - - The listener. - - - - Removes a listener. - - The previously registered listener action. - - - - Clears all registered listeners from the . - - - - - Writes a line to the debug log, informing all listeners. - - The category of the message. - A composite format string. - An System.Object array containing zero or more objects to format. - - - - Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack. - This method is equivalent to System.Diagnostics.Debug.Assert, however, it is tailored to spew failed assertions into the SteamKit debug log. - - The conditional expression to evaluate. If the condition is true, the specified message is not sent and the message box is not displayed. - The category of the message. - The message to display if the assertion fails. - - - - Contains various utility functions for dealing with dates. - - - - - Converts a given unix timestamp to a DateTime - - A unix timestamp expressed as seconds since the unix epoch - DateTime representation - - - - Converts a given DateTime into a unix timestamp representing seconds since the unix epoch. - - DateTime to be expressed - 64-bit wide representation - - - - Contains various utility functions for handling EMsgs. - - - - - Strips off the protobuf message flag and returns an EMsg. - - The message number. - The underlying EMsg. - - - - Strips off the protobuf message flag and returns an EMsg. - - The message number. - The underlying EMsg. - - - - Strips off the protobuf message flag and returns an EMsg. - - The message number. - The underlying EMsg. - - - - Determines whether message is protobuf flagged. - - The message. - true if this message is protobuf flagged; otherwise, false. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - + - Determines whether message is protobuf flagged. + Determines whether the specified is equal to this instance. - The message. + The to compare with this instance. - true if this message is protobuf flagged; otherwise, false. + true if the specified is equal to this instance; otherwise, false. - + - Crafts an EMsg, flagging it if required. + Returns a that represents this instance. - The EMsg to flag. - if set to true, the message is protobuf flagged. - A crafted EMsg, flagged if requested. + + A that represents this instance. + - + - Crafts an EMsg, flagging it if required. + Indicates whether the current object is equal to another object of the same type. - The EMsg to flag. - if set to true, the message is protobuf flagged. - A crafted EMsg, flagged if requested. + An object to compare with this object. + + true if the current object is equal to the other parameter; otherwise, false. + - + - Connects to the specified end point. - - Task returning the end point. - Timeout in milliseconds - - - - Nets the loop. + Represents a handle to a published file on the Steam workshop. - + - Seconds to wait before sending packets. + Initializes a new instance of the class. + The file id. - + - Seconds to wait before considering the connection dead. + Performs an implicit conversion from to . + The published file. + + The result of the conversion. + - + - Maximum number of packets to resend when RESEND_DELAY is exceeded. + Performs an implicit conversion from to . + The file id. + + The result of the conversion. + - + - Maximum number of packets that we can be waiting on at a time. + Implements the operator ==. + The first published file. + The second published file. + + The result of the operator. + - + - Contains information about the state of the connection, used to filter out packets that are - unexpected or not valid given the state of the connection. - - - - - The next outgoing sequence number to be used. - - - - - The highest sequence number of an outbound packet that has been sent. - - - - - The sequence number of the highest packet acknowledged by the server. - - - - - The sequence number we plan on acknowledging receiving with the next Ack. All packets below or equal - to inSeq *must* have been received, but not necessarily handled. - - - - - The highest sequence number we've acknowledged receiving. - - - - - The highest sequence number we've processed. - - - - - Connects to the specified CM server. - - Task returning the CM server. - Timeout in milliseconds - - - - Disconnects this instance, blocking until the queue of messages is empty or the connection - is otherwise terminated. - - - - - Serializes and sends the provided message to the server in as many packets as is necessary. - - The ClientMsg - - - - Sends the data sequenced as a single message, splitting it into multiple parts if necessary. - - The data to send. - - - - Sends the packet as a sequenced, reliable packet. - - The packet. - - - - Sends the packets as one sequenced, reliable net message. - - The packets that make up the single net message - - - - Sends a packet immediately. - - The packet. - - - - Sends a datagram Ack, used when an Ack needs to be sent but there is no data response to piggy-back on. - - - - - Sends or resends sequenced messages, if necessary. Also responsible for throttling - the rate at which they are sent. - - - - - Returns the number of message parts in the next message. - - Non-zero number of message parts if a message is ready to be handled, 0 otherwise - - - - Dispatches up to one message to the rest of SteamKit - - True if a message was dispatched, false otherwise - - - - Processes incoming packets, maintains connection consistency, and oversees outgoing packets. - - - - - Receives the packet, performs all sanity checks and then passes it along as necessary. - - The packet. - - - - Receives the challenge and responds with a Connect request - - The packet. - - - - Receives the notification of an accepted connection and sets the connection id that will be used for the - connection's duration. - - The packet. - - - - Receives typical data packets before dispatching them for consumption by the rest of SteamKit - - The packet. - - - - Sets the network encryption filter for this connection - - filter implementing - - - - Represents data that has been received over the network. - - - - - Occurs when a net message is recieved over the network. - - - - - Raises the event. - - The instance containing the event data. - - - - The of the current connection. - This is non-null between and , inclusive. - - - - - Occurs when the physical connection is established. - - - - - Occurs when the physical connection is broken. - - - - - Connects to the specified end point. - - Task returning the end point. - Timeout in milliseconds - - - - Disconnects this instance. - - - - - Sends the specified client net message. - - The client net message. - - - - Gets the local IP. - - The local IP. - - - - Sets the network encryption filter for this connection - - filter implementing - - - - Contains the public keys that Steam uses for each of the - types. - - - - - Gets the public key for the given universe. - - The public key. - The universe. - - - - Handles encrypting and decrypting using the RSA public key encryption - algorithm. - - - - - Initializes a new instance of the class. - - The public key to encrypt with. - - - - Encrypt the specified input. - - The encrypted input. - The input to encrypt. - - - - Disposes of this class. - - - - - Provides Crypto functions used in Steam protocols - - - - - Performs an SHA1 hash of an input byte array - - - - - Encrypts using AES/CBC/PKCS7 an input byte array with a given key and IV - - - - - Decrypts an input byte array using AES/CBC/PKCS7 with a given key and IV - - - - - Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None - - - - - Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None - - - - - Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None - - - - - Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None - - - - - Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None - - - - - Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None - - - - - Verifies and performs a symmetricdecrypt on the input using the given password as a key - - - - - Decrypts using AES/ECB/PKCS7 - - - - - Performs CRC32 on an input byte array using the CrcStandard.Crc32Bit parameters - - - - - Performs an Adler32 on the given input - - - - - Generate an array of random bytes given the input length + Implements the operator !=. + The first published file. + The second published file. + + The result of the operator. + @@ -8200,6 +7538,327 @@ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + Handles encrypting and decrypting using the RSA public key encryption + algorithm. + + + + + Initializes a new instance of the class. + + The public key to encrypt with. + + + + Encrypt the specified input. + + The encrypted input. + The input to encrypt. + + + + Disposes of this class. + + + + + Provides Crypto functions used in Steam protocols + + + + + Performs an SHA1 hash of an input byte array + + + + + Encrypts using AES/CBC/PKCS7 an input byte array with a given key and IV + + + + + Decrypts an input byte array using AES/CBC/PKCS7 with a given key and IV + + + + + Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None + + + + + Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None + + + + + Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None + + + + + Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None + + + + + Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None + + + + + Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None + + + + + Verifies and performs a symmetricdecrypt on the input using the given password as a key + + + + + Decrypts using AES/ECB/PKCS7 + + + + + Performs CRC32 on an input byte array using the CrcStandard.Crc32Bit parameters + + + + + Performs an Adler32 on the given input + + + + + Generate an array of random bytes given the input length + + + + + Interface all debug log listeners must implement in order to register themselves. + + + + + Called when the DebugLog wishes to inform listeners of debug spew. + + The category of the message. + The message to log. + + + + Represents the root debug logging functionality. + + + + + Gets or sets a value indicating whether debug logging is enabled. + + + true if enabled; otherwise, false. + + + + + Initializes the class. + + + + + Adds a listener. + + The listener. + + + + Adds an action listener. + + The listener action. + + + + Removes a listener. + + The listener. + + + + Removes a listener. + + The previously registered listener action. + + + + Clears all registered listeners from the . + + + + + Writes a line to the debug log, informing all listeners. + + The category of the message. + A composite format string. + An System.Object array containing zero or more objects to format. + + + + Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack. + This method is equivalent to System.Diagnostics.Debug.Assert, however, it is tailored to spew failed assertions into the SteamKit debug log. + + The conditional expression to evaluate. If the condition is true, the specified message is not sent and the message box is not displayed. + The category of the message. + The message to display if the assertion fails. + + + + This is a debug utility, do not use it to implement your business logic. + + This interface is used for logging network messages sent to and received from the Steam server that the client is connected to. + + + + + Called when a packet is received from the Steam server. + + Network message type of this packet message. + Raw packet data that was received. + + + + Called when a packet is about to be sent to the Steam server. + + Network message type of this packet message. + Raw packet data that will be sent. + + + + Dump any network messages sent to and received from the Steam server that the client is connected to. + These messages are dumped to file, and can be analyzed further with NetHookAnalyzer, a hex editor, or your own purpose-built tools. + + Be careful with this, sensitive data may be written to the disk (such as your Steam password). + + + + + Will create a folder in path "%assembly%/nethook/%currenttime%/" + + + + + Log to your own folder. + + Path to folder. + + + + Called when a packet is received from the Steam server. + + Network message type of this packet message. + Raw packet data that was received. + + + + Called when a packet is about to be sent to the Steam server. + + Network message type of this packet message. + Raw packet data that will be sent. + + + + Contains the public keys that Steam uses for each of the + types. + + + + + Gets the public key for the given universe. + + The public key. + The universe. + + + + Contains various utility functions for dealing with dates. + + + + + Converts a given unix timestamp to a DateTime + + A unix timestamp expressed as seconds since the unix epoch + DateTime representation + + + + Converts a given DateTime into a unix timestamp representing seconds since the unix epoch. + + DateTime to be expressed + 64-bit wide representation + + + + Contains various utility functions for handling EMsgs. + + + + + Strips off the protobuf message flag and returns an EMsg. + + The message number. + The underlying EMsg. + + + + Strips off the protobuf message flag and returns an EMsg. + + The message number. + The underlying EMsg. + + + + Strips off the protobuf message flag and returns an EMsg. + + The message number. + The underlying EMsg. + + + + Determines whether message is protobuf flagged. + + The message. + + true if this message is protobuf flagged; otherwise, false. + + + + + Determines whether message is protobuf flagged. + + The message. + + true if this message is protobuf flagged; otherwise, false. + + + + + Crafts an EMsg, flagging it if required. + + The EMsg to flag. + if set to true, the message is protobuf flagged. + A crafted EMsg, flagged if requested. + + + + Crafts an EMsg, flagging it if required. + + The EMsg to flag. + if set to true, the message is protobuf flagged. + A crafted EMsg, flagged if requested. + The exception that is thrown when an error in input stream occurs during decoding. diff --git a/packages/SteamKit2.2.0.0-Alpha3/lib/netstandard1.3/SteamKit2.dll b/packages/SteamKit2.2.0.0-Alpha3/lib/netstandard1.3/SteamKit2.dll new file mode 100644 index 000000000..b7e049b7c Binary files /dev/null and b/packages/SteamKit2.2.0.0-Alpha3/lib/netstandard1.3/SteamKit2.dll differ diff --git a/packages/SteamKit2.2.0.0-Alpha3/lib/netstandard1.3/SteamKit2.xml b/packages/SteamKit2.2.0.0-Alpha3/lib/netstandard1.3/SteamKit2.xml new file mode 100644 index 000000000..a9332f9fe --- /dev/null +++ b/packages/SteamKit2.2.0.0-Alpha3/lib/netstandard1.3/SteamKit2.xml @@ -0,0 +1,7964 @@ + + + + SteamKit2 + + + + + Represents a protobuf backed client message. Only contains the header information. + + + + + Gets a value indicating whether this client message is protobuf backed. + Client messages of this type are always protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this client message. + + + The network message type. + + + + + Gets or sets the session id for this client message. + + + The session id. + + + + + Gets or sets the for this client message. + + + The . + + + + + Gets or sets the target job id for this client message. + + + The target job id. + + + + + Gets or sets the source job id for this client message. + + + The source job id. + + + + + Shorthand accessor for the protobuf header. + + + + + Initializes a new instance of the class. + This is a recieve constructor. + + The packet message to build this client message from. + + + + Serializes this client message instance to a byte array. + + This class is for reading Protobuf messages only. If you want to create a protobuf message, use . + + + + Initializes this client message by deserializing the specified data. + + The data representing a client message. + + + + Represents a protobuf backed client message. + + The body type of this message. + + + + Gets the body structure of this message. + + + + + Initializes a new instance of the class. + This is a client send constructor. + + The network message type this client message represents. + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This a reply constructor. + + The network message type this client message represents. + The message that this instance is a reply for. + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This is a recieve constructor. + + The packet message to build this client message from. + + + + Serializes this client message instance to a byte array. + + + Data representing a client message. + + + + + Initializes this client message by deserializing the specified data. + + The data representing a client message. + + + + Represents a struct backed client message. + + The body type of this message. + + + + Gets a value indicating whether this client message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this client message. + + + The network message type. + + + + + Gets or sets the session id for this client message. + + + The session id. + + + + + Gets or sets the for this client message. + + + The . + + + + + Gets or sets the target job id for this client message. + + + The target job id. + + + + + Gets or sets the source job id for this client message. + + + The source job id. + + + + + Gets the body structure of this message. + + + + + Initializes a new instance of the class. + This is a client send constructor. + + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This a reply constructor. + + The message that this instance is a reply for. + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This is a recieve constructor. + + The packet message to build this client message from. + + + + Serializes this client message instance to a byte array. + + + Data representing a client message. + + + + + Initializes this client message by deserializing the specified data. + + The data representing a client message. + + + + Represents a struct backed message without session or client info. + + The body type of this message. + + + + Gets a value indicating whether this client message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this client message. + + + The network message type. + + + + + Gets or sets the session id for this client message. + This type of client message does not support session ids + + + The session id. + + + + + Gets or sets the for this client message. + This type of client message goes not support SteamIDs. + + + The . + + + + + Gets or sets the target job id for this client message. + + + The target job id. + + + + + Gets or sets the source job id for this client message. + + + The source job id. + + + + + Gets the structure body of the message. + + + + + Initializes a new instance of the class. + This is a client send constructor. + + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This a reply constructor. + + The message that this instance is a reply for. + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This is a recieve constructor. + + The packet message to build this client message from. + + + + Serializes this client message instance to a byte array. + + + Data representing a client message. + + + + + Initializes this client message by deserializing the specified data. + + The data representing a client message. + + + + Represents a protobuf backed game coordinator message. + + The body type of this message. + + + + Gets a value indicating whether this gc message is protobuf backed. + Client messages of this type are always protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this gc message. + + + The network message type. + + + + + Gets or sets the target job id for this gc message. + + + The target job id. + + + + + Gets or sets the source job id for this gc message. + + + The source job id. + + + + + Shorthand accessor for the protobuf header. + + + + + Gets the body structure of this message. + + + + + Initializes a new instance of the class. + This is a client send constructor. + + The network message type this gc message represents. + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This a reply constructor. + + The network message type this gc message represents. + The message that this instance is a reply for. + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This is a recieve constructor. + + The packet message to build this gc message from. + + + + Serializes this gc message instance to a byte array. + + + Data representing a gc message. + + + + + Initializes this gc message by deserializing the specified data. + + The data representing a gc message. + + + + Represents a struct backed game coordinator message. + + The body type of this message. + + + + Gets a value indicating whether this gc message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this gc message. + + + The network message type. + + + + + Gets or sets the target job id for this gc message. + + + The target job id. + + + + + Gets or sets the source job id for this gc message. + + + The source job id. + + + + + Gets the body structure of this message. + + + + + Initializes a new instance of the class. + This is a client send constructor. + + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This a reply constructor. + + The message that this instance is a reply for. + The number of bytes to initialize the payload capacity to. + + + + Initializes a new instance of the class. + This is a recieve constructor. + + The packet message to build this gc message from. + + + + Serializes this gc message instance to a byte array. + + + Data representing a client message. + + + + + Initializes this gc message by deserializing the specified data. + + The data representing a client message. + + + + Represents a unified interface into client messages. + + + + + Gets a value indicating whether this client message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this client message. + + + The message type. + + + + + Gets or sets the target job id for this client message. + + + The target job id. + + + + + Gets or sets the source job id for this client message. + + + The source job id. + + + + + Serializes this client message instance to a byte array. + + Data representing a client message. + + + + Initializes this client message by deserializing the specified data. + + The data representing a client message. + + + + This is the abstract base class for all available game coordinator messages. + It's used to maintain packet payloads and provide a header for all gc messages. + + The header type for this gc message. + + + + Gets a value indicating whether this gc message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this gc message. + + + The network message type. + + + + + Gets or sets the target job id for this gc message. + + + The target job id. + + + + + Gets or sets the source job id for this gc message. + + + The source job id. + + + + + Gets the header for this message type. + + + + + Initializes a new instance of the class. + + The number of bytes to initialize the payload capacity to. + + + + Serializes this gc message instance to a byte array. + + + Data representing a gc message. + + + + + Initializes this gc message by deserializing the specified data. + + The data representing a gc message. + + + + Represents a simple unified interface into game coordinator messages recieved from the network. + This is contrasted with in that this interface is packet body agnostic + and only allows simple access into the header. This interface is also immutable, and the underlying + data cannot be modified. + + + + + Gets a value indicating whether this packet message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this packet message. + + + The message type. + + + + + Gets the target job id for this packet message. + + + The target job id. + + + + + Gets the source job id for this packet message. + + + The source job id. + + + + + Gets the underlying data that represents this client message. + + The data. + + + + Represents a protobuf backed packet message. + + + + + Gets a value indicating whether this packet message is protobuf backed. + This type of message is always protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this packet message. + + + The message type. + + + + + Gets the target job id for this packet message. + + + The target job id. + + + + + Gets the source job id for this packet message. + + + The source job id. + + + + + Initializes a new instance of the class. + + The network message type for this packet message. + The data. + + + + Gets the underlying data that represents this client message. + + The data. + + + + Represents a packet message with extended header information. + + + + + Gets a value indicating whether this packet message is protobuf backed. + This type of message is never protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this packet message. + + + The message type. + + + + + Gets the target job id for this packet message. + + + The target job id. + + + + + Gets the source job id for this packet message. + + + The source job id. + + + + + Initializes a new instance of the class. + + The network message type for this packet message. + The data. + + + + Gets the underlying data that represents this packet message. + + The data. + + + + This base client handles the underlying connection to a CM server. This class should not be use directly, but through the class. + + + + + Bootstrap list of CM servers. + + + + + Returns the the local IP of this client. + + The local IP. + + + + Gets the connected universe of this client. + This value will be if the client is not connected to Steam. + + The universe. + + + + Gets a value indicating whether this instance is connected to the remote CM server. + + + true if this instance is connected; otherwise, false. + + + + + Gets the session token assigned to this client from the AM. + + + + + Gets the Steam recommended Cell ID of this client. This value is assigned after a logon attempt has succeeded. + This value will be null if the client is logged off of Steam. + + + + + Gets the session ID of this client. This value is assigned after a logon attempt has succeeded. + This value will be null if the client is logged off of Steam. + + The session ID. + + + + Gets the SteamID of this client. This value is assigned after a logon attempt has succeeded. + This value will be null if the client is logged off of Steam. + + The SteamID. + + + + Gets or sets the connection timeout used when connecting to the Steam server. + The default value is 5 seconds. + + + The connection timeout. + + + + + Gets or sets the network listening interface. Use this for debugging only. + For your convenience, you can use class. + + + + + Initializes a new instance of the class with a specific connection type. + + The connection type to use. + + The provided is not supported. + Only Tcp and Udp are available. + + + + + Connects this client to a Steam3 server. + This begins the process of connecting and encrypting the data channel between the client and the server. + Results are returned asynchronously in a . + If the server that SteamKit attempts to connect to is down, a + will be posted instead. + SteamKit will not attempt to reconnect to Steam, you must handle this callback and call Connect again + preferrably after a short delay. + + + The of the CM server to connect to. + If null, SteamKit will randomly select a CM server from its internal list. + + + + + Disconnects this client. + + + + + Sends the specified client message to the server. + This method automatically assigns the correct SessionID and SteamID of the message. + + The client message to send. + + + + Returns the list of servers matching the given type + + Server type requested + List of server endpoints + + + + Called when a client message is received from the network. + + The packet message. + + + + Called when the client is physically disconnected from Steam3. + + + + + This is the base class for the utility class. + This is for internal use only, and shouldn't be used directly. + + + + + Represents a unified interface into client messages. + + + + + Gets a value indicating whether this client message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this client message. + + + The message type. + + + + + Gets or sets the session id for this client message. + + + The session id. + + + + + Gets or sets the for this client message. + + + The . + + + + + Gets or sets the target job id for this client message. + + + The target job id. + + + + + Gets or sets the source job id for this client message. + + + The source job id. + + + + + Serializes this client message instance to a byte array. + + Data representing a client message. + + + + Initializes this client message by deserializing the specified data. + + The data representing a client message. + + + + This class provides a payload backing to client messages. + + + + + Returns a which is the backing stream for client message payload data. + + + + + Initializes a new instance of the class. + + The number of bytes to initialize the payload capacity to. + + + + Seeks within the payload to the specified offset. + + The offset in the payload to seek to. + The origin to seek from. + The new position within the stream, calculated by combining the initial reference point and the offset. + + + + Writes a single unsigned byte to the message payload. + + The unsigned byte. + + + + Writes a single signed byte to the message payload. + + The signed byte. + + + + Writes the specified byte array to the message payload. + + The byte array. + + + + Writes a single 16bit short to the message payload. + + The short. + + + + Writes a single unsigned 16bit short to the message payload. + + The unsigned short. + + + + Writes a single 32bit integer to the message payload. + + The integer. + + + + Writes a single unsigned 32bit integer to the message payload. + + The unsigned integer. + + + + Writes a single 64bit long to the message payload. + + The long. + + + + Writes a single unsigned 64bit long to the message payload. + + The unsigned long. + + + + Writes a single 32bit float to the message payload. + + The float. + + + + Writes a single 64bit double to the message payload. + + The double. + + + + Writes the specified string to the message payload using default encoding. + This function does not write a terminating null character. + + The string to write. + + + + Writes the specified string to the message payload using the specified encoding. + This function does not write a terminating null character. + + The string to write. + The encoding to use. + + + + Writes the secified string and a null terminator to the message payload using default encoding. + + The string to write. + + + + Writes the specified string and a null terminator to the message payload using the specified encoding. + + The string to write. + The encoding to use. + + + + Reads a single signed byte from the message payload. + + The signed byte. + + + + Reads a single signed byte from the message payload. + + The signed byte. + + + + Reads a single unsigned byte from the message payload. + + The unsigned byte. + + + + Reads a single unsigned byte from the message payload. + + The unsigned byte. + + + + Reads a number of bytes from the message payload. + + The number of bytes to read. + The data. + + + + Reads a single 16bit short from the message payload. + + The short. + + + + Reads a single 16bit short from the message payload. + + The short. + + + + Reads a single unsigned 16bit short from the message payload. + + The unsigned short. + + + + Reads a single unsigned 16bit short from the message payload. + + The unsigned short. + + + + Reads a single 32bit integer from the message payload. + + The integer. + + + + Reads a single 32bit integer from the message payload. + + The integer. + + + + Reads a single unsigned 32bit integer from the message payload. + + The unsigned integer. + + + + Reads a single unsigned 32bit integer from the message payload. + + The unsigned integer. + + + + Reads a single 64bit long from the message payload. + + The long. + + + + Reads a single 64bit long from the message payload. + + The long. + + + + Reads a single unsigned 64bit long from the message payload. + + The unsigned long. + + + + Reads a single unsigned 64bit long from the message payload. + + The unsigned long. + + + + Reads a single 32bit float from the message payload. + + The float. + + + + Reads a single 32bit float from the message payload. + + The float. + + + + Reads a single 64bit double from the message payload. + + The double. + + + + Reads a null terminated string from the message payload with the default encoding. + + The string. + + + + Reads a null terminated string from the message payload with the specified encoding. + + The encoding to use. + /// The string. + + + + This is the abstract base class for all available client messages. + It's used to maintain packet payloads and provide a header for all client messages. + + The header type for this client message. + + + + Gets a value indicating whether this client message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this client message. + + + The network message type. + + + + + Gets or sets the session id for this client message. + + + The session id. + + + + + Gets or sets the for this client message. + + + The . + + + + + Gets or sets the target job id for this client message. + + + The target job id. + + + + + Gets or sets the source job id for this client message. + + + The source job id. + + + + + Gets the header for this message type. + + + + + Initializes a new instance of the class. + + The number of bytes to initialize the payload capacity to. + + + + Serializes this client message instance to a byte array. + + + Data representing a client message. + + + + + Initializes this client message by deserializing the specified data. + + The data representing a client message. + + + + Represents a simple unified interface into client messages recieved from the network. + This is contrasted with in that this interface is packet body agnostic + and only allows simple access into the header. This interface is also immutable, and the underlying + data cannot be modified. + + + + + Gets a value indicating whether this packet message is protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this packet message. + + + The message type. + + + + + Gets the target job id for this packet message. + + + The target job id. + + + + + Gets the source job id for this packet message. + + + The source job id. + + + + + Gets the underlying data that represents this client message. + + The data. + + + + Represents a protobuf backed packet message. + + + + + Gets a value indicating whether this packet message is protobuf backed. + This type of message is always protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this packet message. + + + The message type. + + + + + Gets the target job id for this packet message. + + + The target job id. + + + + + Gets the source job id for this packet message. + + + The source job id. + + + + + Initializes a new instance of the class. + + The network message type for this packet message. + The data. + + + + Gets the underlying data that represents this client message. + + The data. + + + + Represents a packet message with extended header information. + + + + + Gets a value indicating whether this packet message is protobuf backed. + This type of message is never protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this packet message. + + + The message type. + + + + + Gets the target job id for this packet message. + + + The target job id. + + + + + Gets the source job id for this packet message. + + + The source job id. + + + + + Initializes a new instance of the class. + + The network message type for this packet message. + The data. + + + + Gets the underlying data that represents this client message. + + The data. + + + + Represents a packet message with basic header information. + + + + + Gets a value indicating whether this packet message is protobuf backed. + This type of message is never protobuf backed. + + + true if this instance is protobuf backed; otherwise, false. + + + + + Gets the network message type of this packet message. + + + The message type. + + + + + Gets the target job id for this packet message. + + + The target job id. + + + + + Gets the source job id for this packet message. + + + The source job id. + + + + + Initializes a new instance of the class. + + The network message type for this packet message. + The data. + + + + Gets the underlying data that represents this client message. + + The data. + + + + Represents data that has been received over the network. + + + + + Occurs when a net message is recieved over the network. + + + + + Raises the event. + + The instance containing the event data. + + + + The of the current connection. + This is non-null between and , inclusive. + + + + + Occurs when the physical connection is established. + + + + + Occurs when the physical connection is broken. + + + + + Connects to the specified end point. + + Task returning the end point. + Timeout in milliseconds + + + + Disconnects this instance. + + + + + Sends the specified client net message. + + The client net message. + + + + Gets the local IP. + + The local IP. + + + + Sets the network encryption filter for this connection + + filter implementing + + + + Connects to the specified end point. + + Task returning the end point. + Timeout in milliseconds + + + + Nets the loop. + + + + + Seconds to wait before sending packets. + + + + + Seconds to wait before considering the connection dead. + + + + + Maximum number of packets to resend when RESEND_DELAY is exceeded. + + + + + Maximum number of packets that we can be waiting on at a time. + + + + + Contains information about the state of the connection, used to filter out packets that are + unexpected or not valid given the state of the connection. + + + + + The next outgoing sequence number to be used. + + + + + The highest sequence number of an outbound packet that has been sent. + + + + + The sequence number of the highest packet acknowledged by the server. + + + + + The sequence number we plan on acknowledging receiving with the next Ack. All packets below or equal + to inSeq *must* have been received, but not necessarily handled. + + + + + The highest sequence number we've acknowledged receiving. + + + + + The highest sequence number we've processed. + + + + + Connects to the specified CM server. + + Task returning the CM server. + Timeout in milliseconds + + + + Disconnects this instance, blocking until the queue of messages is empty or the connection + is otherwise terminated. + + + + + Serializes and sends the provided message to the server in as many packets as is necessary. + + The ClientMsg + + + + Sends the data sequenced as a single message, splitting it into multiple parts if necessary. + + The data to send. + + + + Sends the packet as a sequenced, reliable packet. + + The packet. + + + + Sends the packets as one sequenced, reliable net message. + + The packets that make up the single net message + + + + Sends a packet immediately. + + The packet. + + + + Sends a datagram Ack, used when an Ack needs to be sent but there is no data response to piggy-back on. + + + + + Sends or resends sequenced messages, if necessary. Also responsible for throttling + the rate at which they are sent. + + + + + Returns the number of message parts in the next message. + + Non-zero number of message parts if a message is ready to be handled, 0 otherwise + + + + Dispatches up to one message to the rest of SteamKit + + True if a message was dispatched, false otherwise + + + + Processes incoming packets, maintains connection consistency, and oversees outgoing packets. + + + + + Receives the packet, performs all sanity checks and then passes it along as necessary. + + The packet. + + + + Receives the challenge and responds with a Connect request + + The packet. + + + + Receives the notification of an accepted connection and sets the connection id that will be used for the + connection's duration. + + The packet. + + + + Receives typical data packets before dispatching them for consumption by the rest of SteamKit + + The packet. + + + + Sets the network encryption filter for this connection + + filter implementing + + + + Gets a value indicating whether this instance is valid. + + + true if this instance is valid; otherwise, false. + + + + + Initializes a new instance of the class with + information from the memory stream. + + Header is populated from the MemoryStream + + The stream containing the packet and it's payload data. + + + + Initializes a new instance of the class, with + no payload. + + Header must be populated manually. + + The type. + + + + Initializes a new instance of the class, of the + specified type containing the specified payload. + + Header must be populated manually. + + The type. + The payload. + + + + Initializes a new instance of the class, of the + specified type containing the first 'length' bytes of specified payload. + + Header must be populated manually. + + The type. + The payload. + The length. + + + + Sets the payload + + The payload to copy. + + + + Sets the payload. + + The payload. + The length. + + + + Serializes the UdpPacket. + + The serialized packet. + + + + The CDNClient class is used for downloading game content from the Steam servers. + + + + + Represents a single Steam3 'Steampipe' content server. + + + + + Gets the hostname of the server. + + + + + Gets the port of the server. + + + + + Gets the type of the server. + + + + + Gets the CellID this server belongs to. + + + + + Gets the load value associated with this server. + + + + + Gets the weighted load. + + + + + Gets the number of entries this server is worth. + + + + + Performs an implicit conversion from to . + + A IPEndPoint to convert into a . + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + A DnsEndPoint to convert into a . + + The result of the conversion. + + + + + Returns a that represents this server. + + + A that represents this server. + + + + + Represents a single downloaded chunk from a file in a depot. + + + + + Gets the depot manifest chunk information associated with this chunk. + + + + + Gets a value indicating whether this chunk has been processed. A chunk is processed when the data has been decrypted and decompressed. + + + true if this chunk has been processed; otherwise, false. + + + + + Gets the underlying data for this chunk. + + + + + Processes the specified depot key by decrypting the data with the given depot encryption key, and then by decompressing the data. + If the chunk has already been processed, this function does nothing. + + The depot decryption key. + Thrown if the processed data does not match the expected checksum given in it's chunk information. + + + + Default timeout to use when making requests + + + + + Initializes a new instance of the class. + + + The this instance will be associated with. + The SteamClient instance must be connected and logged onto Steam. + + The optional appticket for the depot that will be downloaded. + This must be present when connected to steam non-anonymously. + + + + + Fetches a list of content servers. + + + The optional Steam3 content server to fetch the list from. + If this parameter is not specified, a random CS server will be selected. + + + The optional CellID used to specify which regional servers should be returned in the list. + If this parameter is not specified, Steam's GeoIP suggested CellID will be used instead. + + The maximum amount of servers to request. + A list of servers. + + No Steam CS servers available, or the suggested CellID is unavailable. + Check that the associated with this instance is logged onto Steam. + + + + + Connects and initializes a session to the specified content server. + + The content server to connect to. + csServer was null. + + + + Authenticate a CDNClient to a depot in the connected session + + The id of the depot being accessed. + + The optional depot decryption key for the depot that will be downloaded. + This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks. + + CDN auth token for CDN content server endpoints. + + + + Downloads the depot manifest specified by the given manifest ID, and optionally decrypts the manifest's filenames if the depot decryption key has been provided. + + The id of the depot being accessed. + The unique identifier of the manifest to be downloaded. + A instance that contains information about the files present within a depot. + + + + Downloads the depot manifest specified by the given manifest ID, and optionally decrypts the manifest's filenames if the depot decryption key has been provided. + + The id of the depot being accessed. + The unique identifier of the manifest to be downloaded. + CDN hostname. + CDN auth token for CDN content server endpoints. + + The depot decryption key for the depot that will be downloaded. + This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks. + + A instance that contains information about the files present within a depot. + + + + Downloads the specified depot chunk, and optionally processes the chunk and verifies the checksum if the depot decryption key has been provided. + + + This function will also validate the length of the downloaded chunk with the value of , + if it has been assigned a value. + + The id of the depot being accessed. + + A instance that represents the chunk to download. + This value should come from a manifest downloaded with . + + A instance that contains the data for the given chunk. + chunk's was null. + + + + Downloads the specified depot chunk, and optionally processes the chunk and verifies the checksum if the depot decryption key has been provided. + + + This function will also validate the length of the downloaded chunk with the value of , + if it has been assigned a value. + + The id of the depot being accessed. + + A instance that represents the chunk to download. + This value should come from a manifest downloaded with . + + A instance that contains the data for the given chunk. + CDN hostname. + CDN auth token for CDN content server endpoints. + + The depot decryption key for the depot that will be downloaded. + This is used for decrypting filenames (if needed) in depot manifests, and processing depot chunks. + + chunk's was null. + + + + Disposes of this object. + + + + + A server list provider that uses a file to persist the server list using protobuf + + + + + Initialize a new instance of FileStorageServerListProvider + + + + + Read the stored list of servers from the file + + List of servers if persisted, otherwise an empty list + + + + Writes the supplied list of servers to persistent storage + + List of server endpoints + Awaitable task for write completion + + + + An interface for persisting the server list for connection discovery + + + + + Ask a provider to fetch any servers that it has available + + A list of IPEndPoints representing servers + + + + Update the persistent list of endpoints + + List of endpoints + + + + A server list provider that returns an empty list, for consumers that populate the server list themselves + + + + + No-op implementation that returns an empty server list + + Empty server list + + + + No-op implementation that does not persist server list + + Server list + Completed task + + + + Currently marked quality of a server. All servers start off as Undetermined. + + + + + Known good server. + + + + + Known bad server. + + + + + Smart list of CM servers. + + + + + Initialize SmartCMServerList with a given server list provider + + The ServerListProvider to persist servers + Specifies if we can query SteamDirectory to discover more servers + + + + Initialize SmartCMServerList with the default server list provider + + + + + The server list provider chosen to provide a persistent list of servers to connect to + + + + + The preferred cell id for retrieving the list of servers from the Steam directory + + + + + Determines how long a server's bad connection state is remembered for. + + + + + Resets the scores of all servers which has a last bad connection more than ago. + + + + + Replace the list with a new list of servers provided to us by the Steam servers. + + The s to use for this . + + + + Explicitly resets the known state of all servers. + + + + + Perform the actual score lookup of the server list and return the candidate + + IPEndPoint candidate + + + + Get the next server in the list. + + An , or null if the list is empty. + + + + Get the next server in the list. + + An , or null if the list is empty. + + + + Gets the s of all servers in the server list. + + An array contains the s of the servers in the list + + + + This class implements the base requirements every message handler should inherit from. + + + + + Gets the underlying for use in sending replies. + + + + + Gets or sets whether or not the related should imminently expect the server to close the connection. + If this is true when the connection is closed, the 's property + will be set to true. + + + + + Initializes a new instance of the class. + + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for interacting with apps and packages on the Steam network. + + + + + This callback is fired during logon, informing the client of it's available licenses. + + + + + Represents a granted license (steam3 subscription) for one or more games. + + + + + Gets the package ID used to identify the license. + + The package ID. + + + + Gets the last change number for this license. + + + + + Gets the time the license was created. + + The time created. + + + + Gets the next process time for the license. + + The next process time. + + + + Gets the minute limit of the license. + + The minute limit. + + + + Gets the minutes used of the license. + + The minutes used. + + + + Gets the payment method used when the license was created. + + The payment method. + + + + Gets the license flags. + + The license flags. + + + + Gets the two letter country code where the license was purchased. + + The purchase country code. + + + + Gets the type of the license. + + The type of the license. + + + + Gets the territory code of the license. + + The territory code. + + + + Gets the result of the message. + + The result. + + + + Gets the license list. + + The license list. + + + + This callback is received in response to calling , informing the client of newly granted packages, if any. + + + + + Gets the result of the message. + + The result. + + + + Gets the list of granted apps. + + List of granted apps. + + + + Gets the list of granted packages. + + List of granted packages. + + + + This callback is received in response to calling . + + + + + Gets the result of requesting the ticket. + + + + + Gets the AppID this ticket is for. + + + + + Gets the ticket data. + + + + + This callback is recieved in response to calling . + + + + + Gets the result of requesting this encryption key. + + + + + Gets the DepotID this encryption key is for. + + + + + Gets the encryption key for this depot. + + + + + This callback is fired when the client receives a list of game connect tokens. + + + + + Gets a count of tokens to keep. + + + + + Gets the list of tokens. + + + + + This callback is fired when the client receives it's VAC banned status. + + + + + Gets a list of VAC banned apps the client is banned from. + + + + + This callback is fired when the PICS returns access tokens for a list of appids and packageids + + + + + Gets a list of denied package tokens + + + + + Gets a list of denied app tokens + + + + + Dictionary containing requested package tokens + + + + + Dictionary containing requested package tokens + + + + + This callback is fired when the PICS returns the changes since the last change number + + + + + Holds the change data for a single app or package + + + + + App or package ID this change data represents + + + + + Current change number of this app + + + + + Signals if an access token is needed for this request + + + + + Supplied change number for the request + + + + + Gets the current change number + + + + + If this update requires a full update of the information + + + + + Dictionary containing requested package tokens + + + + + Dictionary containing requested package tokens + + + + + This callback is fired when the PICS returns the product information requested + + + + + Represents the information for a single app or package + + + + + Gets the ID of the app or package + + + + + Gets the current change number for the app or package + + + + + Gets if an access token was required for the request + + + + + Gets the hash of the content + + + + + Gets the KeyValue info + + + + + For an app request, returns if only the public information was requested + + + + + Whether or not to use HTTP to load the KeyValues data. + + + + + For an app metadata-only request, returns the Uri for HTTP appinfo requests. + + + + + Gets if this response contains only product metadata + + + + + Gets if there are more product information responses pending + + + + + Gets a list of unknown package ids + + + + + Gets a list of unknown app ids + + + + + Dictionary containing requested app info + + + + + Dictionary containing requested package info + + + + + This callback is received when the list of guest passes is updated. + + + + + Result of the operation + + + + + Number of guest passes to be given out + + + + + Number of guest passes to be redeemed + + + + + Guest pass list + + + + + This callback is received when a guest pass has been sent + + + + + Result of the operation + + + + + This callback is received when a CDN auth token is received + + + + + Result of the operation + + + + + CDN auth token + + + + + Token expiration date + + + + + This callback is received when a beta password check has been completed + + + + + Result of the operation + + + + + Map of beta names to their encryption keys + + + + + Represents a PICS request used for + + + + + Gets or sets the ID of the app or package being requested + + The ID + + + + Gets or sets the access token associated with the request + + The access token + + + + Requests only public app info + + The flag specifying if only public data is requested + + + + Instantiate an empty PICS product info request + + + + + Instantiate a PICS product info request for a given app or package id + + App or package ID + + + + Instantiate a PICS product info request for a given app or package id and an access token + + App or package ID + PICS access token + Get only public info + + + + Requests an app ownership ticket for the specified AppID. + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + The appid to request the ownership ticket of. + The Job ID of the request. This can be used to find the appropriate . + + + + Request the depot decryption key for a specified DepotID. + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + The DepotID to request a decryption key for. + The AppID to request the decryption key for. + The Job ID of the request. This can be used to find the appropriate . + + + + Request PICS access tokens for an app or package. + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + App id to request access token for. + Package id to request access token for. + The Job ID of the request. This can be used to find the appropriate . + + + + Request PICS access tokens for a list of app ids and package ids + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + List of app ids to request access tokens for. + List of package ids to request access tokens for. + The Job ID of the request. This can be used to find the appropriate . + + + + Request changes for apps and packages since a given change number + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + Last change number seen. + Whether to send app changes. + Whether to send package changes. + The Job ID of the request. This can be used to find the appropriate . + + + + Request product information for an app or package + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + App id requested. + Package id requested. + Whether to send only public information. + Whether to send only meta data. + The Job ID of the request. This can be used to find the appropriate . + + + + Request product information for a list of apps or packages + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + List of app ids requested. + List of package ids requested. + Whether to send only public information. + Whether to send only meta data. + The Job ID of the request. This can be used to find the appropriate . + + + + Request product information for a list of apps or packages + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + List of requests for apps. + List of requests for packages. + Whether to send only meta data. + The Job ID of the request. This can be used to find the appropriate . + + + + Request product information for an app or package + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + App id requested. + Depot id requested. + CDN host name being requested. + The Job ID of the request. This can be used to find the appropriate . + + + + Request a free license for given appid, can be used for free on demand apps + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + The app to request a free license for. + The Job ID of the request. This can be used to find the appropriate . + + + + Request a free license for given appids, can be used for free on demand apps + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + The apps to request a free license for. + The Job ID of the request. This can be used to find the appropriate . + + + + Submit a beta password for a given app to retrieve any betas and their encryption keys. + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + App id requested. + Password to check. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for interacting with remote storage and user generated content. + + + + + This callback is recieved in response to calling . + + + + + Gets the result of the request. + + + + + Gets the App ID the UGC is for. + + + + + Gets the SteamID of the UGC's creator. + + + + + Gets the URL that the content is located at. + + + + + Gets the name of the file. + + + + + Gets the size of the file. + + + + + This callback is recieved in response to calling . + + + + + Gets the result of the request. + + + + + Gets the App ID the file is for. + + + + + Gets the file name request. + + + + + Gets the SHA hash of the file. + + + + + Gets the timestamp of the file. + + + + + Gets the size of the file. + + + + + Gets if the file was explicity deleted by the user. + + + + + This callback is recieved in response to calling . + + + + + Gets the result of the request. + + + + + Gets the resulting UGC handle. + + + + + Requests details for a specific item of user generated content from the Steam servers. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The unique user generated content id. + The Job ID of the request. This can be used to find the appropriate . + + + + Requests details for a specific file in the user's Cloud storage. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The app id of the game. + The path to the file being requested. + The Job ID of the request. This can be used to find the appropriate . + + + + Commit a Cloud file at the given path to make its UGC handle publicly visible. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The app id of the game. + The path to the file being requested. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler handles all interaction with other users on the Steam3 network. + + + + + Represents the details of a user which is a member of a chatroom. + + + + + Initializes a new instance of the class. + + The KeyValue backing store for this member info. + + + + Initializes a new instance of the class. + + + + + Gets the clan permission details of this chat member. + + + + + Gets the permissions this user has with the chatroom. + + + + + Gets the of this user. + + + + + This callback is fired in response to someone changing their friend details over the network. + + + + + Gets the status flags. This shows what has changed. + + The status flags. + + + + Gets the friend ID. + + The friend ID. + + + + Gets the state. + + The state. + + + + Gets the state flags. + + The state flags. + + + + Gets the game app ID. + + The game app ID. + + + + Gets the game ID. + + The game ID. + + + + Gets the name of the game. + + The name of the game. + + + + Gets the game server IP. + + The game server IP. + + + + Gets the game server port. + + The game server port. + + + + Gets the query port. + + The query port. + + + + Gets the source steam ID. + + The source steam ID. + + + + Gets the game data blob. + + The game data blob. + + + + Gets the name. + + The name. + + + + Gets the avatar hash. + + The avatar hash. + + + + Gets the last log off. + + The last log off. + + + + Gets the last log on. + + The last log on. + + + + Gets the clan rank. + + The clan rank. + + + + Gets the clan tag. + + The clan tag. + + + + Gets the online session instances. + + The online session instances. + + + + Gets the published session ID. + + The published session ID. + + + + This callback is posted when a clan's state has been changed. + + + + + Represents an event or announcement that was posted by a clan. + + + + + Gets the globally unique ID for this specific event. + + + + + Gets the event time. + + + + + Gets the headline of the event. + + + + + Gets the associated with this event, if any. + + + + + Gets a value indicating whether this event was just posted. + + + true if the event was just posted; otherwise, false. + + + + + Gets the of the clan that posted this state update. + + + + + Gets the status flags. + + + + + Gets the account flags. + + + + + Gets the name of the clan. + + + The name of the clan. + + + + + Gets the SHA-1 avatar hash. + + + + + Gets the total number of members in this clan. + + + + + Gets the number of members in this clan that are currently online. + + + + + Gets the number of members in this clan that are currently chatting. + + + + + Gets the number of members in this clan that are currently in-game. + + + + + Gets any events associated with this clan state update. + + + + + Gets any announcements associated with this clan state update. + + + + + This callback is fired when the client receives a list of friends. + + + + + Represents a single friend entry in a client's friendlist. + + + + + Gets the SteamID of the friend. + + The SteamID. + + + + Gets the relationship to this friend. + + The relationship. + + + + Gets a value indicating whether this is an incremental update. + + true if incremental; otherwise, false. + + + + Gets the friend list. + + The friend list. + + + + This callback is fired in response to receiving a message from a friend. + + + + + Gets or sets the sender. + + The sender. + + + + Gets the chat entry type. + + The chat entry type. + + + + Gets a value indicating whether this message is from a limited account. + + true if this message is from a limited account; otherwise, false. + + + + Gets the message. + + The message. + + + + This callback is fired in response to receiving an echo message from another instance. + + + + + Gets or sets the recipient + + The recipient. + + + + Gets the chat entry type. + + The chat entry type. + + + + Gets a value indicating whether this message is from a limited account. + + true if this message is from a limited account; otherwise, false. + + + + Gets the message. + + The message. + + + + This callback is fired in response to receiving historical messages. + See also and + . + + + + + Gets the result of the request. + + + + + Gets the SteamID of the user with whom these messages were exchanged. + + + + + The messages exchanged with the user. + Offline messages are marked by having set to true + + + + + Represents a single Message sent to or received from a friend + + + + + The SteamID of the User that wrote the message + + + + + Whether or not the message has been read, i.e., is an offline message. + + + + + The actual message + + + + + The time (in UTC) when the message was sent + + + + + This callback is fired in response to adding a user to your friends list. + + + + + Gets the result of the request. + + The result. + + + + Gets the SteamID of the friend that was added. + + The SteamID. + + + + Gets the persona name of the friend. + + The persona name. + + + + This callback is fired in response to attempting to join a chat. + + + + + Gets SteamID of the chat room. + + + + + Gets the friend ID. + + + + + Gets the type of the chat room. + + + The type of the chat room. + + + + + Gets the SteamID of the chat room owner. + + + + + Gets clan SteamID that owns this chat room. + + + + + Gets the chat flags. + + + + + Gets the chat enter response. + + + + + Gets the number of users currently in this chat room. + + + + + Gets the name of the chat room. + + + + + Gets a list of instances for each of the members of this chat room. + + + + + This callback is fired when a chat room message arrives. + + + + + Gets the SteamID of the chatter. + + + + + Gets the SteamID of the chat room. + + + + + Gets chat entry type. + + + + + Gets the message. + + + + + This callback is fired in response to chat member info being recieved. + + + + + Represents state change information. + + + + + Gets the SteamID of the chatter that was acted on. + + + + + Gets the state change for the acted on SteamID. + + + + + Gets the SteamID of the chatter that acted on . + + + + + Gets the member information for a user that has joined the chat room. + This field is only populated when is . + + + + + Gets SteamId of the chat room. + + + + + Gets the info type. + + + + + Gets the state change info for member info updates. + + + + + This callback is fired in response to chat room info being recieved. + + + + + Gets SteamId of the chat room. + + + + + Gets the info type. + + + + + This callback is fired when a chat action has completed. + + + + + Gets the SteamID of the chat room the action was performed in. + + + + + Gets the SteamID of the chat member the action was performed on. + + + + + Gets the chat action that was performed. + + + + + Gets the result of the chat action. + + + + + This callback is fired when a chat invite is recieved. + + + + + Gets the SteamID of the user who was invited to the chat. + + + + + Gets the chat room SteamID. + + + + + Gets the SteamID of the user who performed the invitation. + + + + + Gets the chat room type. + + + + + Gets the SteamID of the chat friend. + + + + + Gets the name of the chat room. + + + + + Gets the GameID associated with this chat room, if it's a game lobby. + + + + + This callback is fired in response to an attempt at ignoring a friend. + + + + + Gets the result of ignoring a friend. + + + + + This callback is fired in response to requesting profile info for a user. + + + + + Gets the result of requesting profile info. + + + + + Gets the this info belongs to. + + + + + Gets the time this account was created. + + + + + Gets the real name. + + + + + Gets the name of the city. + + + + + Gets the name of the state. + + + + + Gets the name of the country. + + + + + Gets the headline. + + + + + Gets the summary. + + + + + This callback is fired in response to setting this client's persona name or state + with or . + + + + + Gets the result of changing this client's persona information. + + + + + Gets the name of this client according to Steam. + + + + + Gets the local user's persona name. + + The name. + + + + Sets the local user's persona name and broadcasts it over the network. + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + The name. + The Job ID of the request. This can be used to find the appropriate . + + + + Gets the local user's persona state. + + The persona state. + + + + Sets the local user's persona state and broadcasts it over the network. + Results are returned in a callback. + The returned can also be awaited to retrieve the callback result. + + The state. + The Job ID of the request. This can be used to find the appropriate . + + + + Gets the friend count of the local user. + + The number of friends. + + + + Gets a friend by index. + + The index. + A valid steamid of a friend if the index is in range; otherwise a steamid representing 0. + + + + Gets the persona name of a friend. + + The steam id. + The name. + + + + Gets the persona state of a friend. + + The steam id. + The persona state. + + + + Gets the relationship of a friend. + + The steam id. + The relationship of the friend to the local user. + + + + Gets the game name of a friend playing a game. + + The steam id. + The game name of a friend playing a game, or null if they haven't been cached yet. + + + + Gets the GameID of a friend playing a game. + + The steam id. + The gameid of a friend playing a game, or 0 if they haven't been cached yet. + + + + Gets a SHA-1 hash representing the friend's avatar. + + The SteamID of the friend to get the avatar of. + A byte array representing a SHA-1 hash of the friend's avatar. + + + + Gets the count of clans the local user is a member of. + + The number of clans this user is a member of. + + + + Gets a clan SteamID by index. + + The index. + A valid steamid of a clan if the index is in range; otherwise a steamid representing 0. + + + + Gets the name of a clan. + + The clan SteamID. + The name. + + + + Gets the relationship of a clan. + + The clan steamid. + The relationship of the clan to the local user. + + + + Gets a SHA-1 hash representing the clan's avatar. + + The SteamID of the clan to get the avatar of. + A byte array representing a SHA-1 hash of the clan's avatar, or null if the clan could not be found. + + + + Sends a chat message to a friend. + + The target to send to. + The type of message to send. + The message to send. + + + + Sends a friend request to a user. + + The account name or email of the user. + + + + Sends a friend request to a user. + + The SteamID of the friend to add. + + + + Removes a friend from your friends list. + + The SteamID of the friend to remove. + + + + Attempts to join a chat room. + + The SteamID of the chat room. + + + + Attempts to leave a chat room. + + The SteamID of the chat room. + + + + Sends a message to a chat room. + + The SteamID of the chat room. + The message type. + The message. + + + + Invites a user to a chat room. + The results of this action will be available through the callback. + + The SteamID of the user to invite. + The SteamID of the chat room to invite the user to. + + + + Kicks the specified chat member from the given chat room. + + The SteamID of chat room to kick the member from. + The SteamID of the member to kick from the chat. + + + + Bans the specified chat member from the given chat room. + + The SteamID of chat room to ban the member from. + The SteamID of the member to ban from the chat. + + + + Unbans the specified SteamID from the given chat room. + + The SteamID of chat room to unban the member from. + The SteamID of the member to unban from the chat. + + + + Requests persona state for a list of specified SteamID. + Results are returned in . + + A list of SteamIDs to request the info of. + The requested info flags. + + + + Requests persona state for a specified SteamID. + Results are returned in . + + A SteamID to request the info of. + The requested info flags. + + + + Ignores or unignores a friend on Steam. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The SteamID of the friend to ignore or unignore. + if set to true, the friend will be ignored; otherwise, they will be unignored. + The Job ID of the request. This can be used to find the appropriate . + + + + Requests profile information for the given . + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The SteamID of the friend to request the details of. + The Job ID of the request. This can be used to find the appropriate . + + + + Requests the last few chat messages with a friend. + Results are returned in a + + SteamID of the friend + + + + Requests all offline messages. + This also marks them as read server side. + Results are returned in a . + + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler handles all game coordinator messaging. + + + + + This callback is fired when a game coordinator message is recieved from the network. + + + + + Gets the game coordinator message type. + + + + + Gets the AppID of the game coordinator the message is from. + + + + + Gets a value indicating whether this message is protobuf'd. + + + true if this instance is protobuf'd; otherwise, false. + + + + + Gets the actual message. + + + + + Sends a game coordinator message for a specific appid. + + The GC message to send. + The app id of the game coordinator to send to. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for interacting with the Steam network as a game server. + + + + + This callback is fired when the game server receives a status reply. + + + + + Gets a value indicating whether this game server is VAC secure. + + + true if this server is VAC secure; otherwise, false. + + + + + This callback is fired when ticket authentication has completed. + + + + + Gets the SteamID the ticket auth completed for. + + + + + Gets the GameID the ticket was for. + + + + + Gets the authentication state. + + + + + Gets the auth session response. + + + + + Gets the ticket CRC. + + + + + Gets the ticket sequence. + + + + + Represents the details required to log into Steam3 as a game server. + + + + + Gets or sets the authentication token used to log in as a game server. + + + + + Gets or sets the AppID this gameserver will serve. + + + + + Represents the details of the game server's current status. + + + + + Gets or sets the AppID this game server is serving. + + + + + Gets or sets the server's basic state as flags. + + + + + Gets or sets the directory the game data is in. + + + + + Gets or sets the IP address the game server listens on. + + + + + Gets or sets the port the game server listens on. + + + + + Gets or sets the port the game server responds to queries on. + + + + + Gets or sets the current version of the game server. + + + + + Logs onto the Steam network as a persistent game server. + The client should already have been connected at this point. + Results are return in a . + + The details to use for logging on. + No logon details were provided. + Username or password are not set within . + + + + Logs the client into the Steam3 network as an anonymous game server. + The client should already have been connected at this point. + Results are returned in a . + + The AppID served by this game server, or 0 for the default. + + + + Informs the Steam servers that this client wishes to log off from the network. + The Steam server will disconnect the client, and a will be posted. + + + + + Sends the server's status to the Steam network. + Results are returned in a callback. + + A object containing the server's status. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for requesting server list details from Steam. + + + + + This callback is received in response to calling . + + + + + Represents a single server. + + + + + Gets the IP endpoint of the server. + + + + + Gets the number of Steam authenticated players on this server. + + + + + Gets the list of servers. + + + + + Details used when performing a server list query. + + + + + Gets or sets the AppID used when querying servers. + + + + + Gets or sets the filter used for querying the master server. + Check https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol for details on how the filter is structured. + + + + + Gets or sets the region that servers will be returned from. + + + + + Gets or sets the IP address that will be GeoIP located. + This is done to return servers closer to this location. + + + + + Gets or sets the maximum number of servers to return. + + + + + Requests a list of servers from the Steam game master server. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The details for the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for initializing Steam trades with other clients. + + + + + This callback is fired when this client receives a trade proposal. + + + + + Gets the result. + + + + + Gets the screenshot ID of the newly added screenshot. + + + + + Width of a screenshot thumnail + + + + + Represents the details required to add a screenshot + + + + + Gets or sets the Steam game ID this screenshot belongs to + + The game ID. + + + + Gets or sets the UFS image filepath. + + The UFS image filepath. + + + + Gets or sets the UFS thumbnail filepath. + + The UFS thumbnail filepath. + + + + Gets or sets the screenshot caption + + The screenshot caption. + + + + Gets or sets the screenshot privacy + + The screenshot privacy. + + + + Gets or sets the screenshot width + + The screenshot width. + + + + Gets or sets the screenshot height + + The screenshot height. + + + + Gets or sets the creation time + + The creation time. + + + + Gets or sets whether or not the screenshot contains spoilers + + Whether or not the screenshot contains spoilers. + + + + Initializes a new instance of the class. + + + + + Adds a screenshot to the user's screenshot library. The screenshot image and thumbnail must already exist on the UFS. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The details of the screenshot. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for initializing Steam trades with other clients. + + + + + This callback is fired when this client receives a trade proposal. + + + + + Gets the Trade ID of his proposal, used for replying. + + + + + Gets the SteamID of the client that sent the proposal. + + + + + This callback is fired when this client receives the response from a trade proposal. + + + + + Gets the Trade ID that this result is for. + + + + + Gets the response of the trade proposal. + + + + + Gets the SteamID of the client that responded to the proposal. + + + + + Gets the number of days Steam Guard is required to have been active on this account. + + + + + Gets the number of days a new device cannot trade for. + + + + + Gets the default number of days one cannot trade for after a password reset. + + + + + Gets the number of days one cannot trade for after a password reset. + + + + + This callback is fired when a trading session has started. + + + + + Gets the SteamID of the client that this the trading session has started with. + + + + + Proposes a trade to another client. + + The client to trade. + + + + Responds to a trade proposal. + + The trade id of the received proposal. + if set to true, the trade will be accepted. + + + + Cancels an already sent trade proposal. + + The user. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for interacting with Steamworks unified messaging + + + + + This callback is returned in response to a service method sent through . + + + + + Gets the result of the message. + + + + + Gets the raw binary response. + + + + + Gets the name of the Service. + + + + + Gets the name of the RPC method. + + + + + Gets the full name of the service method. + + + + + Deserializes the response into a protobuf object. + + Protobuf type of the response message. + The response to the message sent through . + + + + This callback represents a service notification recieved though . + + + + + Gets the name of the Service. + + + + + Gets the name of the RPC method. + + + + + Gets the full name of the service method. + + + + + Gets the protobuf notification body. + + + + + This wrapper is used for expression-based RPC calls using Steam Unified Messaging. + + + + + Sends a message. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The type of the protobuf object which is the response to the RPC call. + RPC call expression, e.g. x => x.SomeMethodCall(message); + Whether this message is a notification or not. + The JobID of the request. This can be used to find the appropriate . + + + + Sends a message. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The type of a protobuf object. + Name of the RPC endpoint. Takes the format ServiceName.RpcName + The message to send. + Whether this message is a notification or not. + The JobID of the request. This can be used to find the appropriate . + + + + Creates a wrapper for expression-based unified messaging. + + The type of a service interface. + The wrapper. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler handles Steam user statistic related actions. + + + + + This callback is fired in response to . + + + + + Gets the result of the request. + + + + + Gets the current number of players according to Steam. + + + + + This callback is fired in response to and . + + + + + Gets the result of the request. + + + + + Leaderboard ID. + + + + + How many entires there are for requested leaderboard. + + + + + Sort method to use for this leaderboard. + + + + + Display type for this leaderboard. + + + + + This callback is fired in response to . + + + + + Represents a single package in this response. + + + + + Gets the for this entry. + + + + + Gets the global rank for this entry. + + + + + Gets the score for this entry. + + + + + Gets the attached to this entry. + + + + + Extra game-defined information regarding how the user got that score. + + + + + Gets the result of the request. + + + + + How many entires there are for requested leaderboard. + + + + + Gets the list of leaderboard entries this response contains. + + + + + Retrieves the number of current players for a given app id. + Results are returned in a . + + The app id to request the number of players for. + The Job ID of the request. This can be used to find the appropriate . + + + + Asks the Steam back-end for a leaderboard by name for a given appid. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The AppID to request a leaderboard for. + Name of the leaderboard to request. + The Job ID of the request. This can be used to find the appropriate . + + + + Asks the Steam back-end for a leaderboard by name, and will create it if it's not yet. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The AppID to request a leaderboard for. + Name of the leaderboard to create. + Sort method to use for this leaderboard + Display type for this leaderboard. + The Job ID of the request. This can be used to find the appropriate . + + + + Asks the Steam back-end for a set of rows in the leaderboard. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The AppID to request leaderboard rows for. + ID of the leaderboard to view. + The Job ID of the request. This can be used to find the appropriate . + Range start or 0. + Range end or max leaderboard entries. + Type of request. + + + + Handles a client message. This should not be called directly. + + The instance containing the event data. + + + + This handler handles all user log on/log off related actions and callbacks. + + + + + This callback is returned in response to an attempt to log on to the Steam3 network through . + + + + + Gets the result of the logon. + + + + + Gets the extended result of the logon. + + + + + Gets the out of game secs per heartbeat value. + This is used internally by SteamKit to initialize heartbeating. + + + + + Gets the in game secs per heartbeat value. + This is used internally by SteamKit to initialize heartbeating. + + + + + Gets or sets the public IP of the client + + + + + Gets the Steam3 server time. + + + + + Gets the account flags assigned by the server. + + + + + Gets the client steam ID. + + + + + Gets the email domain. + + + + + Gets the Steam2 CellID. + + + + + Gets the Steam2 CellID ping threshold. + + + + + Gets the Steam2 ticket. + This is used for authenticated content downloads in Steam2. + This field will only be set when has been set to true. + + + + + Gets a value indicating whether the client should use PICS. + + + + + Gets the WebAPI authentication user nonce. + + + + + Gets the IP country code. + + + + + Gets the vanity URL. + + + + + Gets the threshold for login failures before Steam wants the client to migrate to a new CM. + + + + + Gets the threshold for disconnects before Steam wants the client to migrate to a new CM. + + + + + This callback is returned when the client is told to log off by the server. + + + + + Gets the result of the log off. + + The result. + + + + This callback is returned some time after logging onto the network. + + + + + Gets the login key. + + The login key. + + + + Gets the unique ID. + + The unique ID. + + + + This callback is fired when the client recieves it's unique Steam3 session token. This token is used for authenticated content downloading in Steam2. + + + + + Gets the Steam3 session token used for authenticating to various other services. + + + + + This callback is received when account information is recieved from the network. + This generally happens after logon. + + + + + Gets the last recorded persona name used by this account. + + + + + Gets the country this account is connected from. + + + + + Gets the count of SteamGuard authenticated computers. + + + + + Gets the account flags for this account. + + + + + Gets the facebook ID of this account if it is linked with facebook. + + + + + Gets the facebook name if this account is linked with facebook. + + + + + This callback is received when wallet info is recieved from the network. + + + + + Gets a value indicating whether this instance has wallet data. + + + true if this instance has wallet data; otherwise, false. + + + + + Gets the currency code for this wallet. + + + + + Gets the balance of the wallet, in cents. + + + + + This callback is received when the backend wants the client to update it's local machine authentication data. + + + + + Represents various one-time-password details. + + + + + Gets the OTP type. + + + + + Gets the OTP identifier. + + + + + Gets the OTP shared secret. + + + + + Gets the OTP time drift. + + + + + Implicitly converts into . + + The details to convert. + + + + + Gets the sentry file data that should be written. + + + + + Gets the number of bytes to write. + + + + + Gets the offset to write to. + + + + + Gets the name of the sentry file to write. + + + + + Gets the one-time-password details. + + + + + This callback is received when requesting a new WebAPI authentication user nonce. + + + + + Gets the result of the request. + + + + + Gets the authentication nonce. + + + + + This callback is fired when the client receives a marketing message update. + + + + + Represents a single marketing message. + + + + + Gets the unique identifier for this marketing message. + + + + + Gets the URL for this marketing message. + + + + + Gets the marketing message flags. + + + + + Gets the time of this marketing message update. + + + + + Gets the messages. + + + + + Represents the details required to log into Steam3 as a user. + + + + + Gets or sets the username. + + The username. + + + + Gets or sets the password. + + The password. + + + + Gets or sets the CellID. + + The CellID. + + + + Gets or sets the LoginID. This number is used for identifying logon session. + The purpose of this field is to allow multiple sessions to the same steam account from the same machine. + This is because Steam Network doesn't allow more than one session with the same LoginID to access given account at the same time from the same public IP. + If you want to establish more than one active session to given account, you must make sure that every session (to that account) from the same public IP has a unique LoginID. + By default LoginID is automatically generated based on machine's primary bind address, which is the same for all sessions. + Null value will cause this property to be automatically generated based on default behaviour. + If in doubt, set this property to null. + + The LoginID. + + + + Gets or sets the Steam Guard auth code used to login. This is the code sent to the user's email. + + The auth code. + + + + Gets or sets the 2-factor auth code used to login. This is the code that can be received from the authenticator apps. + + The two factor auth code. + + + + Gets or sets the login key used to login. This is a key that has been recieved in a previous Steam sesson by a . + + The login key. + + + + Gets or sets the 'Should Remember Password' flag. This is used in combination with the login key and for password-less login. + + The 'Should Remember Password' flag. + + + + Gets or sets the sentry file hash for this logon attempt, or null if no sentry file is available. + + The sentry file hash. + + + + Gets or sets the account instance. 1 for the PC instance or 2 for the Console (PS3) instance. + + The account instance. + + + + + + Gets or sets the account ID used for connecting clients when using the Console instance. + + + The account ID. + + + + + + Gets or sets a value indicating whether to request the Steam2 ticket. + This is an optional request only needed for Steam2 content downloads. + + + true if the Steam2 ticket should be requested; otherwise, false. + + + + + Gets or sets the client operating system type. + + The client operating system type. + + + + Gets or sets the client language. + + The client language. + + + + Initializes a new instance of the class. + + + + + Represents the details required to log into Steam3 as an anonymous user. + + + + + Gets or sets the CellID. + + The CellID. + + + + Gets or sets the client operating system type. + + The client operating system type. + + + + Gets or sets the client language. + + The client language. + + + + Initializes a new instance of the class. + + + + + Represents details required to complete a machine auth request. + + + + + The One-Time-Password details for this response. + + + + + Gets or sets the one-time-password type. + + + + + Gets or sets the one-time-password identifier. + + + + + Gets or sets the one-time-password value. + + + + + Gets or sets the target Job ID for the request. + This is provided in the for a . + + The Job ID. + + + + Gets or sets the result of updating the machine auth. + + The result. + + + + Gets or sets the number of bytes written for the sentry file. + + The number of bytes written. + + + + Gets or sets the offset within the sentry file that was written. + + The offset. + + + + Gets or sets the filename of the sentry file that was written. + + The name of the sentry file. + + + + Gets or sets the size of the sentry file. + + / The size of the sentry file. + + + + Gets or sets the last error that occurred while writing the sentry file, or 0 if no error occurred. + + The last error. + + + + Gets or sets the SHA-1 hash of the sentry file. + + The sentry file hash. + + + + Gets or sets the one-time-password details. + + The one time password details. + + + + Initializes a new instance of the class. + + + + + Gets the SteamID of this client. This value is assigned after a logon attempt has succeeded. + + The SteamID. + + + + Logs the client into the Steam3 network. + The client should already have been connected at this point. + Results are returned in a . + + The details to use for logging on. + No logon details were provided. + Username or password are not set within . + + + + Logs the client into the Steam3 network as an anonymous user. + The client should already have been connected at this point. + Results are returned in a . + + + + + Logs the client into the Steam3 network as an anonymous user. + The client should already have been connected at this point. + Results are returned in a . + + The details to use for logging on. + + + + Informs the Steam servers that this client wishes to log off from the network. + The Steam server will disconnect the client, and a will be posted. + + + + + Sends a machine auth response. + This should normally be used in response to a . + + The details pertaining to the response. + + + + Requests a new WebAPI authentication user nonce. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The Job ID of the request. This can be used to find the appropriate . + + + + Accepts the new Login Key provided by a . + + The callback containing the new Login Key. + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + This handler is used for requesting files published on the Steam Workshop. + + + + + This callback is received in response to calling . + + + + + Represents the details of a single published file. + + + + + Gets the file ID. + + + + + Gets the number of reports for this file. + + + + + Gets the score of this file, based on up and down votes. + + + + + Gets the total count of up votes. + + + + + Gets the total count of down votes. + + + + + Gets the result. + + + + + Gets the list of enumerated files. + + + + + Gets the count of total results. + + + + + This callback is received in response to calling . + + + + + Represents the details of a single published file. + + + + + Gets the file ID. + + + + + Gets the result. + + + + + Gets the list of enumerated files. + + + + + Gets the count of total results. + + + + + This callback is received in response to calling . + + + + + Represents the details of a single published file. + + + + + Gets the file ID. + + + + + Gets the time this file was subscribed to. + + + + + Gets the result. + + + + + Gets the list of enumerated files. + + + + + Gets the count of total results. + + + + + This callback is received in response to calling . + + + + + Represents the details of a single published file. + + + + + Gets the file ID. + + + + + Gets the timestamp of this file. + + + + + Gets the result. + + + + + Gets the list of enumerated files. + + + + + Gets the count of total results. + + + + + Represents the details of an enumeration request used for the local user's files. + + + + + Gets or sets the AppID of the workshop to enumerate. + + + The AppID. + + + + + Gets or sets the sort order. + This value is only used by . + + + The sort order. + + + + + Gets or sets the start index. + + + The start index. + + + + + Gets or sets the user action to filter by. + This value is only used by . + + + The user action. + + + + + Enumerates the list of published files for the current logged in user. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The specific details of the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Enumerates the list of subscribed files for the current logged in user. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The specific details of the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Enumerates the list of published files for the current logged in user based on user action. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The specific details of the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Represents the details of an enumeration request for all published files. + + + + + Gets or sets the AppID of the workshop to enumerate. + + + The AppID. + + + + + Gets or sets the type of the enumeration. + + + The type. + + + + + Gets or sets the start index. + + + The start index. + + + + + Gets or sets the days. + + + The days. + + + + + Gets or sets the number of results to return. + + + The number of results. + + + + + Gets the list of tags to enumerate. + + + + + Gets the list of user tags to enumerate. + + + + + Initializes a new instance of the class. + + + + + Enumerates the list of all published files on the Steam workshop. + Results are returned in a . + The returned can also be awaited to retrieve the callback result. + + The specific details of the request. + The Job ID of the request. This can be used to find the appropriate . + + + + Handles a client message. This should not be called directly. + + The packet message that contains the data. + + + + Tracks a job with this manager. + + The asynchronous job to track. + + + + Passes a callback to a pending async job. + If the given callback completes the job, the job is removed from this manager. + + The JobID. + The callback. + + + + Extends the lifetime of a job. + + The job identifier. + + + + Marks a certain job as remotely failed. + + The job identifier. + + + + Cancels and clears all jobs being tracked. + + + + + Enables or disables periodic checks for job timeouts. + + Whether or not job timeout checks should be enabled. + + + + This is called periodically to cancel and clear out any jobs that have timed out (no response from Steam). + + + + + Retrieves a job from this manager, and optionally removes it from tracking. + + The JobID. + If set to true, this job is removed from tracking. + + + + + Thrown when Steam encounters a remote error with a pending . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message that describes the error. + + + + Initializes a new instance of the class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + This class is a utility for routing callbacks to function calls. + In order to bind callbacks to functions, an instance of this class must be created for the + instance that will be posting callbacks. + + + + + Initializes a new instance of the class. + + The instance to handle the callbacks of. + + + + Runs a single queued callback. + If no callback is queued, this method will instantly return. + + + + + Blocks the current thread to run a single queued callback. + If no callback is queued, the method will block for the given timeout. + + The length of time to block. + + + + Blocks the current thread to run all queued callbacks. + If no callback is queued, the method will block for the given timeout. + + The length of time to block. + + + + Blocks the current thread to run a single queued callback. + If no callback is queued, the method will block until one is posted. + + + + + Registers the provided to receive callbacks of type . + + The of the callbacks that should be subscribed to. + If this is , all callbacks of type will be recieved. + The function to invoke with the callback. + The type of callback to subscribe to. + An . Disposing of the return value will unsubscribe the . + + + + Registers the provided to receive callbacks of type . + + The function to invoke with the callback. + An . Disposing of the return value will unsubscribe the . + + + + A callback message + + + + + The that this callback is associated with. If there is no job associated, + then this will be + + + + + Represents the base object all callbacks are based off. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the job ID this callback refers to. If it is not a job callback, it will be . + + + + + Represents a single client that connects to the Steam3 network. + This class is also responsible for handling the registration of client message handlers and callbacks. + + + + + This callback is received after attempting to connect to the Steam network. + + + + + Gets the result of the connection attempt. + + The result. + + + + This callback is received when the steamclient is physically disconnected from the Steam network. + + + + + If true, the disconnection was initiated by calling . + If false, the disconnection was the cause of something not user-controlled, such as a network failure or + a forcible disconnection by the remote server. + + + + + This callback is received when the client has received the CM list from Steam. + + + + + Gets the CM server list. + + + + + This callback is fired when the client receives a list of all publically available Steam3 servers. + This callback may be fired multiple times for different server lists. + + + + + Gets the server list. + + + + + Initializes a new instance of the class with a specific connection type. + + The connection type to use. + + + + Adds a new handler to the internal list of message handlers. + + The handler to add. + A handler of that type is already registered. + + + + Removes a registered handler by name. + + The handler name to remove. + + + + Removes a registered handler. + + The handler to remove. + + + + Returns a registered handler. + + The type of the handler to cast to. Must derive from ClientMsgHandler. + + A registered handler on success, or null if the handler could not be found. + + + + + Gets the next callback object in the queue. + This function does not dequeue the callback, you must call FreeLastCallback after processing it. + + The next callback in the queue, or null if no callback is waiting. + + + + Gets the next callback object in the queue, and optionally frees it. + + if set to true this function also frees the last callback if one existed. + The next callback in the queue, or null if no callback is waiting. + + + + Blocks the calling thread until a callback object is posted to the queue. + This function does not dequeue the callback, you must call FreeLastCallback after processing it. + + The callback object from the queue. + + + + Blocks the calling thread until a callback object is posted to the queue, or null after the timeout has elapsed. + This function does not dequeue the callback, you must call FreeLastCallback after processing it. + + The length of time to block. + A callback object from the queue if a callback has been posted, or null if the timeout has elapsed. + + + + Blocks the calling thread until a callback object is posted to the queue, and optionally frees it. + + if set to true this function also frees the last callback. + The callback object from the queue. + + + + Blocks the calling thread until a callback object is posted to the queue, and optionally frees it. + + if set to true this function also frees the last callback. + The length of time to block. + A callback object from the queue if a callback has been posted, or null if the timeout has elapsed. + + + + Blocks the calling thread until the queue contains a callback object. Returns all callbacks, and optionally frees them. + + if set to true this function also frees all callbacks. + The length of time to block. + All current callback objects in the queue. + + + + Frees the last callback in the queue. + + + + + Posts a callback to the queue. This is normally used directly by client message handlers. + + The message. + + + + Returns the next available JobID for job based messages. + This function is thread-safe. + + The next available JobID. + + + + Called when a client message is received from the network. + + The packet message. + + + + Called when the client is physically disconnected from Steam3. + + + + + Represents a single client that connects to a UFS server. + + + + + This callback is received after attempting to connect to the UFS server. + + + + + Gets the result of the connection attempt. + + The result. + + + + This callback is received when the client is physically disconnected from the UFS server. + + + + + If true, the disconnection was initiated by calling . + If false, the disconnection was the cause of something not user-controlled, such as a network failure or + a forcible disconnection by the remote server. + + + + + This callback is returned in response to an attempt to log on to the UFS server through . + + + + + Gets the result of the logon + + + + + This callback is returned in response to a request to upload a file through . + + + + + Gets the result of the upload request + + + + + Gets whether or not the file upload should proceed over HTTP + + + + + Gets whether or not the file upload should proceed over HTTPS + + + + + Gets whether or not the file should be encrypted during upload + + + + + Gets the SHA hash of the file to be uploaded + + + + + Gets the JobID on the UFS server. + + + + + This callback is returned when a file upload through is completed. + + + + + Gets the result of the file upload + + + + + Gets the SHA hash of the file that was uploaded + + + + + Gets the connected universe of this client. + This value will be if the client is not connected to Steam. + + The universe. + + + + Gets a value indicating whether this instance is connected to the remote UFS server. + + + true if this instance is connected; otherwise, false. + + + + + Gets or sets the connection timeout used when connecting to the UFS server. + The default value is 5 seconds. + + + The connection timeout. + + + + + Initializes a new instance of the class. + + + The parent instance that the UFS connection is for. + Callbacks will also be posted through this instance. + + + + + Connects this client to a UFS server. + This begins the process of connecting and encrypting the data channel between the client and the UFS server. + Results are returned asynchronously in a . + If the UFS server that this client attempts to connect to is down, a will be posted instead. + will not attempt to reconnect to Steam, you must handle this callback and call again, preferrably after a short delay. + In order to connect to the UFS server, the parent must be connected to the CM server. + + + The of the UFS server to connect to. + If null, will randomly select a UFS server from the 's list of servers. + + + + + Disconnects this client from the UFS server. + a will be posted upon disconnection. + + + + + Represents all the information required to upload a file to the UFS server. + + + + + Gets or sets the AppID this upload request is for. + + + The AppID. + + + + + Gets or sets the remote name of the file that is being uploaded. + + + The name of the file. + + + + + Gets or sets the physical file data for this upload. + + + The file data. + + + + + Gets or sets the JobID of this file upload. This value should be assigned from . + + + The job ID. + + + + + Attempt to logon to the UFS and authorize the client for the given AppIDs. + The should be connected before this point. + Results are returned in a . + + The AppIDs to authorize when connecting to the UFS. + The Job ID of the request. This can be used to find the appropriate . + + + + Begins a request to upload a file to the UFS. + The should be logged on before this point. + Results are returned in a . + + The details to use for uploading the file. + The Job ID of the request. This can be used to find the appropriate . + + + + Uploads the actual contents of a file to the UFS. + The should be logged on before this point, and the previous request to upload a file must have completed successfully. + Results are returned in a . + + The details to use for uploading the file. + The Job ID of the request. This can be used to find the appropriate . + + + + Sends the specified client message to the UFS server. + This method will automatically assign the correct of the message, as given by the parent . + + The client message to send. + + + + Helper class to load servers from the Steam Directory Web API. + + + + + Initializes 's server list with servers from the Steam Directory. + + Cell ID + + + + Load a list of servers from the Steam Directory. + + Cell ID + A with the Result set to an enumerable list of s. + + + + Load a list of servers from the Steam Directory. + + Cell ID + Cancellation Token + A with the Result set to an enumerable list of s. + + + + Utility class for interacting with the Steam Web API. + + + + + Represents a single interface that exists within the Web API. + This is a dynamic object that allows function calls to interfaces with minimal code. + + + + + Gets or sets the timeout value in milliseconds for any web requests made to the WebAPI. + + + The timeout value in milliseconds. The default value is 100,000 milliseconds (100 seconds). + + + + + Manually calls the specified Web API function with the provided details. + + The function name to call. + The version of the function to call. + A dictionary of string key value pairs representing arguments to be passed to the API. + if set to true this method will be called through the secure API. + A object representing the results of the Web API call. + The function name or request method provided were null. + An network error occurred when performing the request. + An error occured when parsing the response from the WebAPI. + + + + Manually calls the specified Web API function with the provided details. + + The function name to call. + The version of the function to call. + A dictionary of string key value pairs representing arguments to be passed to the API. + The http request method. Either "POST" or "GET". + if set to true this method will be called through the secure API. + A object representing the results of the Web API call. + The function name or request method provided were null. + An network error occurred when performing the request. + An error occured when parsing the response from the WebAPI. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Provides the implementation for operations that invoke a member. + Classes derived from the class can + override this method to specify dynamic behavior for operations such as calling a method. + This method should not be called directly, it is called through dynamic method calls. + + + Provides information about the dynamic operation. + The binder.Name property provides the name of the member on which the dynamic operation is performed. + For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the + class derived from the class, binder.Name returns "SampleMethod". + The binder.IgnoreCase property specifies whether the member name is case-sensitive. + + + The arguments that are passed to the object member during the invoke operation. For example, + for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the + class, the first argument to is equal to 100. + + The result of the member invocation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time + binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + Dynamic method is called with non-named argument. + All parameters must be passed as name arguments to API calls. + - or - + The dynamic method name was not in the correct format. + All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number. + + + The reserved named parameter 'secure' was not a boolean value. + This parameter is used when requests must go through the secure API. + + + The function version number specified was out of range. + + + + + Represents a single interface that exists within the Web API. + This is a dynamic object that allows function calls to interfaces with minimal code. + This version of the class makes use of TPL Tasks to provide an asynchronous API. + + + + + Manually calls the specified Web API function with the provided details. + + The function name to call. + The version of the function to call. + A dictionary of string key value pairs representing arguments to be passed to the API. + The http request method. Either "POST" or "GET". + if set to true this method will be called through the secure API. + A that contains a object representing the results of the Web API call. + The function name or request method provided were null. + An network error occurred when performing the request. + An error occured when parsing the response from the WebAPI. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Provides the implementation for operations that invoke a member. + Classes derived from the class can + override this method to specify dynamic behavior for operations such as calling a method. + This method should not be called directly, it is called through dynamic method calls. + + + Provides information about the dynamic operation. + The binder.Name property provides the name of the member on which the dynamic operation is performed. + For example, for the statement sampleObject.SampleMethod(100), where sampleObject is an instance of the + class derived from the class, binder.Name returns "SampleMethod". + The binder.IgnoreCase property specifies whether the member name is case-sensitive. + + + The arguments that are passed to the object member during the invoke operation. For example, + for the statement sampleObject.SampleMethod(100), where sampleObject is derived from the + class, the first argument to is equal to 100. + + The result of the member invocation. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time + binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + Dynamic method is called with non-named argument. + All parameters must be passed as name arguments to API calls. + - or - + The dynamic method name was not in the correct format. + All API function calls must be in the format 'FunctionName###' where the optional ###'s represent a version number. + + + The reserved named parameter 'secure' was not a boolean value. + This parameter is used when requests must go through the secure API. + + + The function version number specified was out of range. + + + + + Retreives a dynamic handler capable of interacting with the specified interface on the Web API. + + The interface to retrieve a handler for. + An optional API key to be used for authorized requests. + A dynamic object to interact with the Web API. + + + + Retreives a dynamic handler capable of interacting with the specified interface on the Web API. + + The interface to retrieve a handler for. + An optional API key to be used for authorized requests. + A dynamic object to interact with the Web API. + + + + Represents a Steam3 depot manifest. + + + + + Represents a single chunk within a file. + + + + + Gets or sets the SHA-1 hash chunk id. + + + + + Gets or sets the expected Adler32 checksum of this chunk. + + + + + Gets or sets the chunk offset. + + + + + Gets or sets the compressed length of this chunk. + + + + + Gets or sets the decompressed length of this chunk. + + + + + Initializes a new instance of the class. + + + + + Represents a single file within a manifest. + + + + + Gets the name of the file. + + + + + Gets the chunks that this file is composed of. + + + + + Gets the file flags + + + + + Gets the total size of this file. + + + + + Gets the hash of this file. + + + + + Gets the list of files within this manifest. + + + + + Gets a value indicating whether filenames within this depot are encrypted. + + + true if the filenames are encrypted; otherwise, false. + + + + + Attempts to decrypts file names with the given encryption key. + + The encryption key. + true if the file names were successfully decrypted; otherwise, false. + + + + This 64bit structure represents an app, mod, shortcut, or p2p file on the Steam network. + + + + + Represents various types of games. + + + + + A Steam application. + + + + + A game modification. + + + + + A shortcut to a program. + + + + + A peer-to-peer file. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The 64bit integer to assign this GameID from. + + + + Initializes a new instance of the class. + + The 32bit app id to assign this GameID from. + + + + Sets the various components of this GameID from a 64bit integer form. + + The 64bit integer to assign this GameID from. + + + + Converts this GameID into it's 64bit integer form. + + A 64bit integer representing this GameID. + + + + Performs an implicit conversion from to . + + The GameID to convert.. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The GameId to convert. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The 64bit integer representing a GameID to convert. + + The result of the conversion. + + + + + Gets or sets the app id. + + + The app IDid + + + + + Gets or sets the type of the app. + + + The type of the app. + + + + + Gets or sets the mod id. + + + The mod ID. + + + + + Gets a value indicating whether this instance is a mod. + + + true if this instance is a mod; otherwise, false. + + + + + Gets a value indicating whether this instance is a shortcut. + + + true if this instance is a shortcut; otherwise, false. + + + + + Gets a value indicating whether this instance is a peer-to-peer file. + + + true if this instance is a p2p file; otherwise, false. + + + + + Gets a value indicating whether this instance is a steam app. + + + true if this instance is a steam app; otherwise, false. + + + + + 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. + + + + + 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. + + + + + Implements the operator ==. + + The left side GameID. + The right side GameID. + + The result of the operator. + + + + + Implements the operator !=. + + The left side GameID. + The right side GameID. + + The result of the operator. + + + + + 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. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Represents a globally unique identifier within the Steam network. + Guaranteed to be unique across all racks and servers for a given Steam universe. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The GID value. + + + + Performs an implicit conversion from to . + + The gid. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The gid. + + The result of the conversion. + + + + + Gets or sets the sequential count for this GID. + + + The sequential count. + + + + + Gets or sets the start time of the server that generated this GID. + + + The start time. + + + + + Gets or sets the process ID of the server that generated this GID. + + + The process ID. + + + + + Gets or sets the box ID of the server that generated this GID. + + + The box ID. + + + + + Gets or sets the entire 64bit value of this GID. + + + The value. + + + + + 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. + + + + + 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. + + + + + Implements the operator ==. + + The left side GID. + The right side GID. + + The result of the operator. + + + + + Implements the operator !=. + + The left side GID. + The right side GID. + + The result of the operator. + + + + + 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. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Represents a single unique handle to a piece of User Generated Content. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The UGC ID. + + + + Performs an implicit conversion from to . + + The UGC handle. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The UGC ID. + + The result of the conversion. + + + + + Represents an identifier of a network task known as a job. + + + + + Represents an invalid JobID. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Job ID to initialize this instance with. + + + + Performs an implicit conversion from to . + + The Job ID. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The Job ID. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The asynchronous job. + + The result of the conversion. + + + + + The base class for awaitable versions of a . + Should not be used or constructed directly, but rather with . + + + + + Gets the for this job. + + + + + Gets or sets the period of time before this job will be considered timed out and will be canceled. By default this is 10 seconds. + + + + + Adds a callback to the async job's result set. + + The callback. + true if this result completes the set; otherwise, false. + + + + Sets this job as failed, either remotely or due to a message timeout. + + + If set to true this job is marked as failed because Steam informed us of a job failure; + otherwise, this job has failed due to a message timeout. + + + + + Marks this job as having received a heartbeat and extends the job's timeout. + + + + + Represents an awaitable version of a . + Can either be converted to a TPL with or can be awaited directly. + + The callback type that will be returned by this async job. + + + + Initializes a new instance of the class. + + The that this job will be associated with. + The Job ID value associated with this async job. + + + + Converts this instance into a TPL . + + + + + Gets an awaiter used to await this . + An awaiter instance. + This method is intended for compiler use rather than use directly in code. + + + + Adds a callback to the async job's result set. For an , this always completes the set. + + The callback. + Always true. + + + + Sets this job as failed, either remotely or due to a message timeout. + + + If set to true this job is marked as failed because Steam informed us of a job failure; + otherwise, this job has failed due to a message timeout. + + + + + Represents an awaitable version of a . + Can either be converted to a TPL with or can be awaited directly. + This type of async job can contain multiple callback results. + + The callback type that will be returned by this async job. + + + + The set of callback results for an . + + + + + Gets a value indicating whether this is complete and contains every result sent by Steam. + + + + + Gets a value indicating whether the parent received an incomplete result set and then encountered a remote failure. + + + + + Gets a read only collection of callback results for this async job. + + + + + Initializes a new instance of the class. + + The that this job will be associated with. + The Job ID value associated with this async job. + The condition that must be fulfilled for the result set to be considered complete. + + + + Converts this instance into a TPL . + + + + + Gets an awaiter used to await this . + An awaiter instance. + This method is intended for compiler use rather than use directly in code. + + + + Adds a callback to the async job's result set. + + The callback. + true if this result completes the set; otherwise, false. + + + + Sets this job as failed, either remotely or due to a message timeout. + + + If set to true this job is marked as failed because Steam informed us of a job failure; + otherwise, this job has failed due to a message timeout. + + + + + Represents a recursive string key to arbitrary value container. + + + + + Initializes a new instance of the class. + + The optional name of the root key. + The optional value assigned to the root key. + + + + Represents an invalid given when a searched for child does not exist. + + + + + Gets or sets the name of this instance. + + + + + Gets or sets the value of this instance. + + + + + Gets the children of this instance. + + + + + Gets or sets the child with the specified key. + When retrieving by key, if no child with the given key exists, is returned. + + + + + Returns the value of this instance as a string. + + The value of this instance as a string. + + + + Attempts to convert and return the value of this instance as an unsigned byte. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as an unsigned byte. + + + + Attempts to convert and return the value of this instance as an unsigned short. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as an unsigned short. + + + + Attempts to convert and return the value of this instance as an integer. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as an integer. + + + + Attempts to convert and return the value of this instance as an unsigned integer. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as an unsigned integer. + + + + Attempts to convert and return the value of this instance as a long. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as a long. + + + + Attempts to convert and return the value of this instance as an unsigned long. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as an unsigned long. + + + + Attempts to convert and return the value of this instance as a float. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as a float. + + + + Attempts to convert and return the value of this instance as a boolean. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as a boolean. + + + + Attempts to convert and return the value of this instance as an enum. + If the conversion is invalid, the default value is returned. + + The default value to return if the conversion is invalid. + The value of this instance as an enum. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Attempts to load the given filename as a text . + + The path to the file to load. + a instance if the load was successful, or null on failure. + + This method will swallow any exceptions that occur when reading, use if you wish to handle exceptions. + + + + + Attempts to load the given filename as a binary . + + The path to the file to load. + The resulting object if the load was successful, or null if unsuccessful. + true if the load was successful, or false on failure. + + + + Attempts to create an instance of from the given input text. + + The input text to load. + a instance if the load was successful, or null on failure. + + This method will swallow any exceptions that occur when reading, use if you wish to handle exceptions. + + + + + Populate this instance from the given as a text . + + The input to read from. + true if the read was successful; otherwise, false. + + + + Opens and reads the given filename as text. + + + The file to open and read. + true if the read was successful; otherwise, false. + + + + Saves this instance to file. + + The file path to save to. + If set to true, saves this instance as binary. + + + + Saves this instance to a given . + + The to save to. + If set to true, saves this instance as binary. + + + + Populate this instance from the given as a binary . + + The input to read from. + true if the read was successful; otherwise, false. + + + + Represents the binary Steam3 manifest format. + + + + + Represents a backed MessageObject structure, which are often sent by the Steam servers. + + + + + Gets the inner object. + + + + + Initializes a new instance of the class, using the provided KeyValues object. + + The KeyValue backing store for this message object. + + + + Initializes a new instance of the class with an empty inner KeyValues. + + + + + Populates this MessageObject instance from the data inside the given stream. + + The stream to load data from. + true on success; otherwise, false. + + + + Writes this MessageObject instance to the given stream. + + The stream to write to. + + + + The base class used for wrapping common ulong types, to introduce type safety and distinguish between common types. + + + + + Gets or sets the value. + + + The value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value to initialize this handle to. + + + + 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. + + + + + 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 that represents this instance. + + + A that represents this instance. + + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + + true if the current object is equal to the other parameter; otherwise, false. + + + + + Represents a handle to a published file on the Steam workshop. + + + + + Initializes a new instance of the class. + + The file id. + + + + Performs an implicit conversion from to . + + The published file. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + The file id. + + The result of the conversion. + + + + + Implements the operator ==. + + The first published file. + The second published file. + + The result of the operator. + + + + + Implements the operator !=. + + The first published file. + The second published file. + + The result of the operator. + + + + + This 64-bit structure is used for identifying various objects on the Steam network. + + + + + The account instance value when representing all instanced SteamIDs. + + + + + The account instance value for a desktop . + + + + + The account instance value for a console . + + + + + The account instance for mobile or web based SteamIDs. + + + + + Masking value used for the account id. + + + + + Masking value used for packing chat instance flags into a . + + + + + Represents various flags a chat may have, packed into its instance. + + + + + This flag is set for clan based chat SteamIDs. + + + + + This flag is set for lobby based chat SteamIDs. + + + + + This flag is set for matchmaking lobby based chat SteamIDs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The account ID. + The universe. + The account type. + + + + Initializes a new instance of the class. + + The account ID. + The instance. + The universe. + The account type. + + + + Initializes a new instance of the class. + + The 64bit integer to assign this SteamID from. + + + + Initializes a new instance of the class from a Steam2 "STEAM_" rendered form. + This constructor assumes the rendered SteamID is in the public universe. + + A "STEAM_" rendered form of the SteamID. + + + + Initializes a new instance of the class from a Steam2 "STEAM_" rendered form and universe. + + A "STEAM_" rendered form of the SteamID. + The universe the SteamID belongs to. + + + + Sets the various components of this SteamID instance. + + The account ID. + The universe. + The account type. + + + + Sets the various components of this SteamID instance. + + The account ID. + The instance. + The universe. + The account type. + + + + Sets the various components of this SteamID from a Steam2 "STEAM_" rendered form and universe. + + A "STEAM_" rendered form of the SteamID. + The universe the SteamID belongs to. + true if this instance was successfully assigned; otherwise, false if the given string was in an invalid format. + + + + Sets the various components of this SteamID from a Steam3 "[X:1:2:3]" rendered form and universe. + + A "[X:1:2:3]" rendered form of the SteamID. + true if this instance was successfully assigned; otherwise, false if the given string was in an invalid format. + + + + Sets the various components of this SteamID from a 64bit integer form. + + The 64bit integer to assign this SteamID from. + + + + Converts this SteamID into it's 64bit integer form. + + A 64bit integer representing this SteamID. + + + + Returns a static account key used for grouping accounts with differing instances. + + A 64bit static account key. + + + + Gets a value indicating whether this instance is a blank anonymous account + + + true if this instance is a blank anon account; otherwise, false. + + + + + Gets a value indicating whether this instance is a game server account. + + + true if this instance is a game server account; otherwise, false. + + + + + Gets a value indicating whether this instance is a persistent game server account. + + + true if this instance is a persistent game server account; otherwise, false. + + + + + Gets a value indicating whether this instance is an anonymous game server account. + + + true if this instance is an anon game server account; otherwise, false. + + + + + Gets a value indicating whether this instance is a content server account. + + + true if this instance is a content server account; otherwise, false. + + + + + Gets a value indicating whether this instance is a clan account. + + + true if this instance is a clan account; otherwise, false. + + + + + Gets a value indicating whether this instance is a chat account. + + + true if this instance is a chat account; otherwise, false. + + + + + Gets a value indicating whether this instance is a lobby. + + + true if this instance is a lobby; otherwise, false. + + + + + Gets a value indicating whether this instance is an individual account. + + + true if this instance is an individual account; otherwise, false. + + + + + Gets a value indicating whether this instance is an anonymous account. + + + true if this instance is an anon account; otherwise, false. + + + + + Gets a value indicating whether this instance is an anonymous user account. + + + true if this instance is an anon user account; otherwise, false. + + + + + Gets a value indicating whether this instance is a console user account. + + + true if this instance is a console user account; otherwise, false. + + + + + Gets a value indicating whether this instance is valid. + + + true if this instance is valid; otherwise, false. + + + + + Gets or sets the account id. + + + The account id. + + + + + Gets or sets the account instance. + + + The account instance. + + + + + Gets or sets the account type. + + + The account type. + + + + + Gets or sets the account universe. + + + The account universe. + + + + + Renders this instance into it's Steam2 "STEAM_" or Steam3 representation. + + If set to true, the Steam3 rendering will be returned; otherwise, the Steam2 STEAM_ rendering. + + A string Steam2 "STEAM_" representation of this SteamID, or a Steam3 representation. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs an implicit conversion from to . + + The SteamID. + + The result of the conversion. + + + + + Performs an implicit conversion from to . + + A 64bit integer representing the SteamID. + + The result of the conversion. + + + + + 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. + + + + + 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. + + + + + Implements the operator ==. + + The left side SteamID. + The right side SteamID. + + The result of the operator. + + + + + Implements the operator !=. + + The left side SteamID. + The right side SteamID. + + The result of the operator. + + + + + 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. + + + + + Handles encrypting and decrypting using the RSA public key encryption + algorithm. + + + + + Initializes a new instance of the class. + + The public key to encrypt with. + + + + Encrypt the specified input. + + The encrypted input. + The input to encrypt. + + + + Disposes of this class. + + + + + Provides Crypto functions used in Steam protocols + + + + + Performs an SHA1 hash of an input byte array + + + + + Encrypts using AES/CBC/PKCS7 an input byte array with a given key and IV + + + + + Decrypts an input byte array using AES/CBC/PKCS7 with a given key and IV + + + + + Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None + + + + + Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a random IV prepended using AES/ECB/None + + + + + Performs an encryption using AES/CBC/PKCS7 with an input byte array and key, with a IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None + + + + + Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None + + + + + Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the IV (comprised of random bytes and the HMAC-SHA1 of the random bytes and plaintext) prepended using AES/ECB/None + + + + + Decrypts using AES/CBC/PKCS7 with an input byte array and key, using the random IV prepended using AES/ECB/None + + + + + Verifies and performs a symmetricdecrypt on the input using the given password as a key + + + + + Decrypts using AES/ECB/PKCS7 + + + + + Performs CRC32 on an input byte array using the CrcStandard.Crc32Bit parameters + + + + + Performs an Adler32 on the given input + + + + + Generate an array of random bytes given the input length + + + + + Interface all debug log listeners must implement in order to register themselves. + + + + + Called when the DebugLog wishes to inform listeners of debug spew. + + The category of the message. + The message to log. + + + + Represents the root debug logging functionality. + + + + + Gets or sets a value indicating whether debug logging is enabled. + + + true if enabled; otherwise, false. + + + + + Initializes the class. + + + + + Adds a listener. + + The listener. + + + + Adds an action listener. + + The listener action. + + + + Removes a listener. + + The listener. + + + + Removes a listener. + + The previously registered listener action. + + + + Clears all registered listeners from the . + + + + + Writes a line to the debug log, informing all listeners. + + The category of the message. + A composite format string. + An System.Object array containing zero or more objects to format. + + + + Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack. + This method is equivalent to System.Diagnostics.Debug.Assert, however, it is tailored to spew failed assertions into the SteamKit debug log. + + The conditional expression to evaluate. If the condition is true, the specified message is not sent and the message box is not displayed. + The category of the message. + The message to display if the assertion fails. + + + + This is a debug utility, do not use it to implement your business logic. + + This interface is used for logging network messages sent to and received from the Steam server that the client is connected to. + + + + + Called when a packet is received from the Steam server. + + Network message type of this packet message. + Raw packet data that was received. + + + + Called when a packet is about to be sent to the Steam server. + + Network message type of this packet message. + Raw packet data that will be sent. + + + + Dump any network messages sent to and received from the Steam server that the client is connected to. + These messages are dumped to file, and can be analyzed further with NetHookAnalyzer, a hex editor, or your own purpose-built tools. + + Be careful with this, sensitive data may be written to the disk (such as your Steam password). + + + + + Will create a folder in path "%assembly%/nethook/%currenttime%/" + + + + + Log to your own folder. + + Path to folder. + + + + Called when a packet is received from the Steam server. + + Network message type of this packet message. + Raw packet data that was received. + + + + Called when a packet is about to be sent to the Steam server. + + Network message type of this packet message. + Raw packet data that will be sent. + + + + Contains the public keys that Steam uses for each of the + types. + + + + + Gets the public key for the given universe. + + The public key. + The universe. + + + + Contains various utility functions for dealing with dates. + + + + + Converts a given unix timestamp to a DateTime + + A unix timestamp expressed as seconds since the unix epoch + DateTime representation + + + + Converts a given DateTime into a unix timestamp representing seconds since the unix epoch. + + DateTime to be expressed + 64-bit wide representation + + + + Contains various utility functions for handling EMsgs. + + + + + Strips off the protobuf message flag and returns an EMsg. + + The message number. + The underlying EMsg. + + + + Strips off the protobuf message flag and returns an EMsg. + + The message number. + The underlying EMsg. + + + + Strips off the protobuf message flag and returns an EMsg. + + The message number. + The underlying EMsg. + + + + Determines whether message is protobuf flagged. + + The message. + + true if this message is protobuf flagged; otherwise, false. + + + + + Determines whether message is protobuf flagged. + + The message. + + true if this message is protobuf flagged; otherwise, false. + + + + + Crafts an EMsg, flagging it if required. + + The EMsg to flag. + if set to true, the message is protobuf flagged. + A crafted EMsg, flagged if requested. + + + + Crafts an EMsg, flagging it if required. + + The EMsg to flag. + if set to true, the message is protobuf flagged. + A crafted EMsg, flagged if requested. + + + + The exception that is thrown when an error in input stream occurs during decoding. + + + + + The exception that is thrown when the value of an argument is outside the allowable range. + + + + + Callback progress. + + + input size. -1 if unknown. + + + output size. -1 if unknown. + + + + + Codes streams. + + + input Stream. + + + output Stream. + + + input Size. -1 if unknown. + + + output Size. -1 if unknown. + + + callback progress reference. + + + if input stream is not valid + + + + + Provides the fields that represent properties idenitifiers for compressing. + + + + + Specifies default property. + + + + + Specifies size of dictionary. + + + + + Specifies size of memory for PPM*. + + + + + Specifies order for PPM methods. + + + + + Specifies Block Size. + + + + + Specifies number of postion state bits for LZMA (0 <= x <= 4). + + + + + Specifies number of literal context bits for LZMA (0 <= x <= 8). + + + + + Specifies number of literal position bits for LZMA (0 <= x <= 4). + + + + + Specifies number of fast bytes for LZ*. + + + + + Specifies match finder. LZMA: "BT2", "BT4" or "BT4B". + + + + + Specifies the number of match finder cyckes. + + + + + Specifies number of passes. + + + + + Specifies number of algorithm. + + + + + Specifies the number of threads. + + + + + Specifies mode with end marker. + + + + diff --git a/packages/SteamKit2.2.0.0-Alpha3/license.txt b/packages/SteamKit2.2.0.0-Alpha3/license.txt new file mode 100644 index 000000000..7914af0f7 --- /dev/null +++ b/packages/SteamKit2.2.0.0-Alpha3/license.txt @@ -0,0 +1,15 @@ +Copyright (C) 2017 Ryan Stecker & SteamRE Team + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/packages/SteamKit2.1.8.2/readme.txt/changes.txt b/packages/SteamKit2.2.0.0-Alpha3/readme.txt similarity index 96% rename from packages/SteamKit2.1.8.2/readme.txt/changes.txt rename to packages/SteamKit2.2.0.0-Alpha3/readme.txt index 4cfa29ee5..8e99f6eab 100644 --- a/packages/SteamKit2.1.8.2/readme.txt/changes.txt +++ b/packages/SteamKit2.2.0.0-Alpha3/readme.txt @@ -1,3 +1,23 @@ +------------------------------------------------------------------------------ +v 2.0.0 Mar 28, 2017 (Alpha) +------------------------------------------------------------------------------ +* SteamKit2 now requires .NET Framework 4.6 or a .NET Standard 1.3-compatible runtime. + * SteamKit2 is now supported on .NET Core. + * `IsolatedStorageServerListProvider` is only available in .NET Framework 4.6 and higher. + +* Updated Protobuf message classes to expose a property indicating if any wire value was specified or not, and a method to clear the value. +* Updated `CDNClient` and `WebAPI` to expose `Task`-based asynchronous methods. +* Removed all methods and properties that were marked as `[Obsolete]`. + + +------------------------------------------------------------------------------ +v 1.8.3 Mar 28, 2017 +------------------------------------------------------------------------------ +* Obsoleted `TradeProposedCallback.OtherName`. + +This is the final release to support .NET Framework 4.5. + + ------------------------------------------------------------------------------ v 1.8.2 Mar 23, 2017 ------------------------------------------------------------------------------ diff --git a/packages/protobuf-net.2.0.0.668/lib/net20-cf/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/net20-cf/protobuf-net.dll deleted file mode 100644 index 1b9cb8c4e..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/net20-cf/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/net20-cf/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/net20-cf/protobuf-net.xml deleted file mode 100644 index dcbe26f6d..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/net20-cf/protobuf-net.xml +++ /dev/null @@ -1,2529 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/net20/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/net20/protobuf-net.dll deleted file mode 100644 index 3d24cd038..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/net20/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/net20/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/net20/protobuf-net.xml deleted file mode 100644 index aa761e6ff..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/net20/protobuf-net.xml +++ /dev/null @@ -1,2758 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Pushes a null reference onto the stack. Note that this should only - be used to return a null (or set a variable to null); for null-tests - use BranchIfTrue / BranchIfFalse. - - - - - Creates a new "using" block (equivalent) around a variable; - the variable must exist, and note that (unlike in C#) it is - the variables *final* value that gets disposed. If you need - *original* disposal, copy your variable first. - - It is the callers responsibility to ensure that the variable's - scope fully-encapsulates the "using"; if not, the variable - may be re-used (and thus re-assigned) unexpectedly. - - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Compiles the serializer for this type; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Creates a new IFormatter that uses protocol-buffer [de]serialization. - - A new IFormatter to be used during [de]serialization. - The type of object to be [de]deserialized by the formatter. - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Compiles the serializers individually; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Fully compiles the current model into a static-compiled model instance - - A full compilation is restricted to accessing public types / members - An instance of the newly created compiled type-model - - - - Fully compiles the current model into a static-compiled serialization dll - (the serialization dll still requires protobuf-net for support services). - - A full compilation is restricted to accessing public types / members - The name of the TypeModel class to create - The path for the new dll - An instance of the newly created compiled type-model - - - - Fully compiles the current model into a static-compiled serialization dll - (the serialization dll still requires protobuf-net for support services). - - A full compilation is restricted to accessing public types / members - An instance of the newly created compiled type-model - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should serializers be compiled on demand? It may be useful - to disable this for debugging purposes. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Represents configuration options for compiling a model to - a standalone assembly. - - - - - Import framework options from an existing type - - - - - The TargetFrameworkAttribute FrameworkName value to burn into the generated assembly - - - - - The TargetFrameworkAttribute FrameworkDisplayName value to burn into the generated assembly - - - - - The name of the TypeModel class to create - - - - - The path for the new dll - - - - - The runtime version for the generated assembly - - - - - The runtime version for the generated assembly - - - - - The acecssibility of the generated serializer - - - - - Type accessibility - - - - - Available to all callers - - - - - Available to all callers in the same assembly, or assemblies specified via [InternalsVisibleTo(...)] - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Gets or sets the source or destination of the transmitted data. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Writes a protocol-buffer representation of the given instance to the supplied SerializationInfo. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination SerializationInfo to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied SerializationInfo. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination SerializationInfo to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied XmlWriter. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination XmlWriter to write to. - - - - Applies a protocol-buffer from an XmlReader to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The XmlReader containing the data to apply to the instance (cannot be null). - - - - Applies a protocol-buffer from a SerializationInfo to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The SerializationInfo containing the data to apply to the instance (cannot be null). - - - - Applies a protocol-buffer from a SerializationInfo to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The SerializationInfo containing the data to apply to the instance (cannot be null). - Additional information about this serialization operation. - - - - Precompiles the serializer for a given type. - - - - - Creates a new IFormatter that uses protocol-buffer [de]serialization. - - The type of object to be [de]deserialized by the formatter. - A new IFormatter to be used during [de]serialization. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - Emit the IL necessary to perform the given actions - to serialize this data. - - Details and utilities for the method being generated. - The source of the data to work against; - If the value is only needed once, then LoadValue is sufficient. If - the value is needed multiple times, then note that a "null" - means "the top of the stack", in which case you should create your - own copy - GetLocalWithValue. - - - - Emit the IL necessary to perform the given actions to deserialize this data. - - Details and utilities for the method being generated. - For nested values, the instance holding the values; note - that this is not always provided - a null means not supplied. Since this is always - a variable or argument, it is not necessary to consume this value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/net30/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/net30/protobuf-net.dll deleted file mode 100644 index de4701c6a..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/net30/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/net30/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/net30/protobuf-net.xml deleted file mode 100644 index ccf3c6ff2..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/net30/protobuf-net.xml +++ /dev/null @@ -1,2879 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Pushes a null reference onto the stack. Note that this should only - be used to return a null (or set a variable to null); for null-tests - use BranchIfTrue / BranchIfFalse. - - - - - Creates a new "using" block (equivalent) around a variable; - the variable must exist, and note that (unlike in C#) it is - the variables *final* value that gets disposed. If you need - *original* disposal, copy your variable first. - - It is the callers responsibility to ensure that the variable's - scope fully-encapsulates the "using"; if not, the variable - may be re-used (and thus re-assigned) unexpectedly. - - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Compiles the serializer for this type; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Creates a new IFormatter that uses protocol-buffer [de]serialization. - - A new IFormatter to be used during [de]serialization. - The type of object to be [de]deserialized by the formatter. - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Compiles the serializers individually; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Fully compiles the current model into a static-compiled model instance - - A full compilation is restricted to accessing public types / members - An instance of the newly created compiled type-model - - - - Fully compiles the current model into a static-compiled serialization dll - (the serialization dll still requires protobuf-net for support services). - - A full compilation is restricted to accessing public types / members - The name of the TypeModel class to create - The path for the new dll - An instance of the newly created compiled type-model - - - - Fully compiles the current model into a static-compiled serialization dll - (the serialization dll still requires protobuf-net for support services). - - A full compilation is restricted to accessing public types / members - An instance of the newly created compiled type-model - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should serializers be compiled on demand? It may be useful - to disable this for debugging purposes. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Represents configuration options for compiling a model to - a standalone assembly. - - - - - Import framework options from an existing type - - - - - The TargetFrameworkAttribute FrameworkName value to burn into the generated assembly - - - - - The TargetFrameworkAttribute FrameworkDisplayName value to burn into the generated assembly - - - - - The name of the TypeModel class to create - - - - - The path for the new dll - - - - - The runtime version for the generated assembly - - - - - The runtime version for the generated assembly - - - - - The acecssibility of the generated serializer - - - - - Type accessibility - - - - - Available to all callers - - - - - Available to all callers in the same assembly, or assemblies specified via [InternalsVisibleTo(...)] - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Gets or sets the source or destination of the transmitted data. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Writes a protocol-buffer representation of the given instance to the supplied SerializationInfo. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination SerializationInfo to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied SerializationInfo. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination SerializationInfo to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied XmlWriter. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination XmlWriter to write to. - - - - Applies a protocol-buffer from an XmlReader to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The XmlReader containing the data to apply to the instance (cannot be null). - - - - Applies a protocol-buffer from a SerializationInfo to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The SerializationInfo containing the data to apply to the instance (cannot be null). - - - - Applies a protocol-buffer from a SerializationInfo to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The SerializationInfo containing the data to apply to the instance (cannot be null). - Additional information about this serialization operation. - - - - Precompiles the serializer for a given type. - - - - - Creates a new IFormatter that uses protocol-buffer [de]serialization. - - The type of object to be [de]deserialized by the formatter. - A new IFormatter to be used during [de]serialization. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - Emit the IL necessary to perform the given actions - to serialize this data. - - Details and utilities for the method being generated. - The source of the data to work against; - If the value is only needed once, then LoadValue is sufficient. If - the value is needed multiple times, then note that a "null" - means "the top of the stack", in which case you should create your - own copy - GetLocalWithValue. - - - - Emit the IL necessary to perform the given actions to deserialize this data. - - Details and utilities for the method being generated. - For nested values, the instance holding the values; note - that this is not always provided - a null means not supplied. Since this is always - a variable or argument, it is not necessary to consume this value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Uses protocol buffer serialization on the specified operation; note that this - must be enabled on both the client and server. - - - - - Configuration element to swap out DatatContractSerilaizer with the XmlProtoSerializer for a given endpoint. - - - - - - Creates a new ProtoBehaviorExtension instance. - - - - - Creates a behavior extension based on the current configuration settings. - - The behavior extension. - - - - Gets the type of behavior. - - - - - Behavior to swap out DatatContractSerilaizer with the XmlProtoSerializer for a given endpoint. - - Add the following to the server and client app.config in the system.serviceModel section: - - - - - - - - - - - - - - Configure your endpoints to have a behaviorConfiguration as follows: - - - - - - - - - - - - - Describes a WCF operation behaviour that can perform protobuf serialization - - - - - Create a new ProtoOperationBehavior instance - - - - - Creates a protobuf serializer if possible (falling back to the default WCF serializer) - - - - - The type-model that should be used with this behaviour - - - - - An xml object serializer that can embed protobuf data in a base-64 hunk (looking like a byte[]) - - - - - Attempt to create a new serializer for the given model and type - - A new serializer instance if the type is recognised by the model; null otherwise - - - - Creates a new serializer for the given model and type - - - - - Ends an object in the output - - - - - Begins an object in the output - - - - - Writes the body of an object in the output - - - - - Indicates whether this is the start of an object we are prepared to handle - - - - - Reads the body of an object - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/net35-cf/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/net35-cf/protobuf-net.dll deleted file mode 100644 index dd6c1163c..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/net35-cf/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/net35-cf/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/net35-cf/protobuf-net.xml deleted file mode 100644 index dcbe26f6d..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/net35-cf/protobuf-net.xml +++ /dev/null @@ -1,2529 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/net35/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/net35/protobuf-net.dll deleted file mode 100644 index de4701c6a..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/net35/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/net35/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/net35/protobuf-net.xml deleted file mode 100644 index ccf3c6ff2..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/net35/protobuf-net.xml +++ /dev/null @@ -1,2879 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Pushes a null reference onto the stack. Note that this should only - be used to return a null (or set a variable to null); for null-tests - use BranchIfTrue / BranchIfFalse. - - - - - Creates a new "using" block (equivalent) around a variable; - the variable must exist, and note that (unlike in C#) it is - the variables *final* value that gets disposed. If you need - *original* disposal, copy your variable first. - - It is the callers responsibility to ensure that the variable's - scope fully-encapsulates the "using"; if not, the variable - may be re-used (and thus re-assigned) unexpectedly. - - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Compiles the serializer for this type; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Creates a new IFormatter that uses protocol-buffer [de]serialization. - - A new IFormatter to be used during [de]serialization. - The type of object to be [de]deserialized by the formatter. - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Compiles the serializers individually; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Fully compiles the current model into a static-compiled model instance - - A full compilation is restricted to accessing public types / members - An instance of the newly created compiled type-model - - - - Fully compiles the current model into a static-compiled serialization dll - (the serialization dll still requires protobuf-net for support services). - - A full compilation is restricted to accessing public types / members - The name of the TypeModel class to create - The path for the new dll - An instance of the newly created compiled type-model - - - - Fully compiles the current model into a static-compiled serialization dll - (the serialization dll still requires protobuf-net for support services). - - A full compilation is restricted to accessing public types / members - An instance of the newly created compiled type-model - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should serializers be compiled on demand? It may be useful - to disable this for debugging purposes. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Represents configuration options for compiling a model to - a standalone assembly. - - - - - Import framework options from an existing type - - - - - The TargetFrameworkAttribute FrameworkName value to burn into the generated assembly - - - - - The TargetFrameworkAttribute FrameworkDisplayName value to burn into the generated assembly - - - - - The name of the TypeModel class to create - - - - - The path for the new dll - - - - - The runtime version for the generated assembly - - - - - The runtime version for the generated assembly - - - - - The acecssibility of the generated serializer - - - - - Type accessibility - - - - - Available to all callers - - - - - Available to all callers in the same assembly, or assemblies specified via [InternalsVisibleTo(...)] - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Gets or sets the source or destination of the transmitted data. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Writes a protocol-buffer representation of the given instance to the supplied SerializationInfo. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination SerializationInfo to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied SerializationInfo. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination SerializationInfo to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied XmlWriter. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination XmlWriter to write to. - - - - Applies a protocol-buffer from an XmlReader to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The XmlReader containing the data to apply to the instance (cannot be null). - - - - Applies a protocol-buffer from a SerializationInfo to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The SerializationInfo containing the data to apply to the instance (cannot be null). - - - - Applies a protocol-buffer from a SerializationInfo to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The SerializationInfo containing the data to apply to the instance (cannot be null). - Additional information about this serialization operation. - - - - Precompiles the serializer for a given type. - - - - - Creates a new IFormatter that uses protocol-buffer [de]serialization. - - The type of object to be [de]deserialized by the formatter. - A new IFormatter to be used during [de]serialization. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - Emit the IL necessary to perform the given actions - to serialize this data. - - Details and utilities for the method being generated. - The source of the data to work against; - If the value is only needed once, then LoadValue is sufficient. If - the value is needed multiple times, then note that a "null" - means "the top of the stack", in which case you should create your - own copy - GetLocalWithValue. - - - - Emit the IL necessary to perform the given actions to deserialize this data. - - Details and utilities for the method being generated. - For nested values, the instance holding the values; note - that this is not always provided - a null means not supplied. Since this is always - a variable or argument, it is not necessary to consume this value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Uses protocol buffer serialization on the specified operation; note that this - must be enabled on both the client and server. - - - - - Configuration element to swap out DatatContractSerilaizer with the XmlProtoSerializer for a given endpoint. - - - - - - Creates a new ProtoBehaviorExtension instance. - - - - - Creates a behavior extension based on the current configuration settings. - - The behavior extension. - - - - Gets the type of behavior. - - - - - Behavior to swap out DatatContractSerilaizer with the XmlProtoSerializer for a given endpoint. - - Add the following to the server and client app.config in the system.serviceModel section: - - - - - - - - - - - - - - Configure your endpoints to have a behaviorConfiguration as follows: - - - - - - - - - - - - - Describes a WCF operation behaviour that can perform protobuf serialization - - - - - Create a new ProtoOperationBehavior instance - - - - - Creates a protobuf serializer if possible (falling back to the default WCF serializer) - - - - - The type-model that should be used with this behaviour - - - - - An xml object serializer that can embed protobuf data in a base-64 hunk (looking like a byte[]) - - - - - Attempt to create a new serializer for the given model and type - - A new serializer instance if the type is recognised by the model; null otherwise - - - - Creates a new serializer for the given model and type - - - - - Ends an object in the output - - - - - Begins an object in the output - - - - - Writes the body of an object in the output - - - - - Indicates whether this is the start of an object we are prepared to handle - - - - - Reads the body of an object - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/net40-cf/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/net40-cf/protobuf-net.dll deleted file mode 100644 index dd6c1163c..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/net40-cf/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/net40-cf/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/net40-cf/protobuf-net.xml deleted file mode 100644 index dcbe26f6d..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/net40-cf/protobuf-net.xml +++ /dev/null @@ -1,2529 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/net40/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/net40/protobuf-net.dll deleted file mode 100644 index de4701c6a..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/net40/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/net40/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/net40/protobuf-net.xml deleted file mode 100644 index ccf3c6ff2..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/net40/protobuf-net.xml +++ /dev/null @@ -1,2879 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Pushes a null reference onto the stack. Note that this should only - be used to return a null (or set a variable to null); for null-tests - use BranchIfTrue / BranchIfFalse. - - - - - Creates a new "using" block (equivalent) around a variable; - the variable must exist, and note that (unlike in C#) it is - the variables *final* value that gets disposed. If you need - *original* disposal, copy your variable first. - - It is the callers responsibility to ensure that the variable's - scope fully-encapsulates the "using"; if not, the variable - may be re-used (and thus re-assigned) unexpectedly. - - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Compiles the serializer for this type; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Creates a new IFormatter that uses protocol-buffer [de]serialization. - - A new IFormatter to be used during [de]serialization. - The type of object to be [de]deserialized by the formatter. - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Compiles the serializers individually; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Fully compiles the current model into a static-compiled model instance - - A full compilation is restricted to accessing public types / members - An instance of the newly created compiled type-model - - - - Fully compiles the current model into a static-compiled serialization dll - (the serialization dll still requires protobuf-net for support services). - - A full compilation is restricted to accessing public types / members - The name of the TypeModel class to create - The path for the new dll - An instance of the newly created compiled type-model - - - - Fully compiles the current model into a static-compiled serialization dll - (the serialization dll still requires protobuf-net for support services). - - A full compilation is restricted to accessing public types / members - An instance of the newly created compiled type-model - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should serializers be compiled on demand? It may be useful - to disable this for debugging purposes. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Represents configuration options for compiling a model to - a standalone assembly. - - - - - Import framework options from an existing type - - - - - The TargetFrameworkAttribute FrameworkName value to burn into the generated assembly - - - - - The TargetFrameworkAttribute FrameworkDisplayName value to burn into the generated assembly - - - - - The name of the TypeModel class to create - - - - - The path for the new dll - - - - - The runtime version for the generated assembly - - - - - The runtime version for the generated assembly - - - - - The acecssibility of the generated serializer - - - - - Type accessibility - - - - - Available to all callers - - - - - Available to all callers in the same assembly, or assemblies specified via [InternalsVisibleTo(...)] - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Gets or sets the source or destination of the transmitted data. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Writes a protocol-buffer representation of the given instance to the supplied SerializationInfo. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination SerializationInfo to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied SerializationInfo. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination SerializationInfo to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied XmlWriter. - - The type being serialized. - The existing instance to be serialized (cannot be null). - The destination XmlWriter to write to. - - - - Applies a protocol-buffer from an XmlReader to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The XmlReader containing the data to apply to the instance (cannot be null). - - - - Applies a protocol-buffer from a SerializationInfo to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The SerializationInfo containing the data to apply to the instance (cannot be null). - - - - Applies a protocol-buffer from a SerializationInfo to an existing instance. - - The type being merged. - The existing instance to be modified (cannot be null). - The SerializationInfo containing the data to apply to the instance (cannot be null). - Additional information about this serialization operation. - - - - Precompiles the serializer for a given type. - - - - - Creates a new IFormatter that uses protocol-buffer [de]serialization. - - The type of object to be [de]deserialized by the formatter. - A new IFormatter to be used during [de]serialization. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - Emit the IL necessary to perform the given actions - to serialize this data. - - Details and utilities for the method being generated. - The source of the data to work against; - If the value is only needed once, then LoadValue is sufficient. If - the value is needed multiple times, then note that a "null" - means "the top of the stack", in which case you should create your - own copy - GetLocalWithValue. - - - - Emit the IL necessary to perform the given actions to deserialize this data. - - Details and utilities for the method being generated. - For nested values, the instance holding the values; note - that this is not always provided - a null means not supplied. Since this is always - a variable or argument, it is not necessary to consume this value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Uses protocol buffer serialization on the specified operation; note that this - must be enabled on both the client and server. - - - - - Configuration element to swap out DatatContractSerilaizer with the XmlProtoSerializer for a given endpoint. - - - - - - Creates a new ProtoBehaviorExtension instance. - - - - - Creates a behavior extension based on the current configuration settings. - - The behavior extension. - - - - Gets the type of behavior. - - - - - Behavior to swap out DatatContractSerilaizer with the XmlProtoSerializer for a given endpoint. - - Add the following to the server and client app.config in the system.serviceModel section: - - - - - - - - - - - - - - Configure your endpoints to have a behaviorConfiguration as follows: - - - - - - - - - - - - - Describes a WCF operation behaviour that can perform protobuf serialization - - - - - Create a new ProtoOperationBehavior instance - - - - - Creates a protobuf serializer if possible (falling back to the default WCF serializer) - - - - - The type-model that should be used with this behaviour - - - - - An xml object serializer that can embed protobuf data in a base-64 hunk (looking like a byte[]) - - - - - Attempt to create a new serializer for the given model and type - - A new serializer instance if the type is recognised by the model; null otherwise - - - - Creates a new serializer for the given model and type - - - - - Ends an object in the output - - - - - Begins an object in the output - - - - - Writes the body of an object in the output - - - - - Indicates whether this is the start of an object we are prepared to handle - - - - - Reads the body of an object - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.XML b/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.XML deleted file mode 100644 index e2507cb3a..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.XML +++ /dev/null @@ -1,2539 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.dll deleted file mode 100644 index 836679d1a..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.pri b/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.pri deleted file mode 100644 index 03574cc24..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.pri and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll deleted file mode 100644 index ec90e6073..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/portable-sl4+net40+wp7+windows8/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml deleted file mode 100644 index dcbe26f6d..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml +++ /dev/null @@ -1,2529 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/sl3-wp/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/sl3-wp/protobuf-net.dll deleted file mode 100644 index a34b9ca12..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/sl3-wp/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/sl3-wp/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/sl3-wp/protobuf-net.xml deleted file mode 100644 index e2507cb3a..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/sl3-wp/protobuf-net.xml +++ /dev/null @@ -1,2539 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/sl4-windowsphone71/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/sl4-windowsphone71/protobuf-net.dll deleted file mode 100644 index a34b9ca12..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/sl4-windowsphone71/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/sl4-windowsphone71/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/sl4-windowsphone71/protobuf-net.xml deleted file mode 100644 index e2507cb3a..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/sl4-windowsphone71/protobuf-net.xml +++ /dev/null @@ -1,2539 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/sl4/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/sl4/protobuf-net.dll deleted file mode 100644 index dd405e40d..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/sl4/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/sl4/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/sl4/protobuf-net.xml deleted file mode 100644 index 788e3794d..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/sl4/protobuf-net.xml +++ /dev/null @@ -1,2585 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Gets or sets the source or destination of the transmitted data. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - An xml object serializer that can embed protobuf data in a base-64 hunk (looking like a byte[]) - - - - - Attempt to create a new serializer for the given model and type - - A new serializer instance if the type is recognised by the model; null otherwise - - - - Creates a new serializer for the given model and type - - - - - Ends an object in the output - - - - - Begins an object in the output - - - - - Writes the body of an object in the output - - - - - Indicates whether this is the start of an object we are prepared to handle - - - - - Reads the body of an object - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/lib/windowsphone8/protobuf-net.dll b/packages/protobuf-net.2.0.0.668/lib/windowsphone8/protobuf-net.dll deleted file mode 100644 index 909ab4ce2..000000000 Binary files a/packages/protobuf-net.2.0.0.668/lib/windowsphone8/protobuf-net.dll and /dev/null differ diff --git a/packages/protobuf-net.2.0.0.668/lib/windowsphone8/protobuf-net.xml b/packages/protobuf-net.2.0.0.668/lib/windowsphone8/protobuf-net.xml deleted file mode 100644 index f97baa83e..000000000 --- a/packages/protobuf-net.2.0.0.668/lib/windowsphone8/protobuf-net.xml +++ /dev/null @@ -1,2641 +0,0 @@ - - - - protobuf-net - - - - - Provides support for common .NET types that do not have a direct representation - in protobuf, using the definitions from bcl.proto - - - - - Creates a new instance of the specified type, bypassing the constructor. - - The type to create - The new instance - If the platform does not support constructor-skipping - - - - Writes a TimeSpan to a protobuf stream - - - - - Parses a TimeSpan from a protobuf stream - - - - - Parses a DateTime from a protobuf stream - - - - - Writes a DateTime to a protobuf stream - - - - - Parses a decimal from a protobuf stream - - - - - Writes a decimal to a protobuf stream - - - - - Writes a Guid to a protobuf stream - - - - - Parses a Guid from a protobuf stream - - - - - Reads an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Writes an *implementation specific* bundled .NET object, including (as options) type-metadata, identity/re-use, etc. - - - - - Optional behaviours that introduce .NET-specific functionality - - - - - No special behaviour - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - If false, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should the object index be reserved, rather than creating an object promptly - - - - - Provides a simple buffer-based implementation of an extension object. - - - - - Provides addition capability for supporting unexpected fields during - protocol-buffer serialization/deserialization. This allows for loss-less - round-trip/merge, even when the data is not fully understood. - - - - - Requests a stream into which any unexpected fields can be persisted. - - A new stream suitable for storing data. - - - - Indicates that all unexpected fields have now been stored. The - implementing class is responsible for closing the stream. If - "commit" is not true the data may be discarded. - - The stream originally obtained by BeginAppend. - True if the append operation completed successfully. - - - - Requests a stream of the unexpected fields previously stored. - - A prepared stream of the unexpected fields. - - - - Indicates that all unexpected fields have now been read. The - implementing class is responsible for closing the stream. - - The stream originally obtained by BeginQuery. - - - - Requests the length of the raw binary stream; this is used - when serializing sub-entities to indicate the expected size. - - The length of the binary stream representing unexpected data. - - - Specifies a method on the root-contract in an hierarchy to be invoked before serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after serialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked before deserialization. - - - Specifies a method on the root-contract in an hierarchy to be invoked after deserialization. - - - - Pushes a null reference onto the stack. Note that this should only - be used to return a null (or set a variable to null); for null-tests - use BranchIfTrue / BranchIfFalse. - - - - - Creates a new "using" block (equivalent) around a variable; - the variable must exist, and note that (unlike in C#) it is - the variables *final* value that gets disposed. If you need - *original* disposal, copy your variable first. - - It is the callers responsibility to ensure that the variable's - scope fully-encapsulates the "using"; if not, the variable - may be re-used (and thus re-assigned) unexpectedly. - - - - - Sub-format to use when serializing/deserializing data - - - - - Uses the default encoding for the data-type. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that zigzag variant encoding will be used. This means that values - with small magnitude (regardless of sign) take a small amount - of space to encode. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that two's-complement variant encoding will be used. - This means that any -ve number will take 10 bytes (even for 32-bit), - so should only be used for compatibility. - - - - - When applied to signed integer-based data (including Decimal), this - indicates that a fixed amount of space will be used. - - - - - When applied to a sub-message, indicates that the value should be treated - as group-delimited. - - - - - Simple base class for supporting unexpected fields allowing - for loss-less round-tips/merge, even if the data is not understod. - The additional fields are (by default) stored in-memory in a buffer. - - As an example of an alternative implementation, you might - choose to use the file system (temporary files) as the back-end, tracking - only the paths [such an object would ideally be IDisposable and use - a finalizer to ensure that the files are removed]. - - - - - Indicates that the implementing type has support for protocol-buffer - extensions. - - Can be implemented by deriving from Extensible. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Retrieves the extension object for the current - instance, optionally creating it if it does not already exist. - - Should a new extension object be - created if it does not already exist? - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Provides a simple, default implementation for extension support, - optionally creating it if it does not already exist. Designed to be called by - classes implementing . - - Should a new extension object be - created if it does not already exist? - The extension field to check (and possibly update). - The extension object if it exists (or was created), or null - if the extension object does not exist or is not available. - The createIfMissing argument is false during serialization, - and true during deserialization upon encountering unexpected fields. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The type of the value to append. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The data-type of the field. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned is the composed value after merging any duplicated content; if the - value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - The effective value of the field, or the default value if not found. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - The value returned (in "value") is the composed value after merging any duplicated content; - if the value is "repeated" (a list), then use GetValues instead. - - The data-type of the field. - The model to use for configuration. - The effective value of the field, or the default value if not found. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - Allow tags that are present as part of the definition; for example, to query unknown enum values. - True if data for the field was present, false otherwise. - - - - Queries an extensible object for an additional (unexpected) data-field for the instance. - Each occurrence of the field is yielded separately, making this usage suitable for "repeated" - (list) fields. - - The extended data is processed lazily as the enumerator is iterated. - The model to use for configuration. - The data-type of the field. - The extensible object to obtain the value from. - The field identifier; the tag should not be defined as a known data-field for the instance. - The data-format to use when decoding the value. - An enumerator that yields each occurrence of the field. - - - - Appends the value as an additional (unexpected) data-field for the instance. - Note that for non-repeated sub-objects, this equates to a merge operation; - for repeated sub-objects this adds a new instance to the set; for simple - values the new value supercedes the old value. - - Note that appending a value does not remove the old value from - the stream; avoid repeatedly appending values for the same field. - The model to use for configuration. - The data-format to use when encoding the value. - The extensible object to append the value to. - The field identifier; the tag should not be defined as a known data-field for the instance. - The value to append. - - - - This class acts as an internal wrapper allowing us to do a dynamic - methodinfo invoke; an't put into Serializer as don't want on public - API; can't put into Serializer<T> since we need to invoke - accross classes, which isn't allowed in Silverlight) - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - All this does is call GetExtendedValuesTyped with the correct type for "instance"; - this ensures that we don't get issues with subclasses declaring conflicting types - - the caller must respect the fields defined for the type they pass in. - - - - - Not all frameworks are created equal (fx1.1 vs fx2.0, - micro-framework, compact-framework, - silverlight, etc). This class simply wraps up a few things that would - otherwise make the real code unnecessarily messy, providing fallback - implementations if necessary. - - - - - Intended to be a direct map to regular TypeCode, but: - - with missing types - - existing on WinRT - - - - - Specifies the method used to infer field tags for members of the type - under consideration. Tags are deduced using the invariant alphabetic - sequence of the members' names; this makes implicit field tags very brittle, - and susceptible to changes such as field names (normally an isolated - change). - - - - - No members are serialized implicitly; all members require a suitable - attribute such as [ProtoMember]. This is the recmomended mode for - most scenarios. - - - - - Public properties and fields are eligible for implicit serialization; - this treats the public API as a contract. Ordering beings from ImplicitFirstTag. - - - - - Public and non-public fields are eligible for implicit serialization; - this acts as a state/implementation serializer. Ordering beings from ImplicitFirstTag. - - - - - Represents the set of serialization callbacks to be used when serializing/deserializing a type. - - - - Called before serializing an instance - - - Called before deserializing an instance - - - Called after serializing an instance - - - Called after deserializing an instance - - - - True if any callback is set, else False - - - - - Represents a type at runtime for use with protobuf, allowing the field mappings (etc) to be defined - - - - - Get the name of the type being represented - - - - - Adds a known sub-type to the inheritance model - - - - - Adds a known sub-type to the inheritance model - - - - - Assigns the callbacks to use during serialiation/deserialization. - - The method (or null) called before serialization begins. - The method (or null) called when serialization is complete. - The method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The method (or null) called when deserialization is complete. - The set of callbacks. - - - - Assigns the callbacks to use during serialiation/deserialization. - - The name of the method (or null) called before serialization begins. - The name of the method (or null) called when serialization is complete. - The name of the method (or null) called before deserialization begins (or when a new instance is created during deserialization). - The name of the method (or null) called when deserialization is complete. - The set of callbacks. - - - - Designate a factory-method to use to create instances of this type - - - - - Designate a factory-method to use to create instances of this type - - - - - Throws an exception if the type has been made immutable - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Adds a member (by name) to the MetaType - - - - - Performs serialization of this type via a surrogate; all - other serialization options are ignored and handled - by the surrogate's configuration. - - - - - Adds a set of members (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists - - - - - Adds a member (by name) to the MetaType, including an itemType and defaultType for representing lists, returning the ValueMember rather than the fluent API. - This is otherwise identical to Add. - - - - - Returns the ValueMember instances associated with this type - - - - - Returns the SubType instances associated with this type - - - - - Compiles the serializer for this type; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Gets the base-type for this type - - - - - When used to compile a model, should public serialization/deserialzation methods - be included for this type? - - - - - Should this type be treated as a reference by default? - - - - - Indicates whether the current type has defined callbacks - - - - - Indicates whether the current type has defined subtypes - - - - - Returns the set of callbacks defined for this type - - - - - Gets or sets the name of this contract. - - - - - The runtime type that the meta-type represents - - - - - Gets or sets whether the type should use a parameterless constructor (the default), - or whether the type should skip the constructor completely. This option is not supported - on compact-framework. - - - - - The concrete type to create when a new instance of this type is needed; this may be useful when dealing - with dynamic proxies, or with interface-based APIs - - - - - Returns the ValueMember that matchs a given field number, or null if not found - - - - - Returns the ValueMember that matchs a given member (property/field), or null if not found - - - - - Gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Gets or sets a value indicating that this type should NOT be treated as a list, even if it has - familiar list-like characteristics (enumerable, add, etc) - - - - - Provides protobuf serialization support for a number of types that can be defined at runtime - - - - - Provides protobuf serialization support for a number of types - - - - - Resolve a System.Type to the compiler-specific type - - - - - Resolve a System.Type to the compiler-specific type - - - - - This is the more "complete" version of Serialize, which handles single instances of mapped types. - The value is written as a complete field, including field-header and (for sub-objects) a - length-prefix - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IEnumerable sequences of any type handled by TrySerializeAuxiliaryType - - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied writer. - - The existing instance to be serialized (cannot be null). - The destination writer to write to. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Used to resolve types on a per-field basis. - Returns the number of bytes consumed by this operation (includes length-prefix overheads and any skipped data). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - On a field-by-field basis, the type of object to deserialize (can be null if "type" is specified). - The type of object to deserialize (can be null if "resolver" is specified). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - Additional information about this serialization operation. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The number of bytes to consume (or -1 to read to the end of the stream). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - Additional information about this serialization operation. - - - - Applies a protocol-buffer reader to an existing instance (which may be null). - - The type (including inheritance) to consider. - The existing instance to be modified (can be null). - The reader to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - This is the more "complete" version of Deserialize, which handles single instances of mapped types. - The value is read as a complete field, including field-header and (for sub-objects) a - length-prefix..kmc - - In addition to that, this provides support for: - - basic values; individual int / string / Guid / etc - - IList sets of any type handled by TryDeserializeAuxiliaryType - - - - - Creates a new runtime model, to which the caller - can add support for a range of types. A model - can be used "as is", or can be compiled for - optimal performance. - - - - - Applies common proxy scenarios, resolving the actual type to consider - - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Provides the key that represents a given type in the current model. - The type is also normalized for proxies at the same time. - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Indicates that while an inheritance tree exists, the exact type encountered was not - specified in that hierarchy and cannot be processed. - - - - - Indicates that the given type was not expected, and cannot be processed. - - - - - Indicates that the given type cannot be constructed; it may still be possible to - deserialize into existing instances. - - - - - Returns true if the type supplied is either a recognised contract type, - or a *list* of a recognised contract type. - - Note that primitives always return false, even though the engine - will, if forced, try to serialize such - True if this type is recognised as a serializable entity, else false - - - - Returns true if the type supplied is a basic type with inbuilt handling, - a recognised contract type, or a *list* of a basic / contract type. - - - - - Returns true if the type supplied is a basic type with inbuilt handling, - or a *list* of a basic type with inbuilt handling - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Used to provide custom services for writing and parsing type names when using dynamic types. Both parsing and formatting - are provided on a single API as it is essential that both are mapped identically at all times. - - - - - Indicates the type of callback to be used - - - - - Invoked before an object is serialized - - - - - Invoked after an object is serialized - - - - - Invoked before an object is deserialized (or when a new instance is created) - - - - - Invoked after an object is deserialized - - - - - Returns a sequence of the Type instances that can be - processed by this model. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for, or null to generate a .proto that represents the entire model - The .proto definition as a string - - - - Adds support for an additional type in this model, optionally - appplying inbuilt patterns. If the type is already known to the - model, the existing type is returned **without** applying - any additional behaviour. - - Inbuilt patterns include: - [ProtoContract]/[ProtoMember(n)] - [DataContract]/[DataMember(Order=n)] - [XmlType]/[XmlElement(Order=n)] - [On{Des|S}erializ{ing|ed}] - ShouldSerialize*/*Specified - - The type to be supported - Whether to apply the inbuilt configuration patterns (via attributes etc), or - just add the type with no additional configuration (the type must then be manually configured). - The MetaType representing this type, allowing - further configuration. - - - - Verifies that the model is still open to changes; if not, an exception is thrown - - - - - Prevents further changes to this model - - - - - Provides the key that represents a given type in the current model. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - Represents the type (including inheritance) to consider. - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Applies a protocol-buffer stream to an existing instance (which may be null). - - Represents the type (including inheritance) to consider. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Compiles the serializers individually; this is *not* a full - standalone compile, but can significantly boost performance - while allowing additional types to be added. - - An in-place compile can access non-public types / members - - - - Designate a factory-method to use to create instances of any type; note that this only affect types seen by the serializer *after* setting the factory. - - - - - Global default that - enables/disables automatic tag generation based on the existing name / order - of the defined members. See - for usage and important warning / explanation. - You must set the global default before attempting to serialize/deserialize any - impacted type. - - - - - Global default that determines whether types are considered serializable - if they have [DataContract] / [XmlType]. With this enabled, ONLY - types marked as [ProtoContract] are added automatically. - - - - - Global switch that enables or disables the implicit - handling of "zero defaults"; meanning: if no other default is specified, - it assumes bools always default to false, integers to zero, etc. - - If this is disabled, no such assumptions are made and only *explicit* - default values are processed. This is enabled by default to - preserve similar logic to v1. - - - - - Global switch that determines whether types with a .ToString() and a Parse(string) - should be serialized as strings. - - - - - The default model, used to support ProtoBuf.Serializer - - - - - Obtains the MetaType associated with a given Type for the current model, - allowing additional configuration. - - - - - Should serializers be compiled on demand? It may be useful - to disable this for debugging purposes. - - - - - Should support for unexpected types be added automatically? - If false, an exception is thrown when unexpected types - are encountered. - - - - - The amount of time to wait if there are concurrent metadata access operations - - - - - If a lock-contention is detected, this event signals the *owner* of the lock responsible for the blockage, indicating - what caused the problem; this is only raised if the lock-owning code successfully completes. - - - - - Contains the stack-trace of the owning code when a lock-contention scenario is detected - - - - - The stack-trace of the code that owned the lock when a lock-contention scenario occurred - - - - - Event-type that is raised when a lock-contention scenario is detected - - - - - Represents an inherited type in a type hierarchy. - - - - - Creates a new SubType instance. - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - The sub-type to be considered. - Specific encoding style to use; in particular, Grouped can be used to avoid buffering, but is not the default. - - - - The field-number that is used to encapsulate the data (as a nested - message) for the derived dype. - - - - - The sub-type to be considered. - - - - - Event arguments needed to perform type-formatting functions; this could be resolving a Type to a string suitable for serialization, or could - be requesting a Type from a string. If no changes are made, a default implementation will be used (from the assembly-qualified names). - - - - - The type involved in this map; if this is initially null, a Type is expected to be provided for the string in FormattedName. - - - - - The formatted-name involved in this map; if this is initially null, a formatted-name is expected from the type in Type. - - - - - Delegate type used to perform type-formatting functions; the sender originates as the type-model. - - - - - Represents a member (property/field) that is mapped to a protobuf field - - - - - Creates a new ValueMember instance - - - - - Creates a new ValueMember instance - - - - - Specifies methods for working with optional data members. - - Provides a method (null for none) to query whether this member should - be serialized; it must be of the form "bool {Method}()". The member is only serialized if the - method returns true. - Provides a method (null for none) to indicate that a member was - deserialized; it must be of the form "void {Method}(bool)", and will be called with "true" - when data is found. - - - - The number that identifies this member in a protobuf stream - - - - - Gets the member (field/property) which this member relates to. - - - - - Within a list / array / etc, the type of object for each item in the list (especially useful with ArrayList) - - - - - The underlying type of the member - - - - - For abstract types (IList etc), the type of concrete object to create (if required) - - - - - The type the defines the member - - - - - The default value of the item (members with this value will not be serialized) - - - - - Specifies the rules used to process the field; this is used to determine the most appropriate - wite-type, but also to describe subtypes within that wire-type (such as SignedVariant) - - - - - Indicates whether this field should follow strict encoding rules; this means (for example) that if a "fixed32" - is encountered when "variant" is defined, then it will fail (throw an exception) when parsing. Note that - when serializing the defined type is always used. - - - - - Indicates whether this field should use packed encoding (which can save lots of space for repeated primitive values). - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Indicates whether this field is mandatory. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets the logical name for this member in the schema (this is not critical for binary serialization, but may be used - when inferring a schema). - - - - - Should lists have extended support for null values? Note this makes the serialization less efficient. - - - - - Specifies the type of prefix that should be applied to messages. - - - - - No length prefix is applied to the data; the data is terminated only be the end of the stream. - - - - - A base-128 length prefix is applied to the data (efficient for short messages). - - - - - A fixed-length (little-endian) length prefix is applied to the data (useful for compatibility). - - - - - A fixed-length (big-endian) length prefix is applied to the data (useful for compatibility). - - - - - Indicates that a type is defined for protocol-buffer serialization. - - - - - Gets or sets the defined name of the type. - - - - - Gets or sets the fist offset to use with implicit field tags; - only uesd if ImplicitFields is set. - - - - - If specified, alternative contract markers (such as markers for XmlSerailizer or DataContractSerializer) are ignored. - - - - - If specified, do NOT treat this type as a list, even if it looks like one. - - - - - Gets or sets the mechanism used to automatically infer field tags - for members. This option should be used in advanced scenarios only. - Please review the important notes against the ImplicitFields enumeration. - - - - - Enables/disables automatic tag generation based on the existing name / order - of the defined members. This option is not used for members marked - with ProtoMemberAttribute, as intended to provide compatibility with - WCF serialization. WARNING: when adding new fields you must take - care to increase the Order for new elements, otherwise data corruption - may occur. - - If not explicitly specified, the default is assumed from Serializer.GlobalOptions.InferTagFromName. - - - - Has a InferTagFromName value been explicitly set? if not, the default from the type-model is assumed. - - - - - Specifies an offset to apply to [DataMember(Order=...)] markers; - this is useful when working with mex-generated classes that have - a different origin (usually 1 vs 0) than the original data-contract. - - This value is added to the Order of each member. - - - - - If true, the constructor for the type is bypassed during deserialization, meaning any field initializers - or other initialization code is skipped. - - - - - Should this type be treated as a reference by default? Please also see the implications of this, - as recorded on ProtoMemberAttribute.AsReference - - - - - Applies only to enums (not to DTO classes themselves); gets or sets a value indicating that an enum should be treated directly as an int/short/etc, rather - than enforcing .proto enum rules. This is useful *in particul* for [Flags] enums. - - - - - Has a EnumPassthru value been explicitly set? - - - - - Used to define protocol-buffer specific behavior for - enumerated values. - - - - - Indicates whether this instance has a customised value mapping - - true if a specific value is set - - - - Gets or sets the specific value to use for this enum during serialization. - - - - - Gets or sets the defined name of the enum, as used in .proto - (this name is not used during serialization). - - - - - Indicates an error during serialization/deserialization of a proto stream. - - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - Creates a new ProtoException instance. - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. - - - - - Indicates that a member should be excluded from serialization; this - is only normally used when using implict fields. This allows - ProtoIgnoreAttribute usage - even for partial classes where the individual members are not - under direct control. - - - - - Creates a new ProtoPartialIgnoreAttribute instance. - - Specifies the member to be ignored. - - - - The name of the member to be ignored. - - - - - Indicates the known-types to support for an individual - message. This serializes each level in the hierarchy as - a nested message to retain wire-compatibility with - other protocol-buffer implementations. - - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Creates a new instance of the ProtoIncludeAttribute. - - The unique index (within the type) that will identify this data. - The additional type to serialize/deserialize. - - - - Gets the unique index (within the type) that will identify this data. - - - - - Gets the additional type to serialize/deserialize. - - - - - Gets the additional type to serialize/deserialize. - - - - - Specifies whether the inherited sype's sub-message should be - written with a length-prefix (default), or with group markers. - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag. A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Compare with another ProtoMemberAttribute for sorting purposes - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - - - - Gets or sets the original name defined in the .proto; not used - during serialization. - - - - - Gets or sets the data-format to be used when encoding this value. - - - - - Gets the unique tag used to identify this member within the type. - - - - - Gets or sets a value indicating whether this member is mandatory. - - - - - Gets a value indicating whether this member is packed. - This option only applies to list/array data of primitive types (int, double, etc). - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Enables full object-tracking/full-graph support. - - - - - Embeds the type information into the stream, allowing usage with types not known in advance. - - - - - Gets or sets a value indicating whether this member is packed (lists/arrays). - - - - - Additional (optional) settings that control serialization of members - - - - - Default; no additional options - - - - - Indicates that repeated elements should use packed (length-prefixed) encoding - - - - - Indicates that the given item is required - - - - - Enables full object-tracking/full-graph support - - - - - Embeds the type information into the stream, allowing usage with types not known in advance - - - - - Indicates whether this field should *repace* existing values (the default is false, meaning *append*). - This option only applies to list/array data. - - - - - Determines whether the types AsReferenceDefault value is used, or whether this member's AsReference should be used - - - - - Declares a member to be used in protocol-buffer serialization, using - the given Tag and MemberName. This allows ProtoMemberAttribute usage - even for partial classes where the individual members are not - under direct control. - A DataFormat may be used to optimise the serialization - format (for instance, using zigzag encoding for negative numbers, or - fixed-length encoding for large values. - - - - - Creates a new ProtoMemberAttribute instance. - - Specifies the unique tag used to identify this member within the type. - Specifies the member to be serialized. - - - - The name of the member to be serialized. - - - - - A stateful reader, used to read a protobuf stream. Typical usage would be (sequentially) to call - ReadFieldHeader and (after matching the field) an appropriate Read* method. - - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - - - - Creates a new reader against a stream - - The source stream - The model to use for serialization; this can be null, but this will impair the ability to deserialize sub-objects - Additional context about this serialization operation - The number of bytes to read, or -1 to read until the end of the stream - - - - Releases resources used by the reader, but importantly does not Dispose the - underlying stream; in many typical use-cases the stream is used for different - processes, so it is assumed that the consumer will Dispose their stream separately. - - - - - Reads an unsigned 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 16-bit integer from the stream: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads an unsigned 16-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads an unsigned 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a signed 8-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 32-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a signed 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Reads a string from the stream (using UTF8); supported wire-types: String - - - - - Throws an exception indication that the given value cannot be mapped to an enum. - - - - - Reads a double-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads (merges) a sub-message from the stream, internally calling StartSubItem and EndSubItem, and (in between) - parsing the message in accordance with the model associated with the reader - - - - - Makes the end of consuming a nested message in the stream; the stream must be either at the correct EndGroup - marker, or all fields of the sub-message must have been consumed (in either case, this means ReadFieldHeader - should return zero) - - - - - Begins consuming a nested message in the stream; supported wire-types: StartGroup, String - - The token returned must be help and used when callining EndSubItem - - - - Reads a field header from the stream, setting the wire-type and retuning the field number. If no - more fields are available, then 0 is returned. This methods respects sub-messages. - - - - - Looks ahead to see whether the next field in the stream is what we expect - (typically; what we've just finished reading - for example ot read successive list items) - - - - - Compares the streams current wire-type to the hinted wire-type, updating the reader if necessary; for example, - a Variant may be updated to SignedVariant. If the hinted wire-type is unrelated then no change is made. - - - - - Verifies that the stream's current wire-type is as expected, or a specialized sub-type (for example, - SignedVariant) - in which case the current wire-type is updated. Otherwise an exception is thrown. - - - - - Discards the data for the current field. - - - - - Reads an unsigned 64-bit integer from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Reads a single-precision number from the stream; supported wire-types: Fixed32, Fixed64 - - - - - Reads a boolean value from the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - - Reads a byte-sequence from the stream, appending them to an existing byte-sequence (which can be null); supported wire-types: String - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - - Reads a little-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a big-endian encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a varint encoded integer. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source into a pre-existing buffer. An exception is thrown if the data is not all available. - - - - - Reads a given number of bytes directly from the source. An exception is thrown if the data is not all available. - - - - - Reads a string (of a given lenth, in bytes) directly from the source. An exception is thrown if the data is not all available. - - - - - Reads the length-prefix of a message from a stream without buffering additional data, allowing a fixed-length - reader to be created. - - - - The number of bytes consumed; 0 if no data available - - - - Copies the current field into the instance as extension data - - - - - Indicates whether the reader still has data remaining in the current sub-item, - additionally setting the wire-type for the next field if there is more data. - This is used when decoding packed data. - - - - - Utility method, not intended for public use; this helps maintain the root object is complex scenarios - - - - - Reads a Type from the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Merge two objects using the details from the current reader; this is used to change the type - of objects when an inheritance relationship is discovered later than usual during deserilazation. - - - - - Gets the number of the field being processed. - - - - - Indicates the underlying proto serialization format on the wire. - - - - - Gets / sets a flag indicating whether strings should be checked for repetition; if - true, any repeated UTF-8 byte sequence will result in the same String instance, rather - than a second instance of the same string. Enabled by default. Note that this uses - a custom interner - the system-wide string interner is not used. - - - - - Addition information about this deserialization operation. - - - - - Returns the position of the current reader (note that this is not necessarily the same as the position - in the underlying stream, if multiple readers are used on the same stream) - - - - - Get the TypeModel associated with this reader - - - - - Represents an output stream for writing protobuf data. - - Why is the API backwards (static methods with writer arguments)? - See: http://marcgravell.blogspot.com/2010/03/last-will-be-first-and-first-will-be.html - - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type). - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Write an encapsulated sub-object, using the supplied unique key (reprasenting a type) - but the - caller is asserting that this relationship is non-recursive; no recursion check will be - performed. - - The object to write. - The key that uniquely identifies the type within the model. - The destination. - - - - Writes a field-header, indicating the format of the next data we plan to write. - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Writes a byte-array to the stream; supported wire-types: String - - - - - Indicates the start of a nested record. - - The instance to write. - The destination. - A token representing the state of the stream; this token is given to EndSubItem. - - - - Indicates the end of a nested record. - - The token obtained from StartubItem. - The destination. - - - - Creates a new writer against a stream - - The destination stream - The model to use for serialization; this can be null, but this will impair the ability to serialize sub-objects - Additional context about this serialization operation - - - - Flushes data to the underlying stream, and releases any resources. The underlying stream is *not* disposed - by this operation. - - - - - Writes any buffered data (if possible) to the underlying stream. - - The writer to flush - It is not always possible to fully flush, since some sequences - may require values to be back-filled into the byte-stream. - - - - Writes an unsigned 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a string to the stream; supported wire-types: String - - - - - Writes an unsigned 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 64-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes an unsigned 16-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes an unsigned 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Writes a signed 8-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a signed 32-bit integer to the stream; supported wire-types: Variant, Fixed32, Fixed64, SignedVariant - - - - - Writes a double-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Writes a single-precision number to the stream; supported wire-types: Fixed32, Fixed64 - - - - - Throws an exception indicating that the given enum cannot be mapped to a serialized value. - - - - - Writes a boolean to the stream; supported wire-types: Variant, Fixed32, Fixed64 - - - - - Copies any extension data stored for the instance to the underlying stream - - - - - Used for packed encoding; indicates that the next field should be skipped rather than - a field header written. Note that the field number must match, else an exception is thrown - when the attempt is made to write the (incorrect) field. The wire-type is taken from the - subsequent call to WriteFieldHeader. Only primitive types can be packed. - - - - - Specifies a known root object to use during reference-tracked serialization - - - - - Writes a Type to the stream, using the model's DynamicTypeFormatting if appropriate; supported wire-types: String - - - - - Addition information about this serialization operation. - - - - - Get the TypeModel associated with this writer - - - - - Additional information about a serialization operation - - - - - Convert a SerializationContext to a StreamingContext - - - - - Convert a StreamingContext to a SerializationContext - - - - - Gets or sets a user-defined object containing additional information about this serialization/deserialization operation. - - - - - A default SerializationContext, with minimal information. - - - - - Provides protocol-buffer serialization capability for concrete, attributed types. This - is a *default* model, but custom serializer models are also supported. - - - Protocol-buffer serialization is a compact binary format, designed to take - advantage of sparse data and knowledge of specific data types; it is also - extensible, allowing a type to be deserialized / merged even if some data is - not recognised. - - - - - The field number that is used as a default when serializing/deserializing a list of objects. - The data is treated as repeated message with field number 1. - - - - - Suggest a .proto definition for the given type - - The type to generate a .proto definition for - The .proto definition as a string - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Applies a protocol-buffer stream to an existing instance. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Serializes a given instance and deserializes it as a different type; - this can be used to translate between wire-compatible objects (where - two .NET types represent the same data), or to promote/demote a type - through an inheritance hierarchy. - - No assumption of compatibility is made between the types. - The type of the object being copied. - The type of the new object to be created. - The existing instance to use as a template. - A new instane of type TNewType, with the data from TOldType. - - - - Precompiles the serializer for a given type. - - - - - Reads a sequence of consecutive length-prefixed items from a stream, using - either base-128 or fixed-length prefixes. Base-128 prefixes with a tag - are directly comparable to serializing multiple items in succession - (use the tag to emulate the implicit behavior - when serializing a list/array). When a tag is - specified, any records with different tags are silently omitted. The - tag is ignored. The tag is ignores for fixed-length prefixes. - - The type of object to deserialize. - The binary stream containing the serialized records. - The prefix style used in the data. - The tag of records to return (if non-positive, then no tag is - expected and all records are returned). - The sequence of deserialized objects. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - A new, initialized instance. - - - - Creates a new instance from a protocol-buffer stream that has a length-prefix - on data (to assist with network IO). - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - How to encode the length prefix. - The expected tag of the item (only used with base-128 prefix style). - A new, initialized instance. - - - - Applies a protocol-buffer stream to an existing instance, using length-prefixed - data - useful with network IO. - - The type being merged. - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The type being serialized. - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - Indicates the number of bytes expected for the next message. - The stream containing the data to investigate for a length. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - Indicates the number of bytes expected for the next message. - The buffer containing the data to investigate for a length. - The offset of the first byte to read from the buffer. - The number of bytes to read from the buffer. - The algorithm used to encode the length. - The length of the message, if it could be identified. - True if a length could be obtained, false otherwise. - - - - Releases any internal buffers that have been reserved for efficiency; this does not affect any serialization - operations; simply: it can be used (optionally) to release the buffers for garbage collection (at the expense - of having to re-allocate a new buffer for the next operation, rather than re-use prior buffers). - - - - - Provides non-generic access to the default serializer. - - - - - Create a deep clone of the supplied instance; any sub-items are also cloned. - - - - - Writes a protocol-buffer representation of the given instance to the supplied stream. - - The existing instance to be serialized (cannot be null). - The destination stream to write to. - - - - Creates a new instance from a protocol-buffer stream - - The type to be created. - The binary stream to apply to the new instance (cannot be null). - A new, initialized instance. - - - Applies a protocol-buffer stream to an existing instance. - The existing instance to be modified (cannot be null). - The binary stream to apply to the instance (cannot be null). - The updated instance - - - - Writes a protocol-buffer representation of the given instance to the supplied stream, - with a length-prefix. This is useful for socket programming, - as DeserializeWithLengthPrefix/MergeWithLengthPrefix can be used to read the single object back - from an ongoing stream. - - The existing instance to be serialized (cannot be null). - How to encode the length prefix. - The destination stream to write to. - The tag used as a prefix to each record (only used with base-128 style prefixes). - - - - Applies a protocol-buffer stream to an existing instance (or null), using length-prefixed - data - useful with network IO. - - The existing instance to be modified (can be null). - The binary stream to apply to the instance (cannot be null). - How to encode the length prefix. - Used to resolve types on a per-field basis. - The updated instance; this may be different to the instance argument if - either the original instance was null, or the stream defines a known sub-type of the - original instance. - - - - Indicates whether the supplied type is explicitly modelled by the model - - - - - Global switches that change the behavior of protobuf-net - - - - - - - - - - Maps a field-number to a type - - - - - Perform the steps necessary to serialize this data. - - The value to be serialized. - The writer entity that is accumulating the output data. - - - - Perform the steps necessary to deserialize this data. - - The current value, if appropriate. - The reader providing the input data. - The updated / replacement value. - - - Emit the IL necessary to perform the given actions - to serialize this data. - - Details and utilities for the method being generated. - The source of the data to work against; - If the value is only needed once, then LoadValue is sufficient. If - the value is needed multiple times, then note that a "null" - means "the top of the stack", in which case you should create your - own copy - GetLocalWithValue. - - - - Emit the IL necessary to perform the given actions to deserialize this data. - - Details and utilities for the method being generated. - For nested values, the instance holding the values; note - that this is not always provided - a null means not supplied. Since this is always - a variable or argument, it is not necessary to consume this value. - - - - The type that this serializer is intended to work for. - - - - - Indicates whether a Read operation replaces the existing value, or - extends the value. If false, the "value" parameter to Read is - discarded, and should be passed in as null. - - - - - Now all Read operations return a value (although most do); if false no - value should be expected. - - - - - An xml object serializer that can embed protobuf data in a base-64 hunk (looking like a byte[]) - - - - - Attempt to create a new serializer for the given model and type - - A new serializer instance if the type is recognised by the model; null otherwise - - - - Creates a new serializer for the given model and type - - - - - Ends an object in the output - - - - - Begins an object in the output - - - - - Writes the body of an object in the output - - - - - Indicates whether this is the start of an object we are prepared to handle - - - - - Reads the body of an object - - - - - Used to hold particulars relating to nested objects. This is opaque to the caller - simply - give back the token you are given at the end of an object. - - - - - Indicates the encoding used to represent an individual value in a protobuf stream - - - - - Represents an error condition - - - - - Base-128 variant-length encoding - - - - - Fixed-length 8-byte encoding - - - - - Length-variant-prefixed encoding - - - - - Indicates the start of a group - - - - - Indicates the end of a group - - - - - Fixed-length 4-byte encoding - 10 - - - - This is not a formal wire-type in the "protocol buffers" spec, but - denotes a variant integer that should be interpreted using - zig-zag semantics (so -ve numbers aren't a significant overhead) - - - - diff --git a/packages/protobuf-net.2.0.0.668/protobuf-net.2.0.0.668.nupkg b/packages/protobuf-net.2.0.0.668/protobuf-net.2.0.0.668.nupkg deleted file mode 100644 index 7a6be56da..000000000 Binary files a/packages/protobuf-net.2.0.0.668/protobuf-net.2.0.0.668.nupkg and /dev/null differ diff --git a/packages/protobuf-net.2.1.0/lib/net40/protobuf-net.dll b/packages/protobuf-net.2.1.0/lib/net40/protobuf-net.dll new file mode 100644 index 000000000..94084e534 Binary files /dev/null and b/packages/protobuf-net.2.1.0/lib/net40/protobuf-net.dll differ diff --git a/packages/protobuf-net.2.1.0/lib/net45/protobuf-net.dll b/packages/protobuf-net.2.1.0/lib/net45/protobuf-net.dll new file mode 100644 index 000000000..a68a9372f Binary files /dev/null and b/packages/protobuf-net.2.1.0/lib/net45/protobuf-net.dll differ diff --git a/packages/protobuf-net.2.1.0/lib/net451/protobuf-net.dll b/packages/protobuf-net.2.1.0/lib/net451/protobuf-net.dll new file mode 100644 index 000000000..e455ac73c Binary files /dev/null and b/packages/protobuf-net.2.1.0/lib/net451/protobuf-net.dll differ diff --git a/packages/protobuf-net.2.1.0/lib/netstandard1.3/protobuf-net.dll b/packages/protobuf-net.2.1.0/lib/netstandard1.3/protobuf-net.dll new file mode 100644 index 000000000..4d462edb6 Binary files /dev/null and b/packages/protobuf-net.2.1.0/lib/netstandard1.3/protobuf-net.dll differ diff --git a/packages/protobuf-net.2.1.0/lib/netstandard1.5/protobuf-net.dll b/packages/protobuf-net.2.1.0/lib/netstandard1.5/protobuf-net.dll new file mode 100644 index 000000000..712e40830 Binary files /dev/null and b/packages/protobuf-net.2.1.0/lib/netstandard1.5/protobuf-net.dll differ diff --git a/packages/protobuf-net.2.1.0/protobuf-net.2.1.0.nupkg b/packages/protobuf-net.2.1.0/protobuf-net.2.1.0.nupkg new file mode 100644 index 000000000..3e6367d4b Binary files /dev/null and b/packages/protobuf-net.2.1.0/protobuf-net.2.1.0.nupkg differ