diff --git a/.vs/BenchMarking/BenchMarking.scgdat b/.vs/BenchMarking/BenchMarking.scgdat new file mode 100644 index 0000000..d1e3dfa Binary files /dev/null and b/.vs/BenchMarking/BenchMarking.scgdat differ diff --git a/.vs/BosonProtocol/BosonProtocol.scgdat b/.vs/BosonProtocol/BosonProtocol.scgdat new file mode 100644 index 0000000..50d84c3 Binary files /dev/null and b/.vs/BosonProtocol/BosonProtocol.scgdat differ diff --git a/.vs/BosonProtocol/CodeMAP.dat b/.vs/BosonProtocol/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/BosonProtocol/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/ClientExtensionsBase/ClientExtensionsBase.scgdat b/.vs/ClientExtensionsBase/ClientExtensionsBase.scgdat new file mode 100644 index 0000000..32fd494 Binary files /dev/null and b/.vs/ClientExtensionsBase/ClientExtensionsBase.scgdat differ diff --git a/.vs/ClientExtensionsBase/CodeMAP.dat b/.vs/ClientExtensionsBase/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/ClientExtensionsBase/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/ClientExtensionsBase/Supercharger.dat b/.vs/ClientExtensionsBase/Supercharger.dat new file mode 100644 index 0000000..50808fe Binary files /dev/null and b/.vs/ClientExtensionsBase/Supercharger.dat differ diff --git a/.vs/ClientGamePlugin/Supercharger.dat b/.vs/ClientGamePlugin/Supercharger.dat new file mode 100644 index 0000000..908e5b0 Binary files /dev/null and b/.vs/ClientGamePlugin/Supercharger.dat differ diff --git a/.vs/ClientPluginBase/CodeMAP.dat b/.vs/ClientPluginBase/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/ClientPluginBase/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/ClientPluginBase/Supercharger.dat b/.vs/ClientPluginBase/Supercharger.dat new file mode 100644 index 0000000..c4d4cc1 Binary files /dev/null and b/.vs/ClientPluginBase/Supercharger.dat differ diff --git a/.vs/GameBasePlugin/CodeMAP.dat b/.vs/GameBasePlugin/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/GameBasePlugin/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/GameBasePlugin/Supercharger.dat b/.vs/GameBasePlugin/Supercharger.dat new file mode 100644 index 0000000..a32a648 Binary files /dev/null and b/.vs/GameBasePlugin/Supercharger.dat differ diff --git a/.vs/HttpServer/HttpServer.scgdat b/.vs/HttpServer/HttpServer.scgdat new file mode 100644 index 0000000..d37d625 Binary files /dev/null and b/.vs/HttpServer/HttpServer.scgdat differ diff --git a/.vs/Launcher/CodeMAP.dat b/.vs/Launcher/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/Launcher/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/Launcher/Supercharger.dat b/.vs/Launcher/Supercharger.dat new file mode 100644 index 0000000..f667f6b Binary files /dev/null and b/.vs/Launcher/Supercharger.dat differ diff --git a/.vs/ObjectsPool/CodeMAP.dat b/.vs/ObjectsPool/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/ObjectsPool/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/ObjectsPool/ObjectsPool.scgdat b/.vs/ObjectsPool/ObjectsPool.scgdat new file mode 100644 index 0000000..118a31f Binary files /dev/null and b/.vs/ObjectsPool/ObjectsPool.scgdat differ diff --git a/.vs/ObjectsPool/Supercharger.dat b/.vs/ObjectsPool/Supercharger.dat new file mode 100644 index 0000000..40636d1 Binary files /dev/null and b/.vs/ObjectsPool/Supercharger.dat differ diff --git a/.vs/Plugin/Plugin.scgdat b/.vs/Plugin/Plugin.scgdat new file mode 100644 index 0000000..3e5598e Binary files /dev/null and b/.vs/Plugin/Plugin.scgdat differ diff --git a/.vs/PluginBase/CodeMAP.dat b/.vs/PluginBase/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/PluginBase/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/PluginBase/PluginBase.scgdat b/.vs/PluginBase/PluginBase.scgdat new file mode 100644 index 0000000..1d80607 Binary files /dev/null and b/.vs/PluginBase/PluginBase.scgdat differ diff --git a/.vs/PluginBase/Supercharger.dat b/.vs/PluginBase/Supercharger.dat new file mode 100644 index 0000000..686cfa9 Binary files /dev/null and b/.vs/PluginBase/Supercharger.dat differ diff --git a/.vs/PluginLauncher/CodeMAP.dat b/.vs/PluginLauncher/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/PluginLauncher/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/PluginLauncher/PluginLauncher.scgdat b/.vs/PluginLauncher/PluginLauncher.scgdat new file mode 100644 index 0000000..f37c173 Binary files /dev/null and b/.vs/PluginLauncher/PluginLauncher.scgdat differ diff --git a/.vs/PluginLauncher/Supercharger.dat b/.vs/PluginLauncher/Supercharger.dat new file mode 100644 index 0000000..d78f65b Binary files /dev/null and b/.vs/PluginLauncher/Supercharger.dat differ diff --git a/.vs/QuaternionProtocol/CodeMAP.dat b/.vs/QuaternionProtocol/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/QuaternionProtocol/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/QuaternionProtocol/Supercharger.dat b/.vs/QuaternionProtocol/Supercharger.dat new file mode 100644 index 0000000..08e3b6e Binary files /dev/null and b/.vs/QuaternionProtocol/Supercharger.dat differ diff --git a/.vs/QuaternionServer/ClientExtensionsBase.scgdat b/.vs/QuaternionServer/ClientExtensionsBase.scgdat new file mode 100644 index 0000000..7985ef6 Binary files /dev/null and b/.vs/QuaternionServer/ClientExtensionsBase.scgdat differ diff --git a/.vs/SocketServer/CodeMAP.dat b/.vs/SocketServer/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/SocketServer/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/SocketServer/SocketServer.scgdat b/.vs/SocketServer/SocketServer.scgdat new file mode 100644 index 0000000..b2fbdd6 Binary files /dev/null and b/.vs/SocketServer/SocketServer.scgdat differ diff --git a/.vs/SocketServer/Supercharger.dat b/.vs/SocketServer/Supercharger.dat new file mode 100644 index 0000000..7c01f2c Binary files /dev/null and b/.vs/SocketServer/Supercharger.dat differ diff --git a/.vs/SocketServerBase/SocketServerBase.scgdat b/.vs/SocketServerBase/SocketServerBase.scgdat new file mode 100644 index 0000000..69d7d48 Binary files /dev/null and b/.vs/SocketServerBase/SocketServerBase.scgdat differ diff --git a/.vs/SocketServerClient/CodeMAP.dat b/.vs/SocketServerClient/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/SocketServerClient/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/SocketServerClient/Supercharger.dat b/.vs/SocketServerClient/Supercharger.dat new file mode 100644 index 0000000..9ead515 Binary files /dev/null and b/.vs/SocketServerClient/Supercharger.dat differ diff --git a/.vs/SocketServerLauncher/CodeMAP.dat b/.vs/SocketServerLauncher/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/SocketServerLauncher/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/SocketServerLauncher/Supercharger.dat b/.vs/SocketServerLauncher/Supercharger.dat new file mode 100644 index 0000000..6854ee8 Binary files /dev/null and b/.vs/SocketServerLauncher/Supercharger.dat differ diff --git a/.vs/Supercharger/ClientExtensionsBase/codemap.dat b/.vs/Supercharger/ClientExtensionsBase/codemap.dat new file mode 100644 index 0000000..b93068d --- /dev/null +++ b/.vs/Supercharger/ClientExtensionsBase/codemap.dat @@ -0,0 +1 @@ +ClientExtensionsBase \ No newline at end of file diff --git a/.vs/Supercharger/ClientExtensionsBase/global_history.dat b/.vs/Supercharger/ClientExtensionsBase/global_history.dat new file mode 100644 index 0000000..5decbb8 --- /dev/null +++ b/.vs/Supercharger/ClientExtensionsBase/global_history.dat @@ -0,0 +1 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\Binary\ClientSocketBase.csClientExtensionsBase.Binary.ClientSocketBase.Connect#OperationState#stringimg\xmethod-overridefalsetrueConnectClientExtensionsBase.Binary.ClientSocketBaseC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\ClientExtensionsBase.csprojC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\Binary\ClientSocketBase.cs2016-09-01T17:59:55.8890996+03:00C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\Binary\ClientSocketBase.csClientExtensionsBase \ No newline at end of file diff --git a/.vs/Supercharger/ClientExtensionsBase/workbench.dat b/.vs/Supercharger/ClientExtensionsBase/workbench.dat new file mode 100644 index 0000000..c0e209e --- /dev/null +++ b/.vs/Supercharger/ClientExtensionsBase/workbench.dat @@ -0,0 +1 @@ +ClientExtensionsBase \ No newline at end of file diff --git a/.vs/Supercharger/ClientGamePlugin/codemap.dat b/.vs/Supercharger/ClientGamePlugin/codemap.dat new file mode 100644 index 0000000..b8bc8d1 --- /dev/null +++ b/.vs/Supercharger/ClientGamePlugin/codemap.dat @@ -0,0 +1 @@ +ClientGamePlugin \ No newline at end of file diff --git a/.vs/Supercharger/ClientGamePlugin/global_history.dat b/.vs/Supercharger/ClientGamePlugin/global_history.dat new file mode 100644 index 0000000..b59454f --- /dev/null +++ b/.vs/Supercharger/ClientGamePlugin/global_history.dat @@ -0,0 +1 @@ +ClientGamePlugin \ No newline at end of file diff --git a/.vs/Supercharger/ClientGamePlugin/workbench.dat b/.vs/Supercharger/ClientGamePlugin/workbench.dat new file mode 100644 index 0000000..3723441 --- /dev/null +++ b/.vs/Supercharger/ClientGamePlugin/workbench.dat @@ -0,0 +1 @@ +ClientGamePlugin \ No newline at end of file diff --git a/.vs/Supercharger/GameBasePlugin/codemap.dat b/.vs/Supercharger/GameBasePlugin/codemap.dat new file mode 100644 index 0000000..a4b65c6 --- /dev/null +++ b/.vs/Supercharger/GameBasePlugin/codemap.dat @@ -0,0 +1 @@ +GameBasePlugin \ No newline at end of file diff --git a/.vs/Supercharger/GameBasePlugin/global_history.dat b/.vs/Supercharger/GameBasePlugin/global_history.dat new file mode 100644 index 0000000..3e59a46 --- /dev/null +++ b/.vs/Supercharger/GameBasePlugin/global_history.dat @@ -0,0 +1 @@ +GameBasePlugin \ No newline at end of file diff --git a/.vs/Supercharger/GameBasePlugin/workbench.dat b/.vs/Supercharger/GameBasePlugin/workbench.dat new file mode 100644 index 0000000..40e575c --- /dev/null +++ b/.vs/Supercharger/GameBasePlugin/workbench.dat @@ -0,0 +1 @@ +GameBasePlugin \ No newline at end of file diff --git a/.vs/Supercharger/Launcher/codemap.dat b/.vs/Supercharger/Launcher/codemap.dat new file mode 100644 index 0000000..96a2360 --- /dev/null +++ b/.vs/Supercharger/Launcher/codemap.dat @@ -0,0 +1 @@ +Launcher \ No newline at end of file diff --git a/.vs/Supercharger/Launcher/global_history.dat b/.vs/Supercharger/Launcher/global_history.dat new file mode 100644 index 0000000..08edeea --- /dev/null +++ b/.vs/Supercharger/Launcher/global_history.dat @@ -0,0 +1 @@ +Launcher \ No newline at end of file diff --git a/.vs/Supercharger/Launcher/workbench.dat b/.vs/Supercharger/Launcher/workbench.dat new file mode 100644 index 0000000..4cf46db --- /dev/null +++ b/.vs/Supercharger/Launcher/workbench.dat @@ -0,0 +1 @@ +Launcher \ No newline at end of file diff --git a/.vs/Supercharger/ObjectsPool/codemap.dat b/.vs/Supercharger/ObjectsPool/codemap.dat new file mode 100644 index 0000000..d128bc6 --- /dev/null +++ b/.vs/Supercharger/ObjectsPool/codemap.dat @@ -0,0 +1 @@ +ObjectsPool \ No newline at end of file diff --git a/.vs/Supercharger/ObjectsPool/global_history.dat b/.vs/Supercharger/ObjectsPool/global_history.dat new file mode 100644 index 0000000..e49563e --- /dev/null +++ b/.vs/Supercharger/ObjectsPool/global_history.dat @@ -0,0 +1 @@ +ObjectsPool \ No newline at end of file diff --git a/.vs/Supercharger/ObjectsPool/workbench.dat b/.vs/Supercharger/ObjectsPool/workbench.dat new file mode 100644 index 0000000..e59bc76 --- /dev/null +++ b/.vs/Supercharger/ObjectsPool/workbench.dat @@ -0,0 +1 @@ +ObjectsPool \ No newline at end of file diff --git a/.vs/Supercharger/PluginBase/codemap.dat b/.vs/Supercharger/PluginBase/codemap.dat new file mode 100644 index 0000000..8abe40d --- /dev/null +++ b/.vs/Supercharger/PluginBase/codemap.dat @@ -0,0 +1 @@ +PluginBase \ No newline at end of file diff --git a/.vs/Supercharger/PluginBase/global_history.dat b/.vs/Supercharger/PluginBase/global_history.dat new file mode 100644 index 0000000..77b9d53 --- /dev/null +++ b/.vs/Supercharger/PluginBase/global_history.dat @@ -0,0 +1 @@ +PluginBase \ No newline at end of file diff --git a/.vs/Supercharger/PluginBase/workbench.dat b/.vs/Supercharger/PluginBase/workbench.dat new file mode 100644 index 0000000..65ec516 --- /dev/null +++ b/.vs/Supercharger/PluginBase/workbench.dat @@ -0,0 +1 @@ +PluginBase \ No newline at end of file diff --git a/.vs/Supercharger/PluginLauncher/codemap.dat b/.vs/Supercharger/PluginLauncher/codemap.dat new file mode 100644 index 0000000..7b4e1e1 --- /dev/null +++ b/.vs/Supercharger/PluginLauncher/codemap.dat @@ -0,0 +1 @@ +PluginLauncher \ No newline at end of file diff --git a/.vs/Supercharger/PluginLauncher/global_history.dat b/.vs/Supercharger/PluginLauncher/global_history.dat new file mode 100644 index 0000000..cf86703 --- /dev/null +++ b/.vs/Supercharger/PluginLauncher/global_history.dat @@ -0,0 +1 @@ +PluginLauncher \ No newline at end of file diff --git a/.vs/Supercharger/PluginLauncher/workbench.dat b/.vs/Supercharger/PluginLauncher/workbench.dat new file mode 100644 index 0000000..b478540 --- /dev/null +++ b/.vs/Supercharger/PluginLauncher/workbench.dat @@ -0,0 +1 @@ +PluginLauncher \ No newline at end of file diff --git a/.vs/Supercharger/QuaternionProtocol/codemap.dat b/.vs/Supercharger/QuaternionProtocol/codemap.dat new file mode 100644 index 0000000..15681c9 --- /dev/null +++ b/.vs/Supercharger/QuaternionProtocol/codemap.dat @@ -0,0 +1 @@ +QuaternionProtocol \ No newline at end of file diff --git a/.vs/Supercharger/QuaternionProtocol/global_history.dat b/.vs/Supercharger/QuaternionProtocol/global_history.dat new file mode 100644 index 0000000..121d5a1 --- /dev/null +++ b/.vs/Supercharger/QuaternionProtocol/global_history.dat @@ -0,0 +1 @@ +QuaternionProtocol \ No newline at end of file diff --git a/.vs/Supercharger/QuaternionProtocol/workbench.dat b/.vs/Supercharger/QuaternionProtocol/workbench.dat new file mode 100644 index 0000000..2121e2a --- /dev/null +++ b/.vs/Supercharger/QuaternionProtocol/workbench.dat @@ -0,0 +1 @@ +QuaternionProtocol \ No newline at end of file diff --git a/.vs/Supercharger/SocketServer/codemap.dat b/.vs/Supercharger/SocketServer/codemap.dat new file mode 100644 index 0000000..ae27396 --- /dev/null +++ b/.vs/Supercharger/SocketServer/codemap.dat @@ -0,0 +1 @@ +SocketServer \ No newline at end of file diff --git a/.vs/Supercharger/SocketServer/global_history.dat b/.vs/Supercharger/SocketServer/global_history.dat new file mode 100644 index 0000000..91d8275 --- /dev/null +++ b/.vs/Supercharger/SocketServer/global_history.dat @@ -0,0 +1 @@ +SocketServer \ No newline at end of file diff --git a/.vs/Supercharger/SocketServer/workbench.dat b/.vs/Supercharger/SocketServer/workbench.dat new file mode 100644 index 0000000..810ff72 --- /dev/null +++ b/.vs/Supercharger/SocketServer/workbench.dat @@ -0,0 +1 @@ +SocketServer \ No newline at end of file diff --git a/.vs/Supercharger/SocketServerClient/codemap.dat b/.vs/Supercharger/SocketServerClient/codemap.dat new file mode 100644 index 0000000..f4c81f3 --- /dev/null +++ b/.vs/Supercharger/SocketServerClient/codemap.dat @@ -0,0 +1 @@ +SocketServerClient \ No newline at end of file diff --git a/.vs/Supercharger/SocketServerClient/global_history.dat b/.vs/Supercharger/SocketServerClient/global_history.dat new file mode 100644 index 0000000..e03b089 --- /dev/null +++ b/.vs/Supercharger/SocketServerClient/global_history.dat @@ -0,0 +1 @@ +SocketServerClient \ No newline at end of file diff --git a/.vs/Supercharger/SocketServerClient/workbench.dat b/.vs/Supercharger/SocketServerClient/workbench.dat new file mode 100644 index 0000000..3f6a1ab --- /dev/null +++ b/.vs/Supercharger/SocketServerClient/workbench.dat @@ -0,0 +1 @@ +SocketServerClient \ No newline at end of file diff --git a/.vs/Supercharger/SocketServerLauncher/codemap.dat b/.vs/Supercharger/SocketServerLauncher/codemap.dat new file mode 100644 index 0000000..ed1bcd4 --- /dev/null +++ b/.vs/Supercharger/SocketServerLauncher/codemap.dat @@ -0,0 +1 @@ +SocketServerLauncher \ No newline at end of file diff --git a/.vs/Supercharger/SocketServerLauncher/global_history.dat b/.vs/Supercharger/SocketServerLauncher/global_history.dat new file mode 100644 index 0000000..f6acb6d --- /dev/null +++ b/.vs/Supercharger/SocketServerLauncher/global_history.dat @@ -0,0 +1 @@ +SocketServerLauncher \ No newline at end of file diff --git a/.vs/Supercharger/SocketServerLauncher/workbench.dat b/.vs/Supercharger/SocketServerLauncher/workbench.dat new file mode 100644 index 0000000..b4a1abf --- /dev/null +++ b/.vs/Supercharger/SocketServerLauncher/workbench.dat @@ -0,0 +1 @@ +SocketServerLauncher \ No newline at end of file diff --git a/.vs/Supercharger/Tests/codemap.dat b/.vs/Supercharger/Tests/codemap.dat new file mode 100644 index 0000000..f7cdd97 --- /dev/null +++ b/.vs/Supercharger/Tests/codemap.dat @@ -0,0 +1 @@ +Tests \ No newline at end of file diff --git a/.vs/Supercharger/Tests/global_history.dat b/.vs/Supercharger/Tests/global_history.dat new file mode 100644 index 0000000..485467b --- /dev/null +++ b/.vs/Supercharger/Tests/global_history.dat @@ -0,0 +1 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\Yad\BinaryTree.csTests.Yad.BinaryTreeTests.Bt1#void#img\xmethodfalsetrueBt1Tests.Yad.BinaryTreeTestsC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\Tests.csprojC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\Yad\BinaryTree.cs2016-09-19T18:43:07.8648949+03:00C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\Yad\BinaryTree.csTests \ No newline at end of file diff --git a/.vs/Supercharger/Tests/workbench.dat b/.vs/Supercharger/Tests/workbench.dat new file mode 100644 index 0000000..8fd373f --- /dev/null +++ b/.vs/Supercharger/Tests/workbench.dat @@ -0,0 +1 @@ +Tests \ No newline at end of file diff --git a/.vs/Supercharger/Transport/codemap.dat b/.vs/Supercharger/Transport/codemap.dat new file mode 100644 index 0000000..3e7c103 --- /dev/null +++ b/.vs/Supercharger/Transport/codemap.dat @@ -0,0 +1 @@ +CommandsBase\Ping.csCommandsBase\Ping.csCommandsBase\ICommand.csCommandsBase\ICommand.csCommandsBase\Ping.csCommandsBase\Ping.csCommandsBase\ICommand.csCommandsBase\ICommand.csCommandsBase\Ping.csCommandsBase\Ping.csCommandsBase\ICommand.csCommandsBase\ICommand.csCommandsBase\Ping.cs14Ping#Execute12016-09-01T18:02:19.5445468+03:002ServerConnection<T>, IServerCommandCommandsBase\Ping.csCommandsBase\ICommand.cs0IServerCommand#Execute32016-09-01T18:01:04.4655573+03:000ServerConnection<T>, IServerCommandCommandsBase\ICommand.csCommandsBase\Ping.csCommandsBase\Ping.csCommandsBase\ICommand.csCommandsBase\ICommand.csCommandsBase\Ping.csCommandsBase\Ping.csCommandsBase\ICommand.csCommandsBase\ICommand.csTransport \ No newline at end of file diff --git a/.vs/Supercharger/Transport/global_history.dat b/.vs/Supercharger/Transport/global_history.dat new file mode 100644 index 0000000..318fbc8 --- /dev/null +++ b/.vs/Supercharger/Transport/global_history.dat @@ -0,0 +1 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\CommandsBase\Ping.csTransport.CommandsBase.Ping.Execute#void#ServerConnection<T>, IServerCommandimg\xmethodfalsetrueExecuteTransport.CommandsBase.PingC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\Transport.csprojC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\CommandsBase\Ping.cs2016-09-01T18:02:14.7007003+03:00Transport.CommandsBase.Pingimg\classfalsefalsePingTransport.CommandsBaseC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\Transport.csprojC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\CommandsBase\Ping.cs2016-09-01T18:02:13.1085767+03:00C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\CommandsBase\Ping.csC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\CommandsBase\ICommand.csTransport.CommandsBase.IServerCommand.Execute#void#ServerConnection<T>, IServerCommandimg\xmethodfalsetrueExecuteTransport.CommandsBase.IServerCommandC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\Transport.csprojC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\CommandsBase\ICommand.cs2016-09-01T18:01:03.9714454+03:00Transport.CommandsBase.IServerCommandimg\interfacefalsefalseIServerCommandTransport.CommandsBaseC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\Transport.csprojC:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\CommandsBase\ICommand.cs2016-09-01T18:00:46.8991615+03:00C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Transport\CommandsBase\ICommand.csTransport \ No newline at end of file diff --git a/.vs/Supercharger/Transport/workbench.dat b/.vs/Supercharger/Transport/workbench.dat new file mode 100644 index 0000000..d4b6373 --- /dev/null +++ b/.vs/Supercharger/Transport/workbench.dat @@ -0,0 +1 @@ +Transport \ No newline at end of file diff --git a/.vs/Supercharger/UnityExtension/codemap.dat b/.vs/Supercharger/UnityExtension/codemap.dat new file mode 100644 index 0000000..69dd2ee --- /dev/null +++ b/.vs/Supercharger/UnityExtension/codemap.dat @@ -0,0 +1 @@ +UnityExtension \ No newline at end of file diff --git a/.vs/Supercharger/UnityExtension/global_history.dat b/.vs/Supercharger/UnityExtension/global_history.dat new file mode 100644 index 0000000..580a6e1 --- /dev/null +++ b/.vs/Supercharger/UnityExtension/global_history.dat @@ -0,0 +1 @@ +UnityExtension \ No newline at end of file diff --git a/.vs/Supercharger/UnityExtension/workbench.dat b/.vs/Supercharger/UnityExtension/workbench.dat new file mode 100644 index 0000000..33ce6da --- /dev/null +++ b/.vs/Supercharger/UnityExtension/workbench.dat @@ -0,0 +1 @@ +UnityExtension \ No newline at end of file diff --git a/.vs/TCP/TCP.scgdat b/.vs/TCP/TCP.scgdat new file mode 100644 index 0000000..8ef5e43 Binary files /dev/null and b/.vs/TCP/TCP.scgdat differ diff --git a/.vs/Tests/CodeMAP.dat b/.vs/Tests/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/Tests/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/Tests/Supercharger.dat b/.vs/Tests/Supercharger.dat new file mode 100644 index 0000000..c4052bf Binary files /dev/null and b/.vs/Tests/Supercharger.dat differ diff --git a/.vs/Tests/Tests.scgdat b/.vs/Tests/Tests.scgdat new file mode 100644 index 0000000..d7a177a Binary files /dev/null and b/.vs/Tests/Tests.scgdat differ diff --git a/.vs/Transport/CodeMAP.dat b/.vs/Transport/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/Transport/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/Transport/Supercharger.dat b/.vs/Transport/Supercharger.dat new file mode 100644 index 0000000..dac9435 Binary files /dev/null and b/.vs/Transport/Supercharger.dat differ diff --git a/.vs/Transport/Transport.scgdat b/.vs/Transport/Transport.scgdat new file mode 100644 index 0000000..9de5e0e Binary files /dev/null and b/.vs/Transport/Transport.scgdat differ diff --git a/.vs/UnityClietn/UnityClietn.scgdat b/.vs/UnityClietn/UnityClietn.scgdat new file mode 100644 index 0000000..2861222 Binary files /dev/null and b/.vs/UnityClietn/UnityClietn.scgdat differ diff --git a/.vs/UnityExtension/CodeMAP.dat b/.vs/UnityExtension/CodeMAP.dat new file mode 100644 index 0000000..dcd6fa6 --- /dev/null +++ b/.vs/UnityExtension/CodeMAP.dat @@ -0,0 +1,3 @@ +This file contains Alternate Data Streams, storing configuration information used by Supercharger. + +PLEASE DO NOT DELETE. \ No newline at end of file diff --git a/.vs/UnityExtension/UnityExtension.scgdat b/.vs/UnityExtension/UnityExtension.scgdat new file mode 100644 index 0000000..5c42b66 Binary files /dev/null and b/.vs/UnityExtension/UnityExtension.scgdat differ diff --git a/.vs/restore.dg b/.vs/restore.dg new file mode 100644 index 0000000..67e2856 --- /dev/null +++ b/.vs/restore.dg @@ -0,0 +1,2 @@ +#:c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServerBase\SocketServerBase.xproj +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServerBase\SocketServerBase.xproj|c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\ObjectsPool\ObjectsPool.xproj diff --git a/BenchMarking/BenchMarking.csproj b/BenchMarking/BenchMarking.csproj new file mode 100644 index 0000000..37a237f --- /dev/null +++ b/BenchMarking/BenchMarking.csproj @@ -0,0 +1,58 @@ + + + + + Debug + AnyCPU + {1FDE5FC7-335F-4764-82C9-6F13F888AA09} + Library + Properties + BenchMarking + BenchMarking + v4.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BenchMarking/Properties/AssemblyInfo.cs b/BenchMarking/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e5e09fe --- /dev/null +++ b/BenchMarking/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("BenchMarking")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BenchMarking")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1fde5fc7-335f-4764-82c9-6f13f888aa09")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BenchMarking/Serializers.cs b/BenchMarking/Serializers.cs new file mode 100644 index 0000000..943e010 --- /dev/null +++ b/BenchMarking/Serializers.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BenchmarkDotNet.Attributes; +using BosonProtocol.Protocol; +using Tests.Emulators.ServerPlugin.Commands; +using Tests.Emulators.Transport; + +namespace BenchMarking +{ + public class Serializers + { + private LogIn _loginCmd = new LogIn {Email = "Me@me.ru",Password = "pwd", PublicKey = new byte[10]}; + public Serializers() + { + + } + [Benchmark] + public void ProtoBuf() + { + var serializer = new ProtoBufSerializer(); + var bytes = BinaryProtocol.FromObject(_loginCmd, "LogIn",serializer); + var receivedPacket = new BinaryProtocol(bytes.GetDataToSend()); + var obj = serializer.Deserialize(receivedPacket.Data); + } + [Benchmark] + public void GroBuf() + { + var serializer = new GrobufBinarySerializer(); + var bytes = BinaryProtocol.FromObject(_loginCmd, "LogIn", serializer); + var receivedPacket = new BinaryProtocol(bytes.GetDataToSend()); + var obj = serializer.Deserialize(receivedPacket.Data); + } + } +} diff --git a/BenchMarking/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/BenchMarking/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/BenchMarking/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/BenchMarking/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/BenchMarking/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/BenchMarking/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/BenchMarking/packages.config b/BenchMarking/packages.config new file mode 100644 index 0000000..23e2d2b --- /dev/null +++ b/BenchMarking/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/BosonProtocol/HashHelper.cs b/BosonProtocol/HashHelper.cs new file mode 100644 index 0000000..9c67302 --- /dev/null +++ b/BosonProtocol/HashHelper.cs @@ -0,0 +1,24 @@ +using System.IO; +using System.Security.Cryptography; +using System.Text; + +namespace QuaternionProtocol +{ + public static class HashHelper + { + private static readonly SHA1 HashMehod = SHA1.Create(); + + public static byte[] GeHash(string str) + { + using (var stream = new MemoryStream(Encoding.ASCII.GetBytes(str))) + { + return HashMehod.ComputeHash(stream); + } + } + + public static byte[] GetCheckSum(byte[] bytes) + { + return HashMehod.ComputeHash(bytes); + } + } +} \ No newline at end of file diff --git a/BosonProtocol/OperationState.cs b/BosonProtocol/OperationState.cs new file mode 100644 index 0000000..7bd7046 --- /dev/null +++ b/BosonProtocol/OperationState.cs @@ -0,0 +1,12 @@ +using System; + +namespace QuaternionProtocol +{ + [Serializable] + public class OperationState + { + public bool IsSuccessful { get; set; } + public string Details { get; set; } + public int Counter; + } +} \ No newline at end of file diff --git a/BosonProtocol/Properties/AssemblyInfo.cs b/BosonProtocol/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..aeb3a62 --- /dev/null +++ b/BosonProtocol/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("BosonProtocol")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BosonProtocol")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7bfda634-9654-44d8-ae0e-fdca6284516d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BosonProtocol/Protocol/Binary/BinaryProtocol.cs b/BosonProtocol/Protocol/Binary/BinaryProtocol.cs new file mode 100644 index 0000000..2df4cc8 --- /dev/null +++ b/BosonProtocol/Protocol/Binary/BinaryProtocol.cs @@ -0,0 +1,167 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using QuaternionProtocol.Serializers; + +namespace QuaternionProtocol.Protocol.Binary +{ + public class BinaryProtocol : ProtocolBase, IEnumerable + { + private byte[] _header; + protected readonly string CommandName; + public static int HeaderLength => PacketSizeLength + CommandLength + CheckSumLength; + private const int CommandLength = 6; + private const int CheckSumLength = 6; + private const int PacketSizeLength = 4; + + + public BinaryProtocol(byte[] data, string commandName) + { + if (string.IsNullOrEmpty(commandName)) throw new ArgumentNullException(nameof(commandName)); + if (data == null || data.Length == 0) throw new ArgumentNullException(nameof(data)); + + _header = new byte[HeaderLength]; + Data = data; + GenerateHeader(commandName); + CommandName = commandName; + } + + //Use when got data from socket + public BinaryProtocol(byte[] data) + { + FillFromData(data); + } + + private void FillFromData(byte[] data) + { + if (data.Length < HeaderLength + 1) throw new InvalidDataException("Data length is shorter that header length"); + + if (BitConverter.IsLittleEndian) + Array.Reverse(data); + + _header = new byte[HeaderLength]; + var bodyLength = data.Length - HeaderLength; + Data = new byte[bodyLength]; + + Buffer.BlockCopy(data, 0, _header, 0, HeaderLength); + Buffer.BlockCopy(data, HeaderLength, Data, 0, bodyLength); + } + /// + /// + /// + /// Have to be serializeable with custom genericSerializer + /// + /// + /// + public static BinaryProtocol FromData(T obj, string commandName, IGenericSerializer genericSerializer) where T : new() + { + if (obj == null) throw new ArgumentNullException(nameof(obj)); + if (string.IsNullOrEmpty(commandName)) throw new ArgumentNullException(nameof(commandName)); + if (genericSerializer == null) throw new ArgumentNullException(nameof(genericSerializer)); + + var body = genericSerializer.Serialize(obj); + return new BinaryProtocol(body, commandName); + } + + public static BinaryProtocol FromData(T obj, IGenericSerializer genericSerializer) where T:new() + { + return FromData(obj, obj.GetType().Name, genericSerializer); + } + + public byte[] GetCommandBytes() + { + var commandHash = new byte[CommandLength]; + Buffer.BlockCopy(_header,PacketSizeLength,commandHash,0,CommandLength); + return commandHash; + } + public static byte[] GetCheckSumFromPacket(byte[] bytes) + { + var checksumBytes = new byte[CommandLength]; + Buffer.BlockCopy(bytes, CommandLength+PacketSizeLength, checksumBytes, 0, CheckSumLength); + return checksumBytes; + } + + public bool IsCheckSumValid() + { + var sum = GetCheckSumFromPacket(_header); + var currentDataTailChecksum = CalcCheckSum(Data); + + if (sum.Length != currentDataTailChecksum.Length) return false; + + for (var i = 0; i < sum.Length; i++) + { + if (sum[i] != currentDataTailChecksum[i]) return false; + } + return true; + } + + public byte[] CalcCheckSum(byte[] bytes) + { + var sumBytes = HashHelper.GetCheckSum(bytes); + var wraped = StreamHelper.WrapBytes(sumBytes, CheckSumLength); + return wraped; + } + + protected void GenerateHeader(string commandName) + { + //Header + var commandBytes = StreamHelper.WrapBytes(HashHelper.GeHash(commandName), CommandLength); + var checksumBytes = CalcCheckSum(Data); + var lenghtBytes = BitConverter.GetBytes(HeaderLength + Data.Length); + + Buffer.BlockCopy(lenghtBytes, 0, _header, 0, 4); + + var step = PacketSizeLength; + commandBytes.CopyTo(_header, step); + step += CommandLength; + + checksumBytes.CopyTo(_header, step); + step += CheckSumLength; + } + + public IEnumerator GetEnumerator() + { + return (IEnumerator)Data.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return Data.GetEnumerator(); + } + + public override byte[] GetDataToSend() + { + var len = HeaderLength + Data.Length; + var headerAndBody = new byte[len]; + Buffer.BlockCopy(_header, 0, headerAndBody, 0, HeaderLength); + Buffer.BlockCopy(Data, 0, headerAndBody, HeaderLength, Data.Length); + + if (BitConverter.IsLittleEndian) + Array.Reverse(headerAndBody); + + return headerAndBody; + } + + public override byte[] GetBody() + { + return Data; + } + + public override byte[] CleanData(byte[] receivedData) + { + FillFromData(receivedData); + return Data; + } + + public static int GetMessageLength(byte[] message) + { + if (BitConverter.IsLittleEndian) + Array.Reverse(message); + + var msgLengthBytes = new byte[4]; + Buffer.BlockCopy(message,0,msgLengthBytes,0,4); + return BitConverter.ToInt32(msgLengthBytes, 0); + } + } +} \ No newline at end of file diff --git a/BosonProtocol/Protocol/BinaryEncryptableProtocol.cs b/BosonProtocol/Protocol/BinaryEncryptableProtocol.cs new file mode 100644 index 0000000..9398d92 --- /dev/null +++ b/BosonProtocol/Protocol/BinaryEncryptableProtocol.cs @@ -0,0 +1,52 @@ +using System; +using System.Security.Cryptography; +using QuaternionProtocol.Protocol.Binary; + +namespace QuaternionProtocol.Protocol +{ + public class BinaryEncryptableProtocol : BinaryProtocol + { + public BinaryEncryptableProtocol(byte[] data, string commandName) : base(data, commandName) + { + } + + public BinaryEncryptableProtocol(byte[] data) : base(data) + { + } + + public static void GenerateKeys(out byte[] privateKey, out byte[] publicKey) + { + using (var rsa = new RSACryptoServiceProvider()) + { + privateKey = rsa.ExportCspBlob(true); + publicKey = rsa.ExportCspBlob(false); + } + } + + public void Encrypt(byte[] otherSidePublicKey) + { + if (otherSidePublicKey == null || otherSidePublicKey.Length == 0) throw new ArgumentNullException(nameof(otherSidePublicKey)); + if (!string.IsNullOrEmpty(CommandName)) + using (var rsa = new RSACryptoServiceProvider()) + { + rsa.ImportCspBlob(otherSidePublicKey); + Data = rsa.Encrypt(Data, false); + GenerateHeader(CommandName); + } + } + + public void Decrypt(byte[] myPrivateKey) + { + if (myPrivateKey == null || myPrivateKey.Length == 0) throw new ArgumentNullException(nameof(myPrivateKey)); + + using (var rsa = new RSACryptoServiceProvider()) + { + rsa.ImportCspBlob(myPrivateKey); + var cleanData = rsa.Decrypt(Data, false); + Data = cleanData; + } + } + + + } +} \ No newline at end of file diff --git a/BosonProtocol/Protocol/CircularBuffer.cs b/BosonProtocol/Protocol/CircularBuffer.cs new file mode 100644 index 0000000..01afece --- /dev/null +++ b/BosonProtocol/Protocol/CircularBuffer.cs @@ -0,0 +1,659 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Threading; + +namespace QuaternionProtocol.Protocol +{ + /// + /// Represents a first-in, first-out collection of objects using a fixed buffer and automatic overwrite support. + /// + /// Specifies the type of elements in the buffer. + /// + /// + /// The capacity of a is the number of elements the + /// can + /// hold. If an attempt is made to put more items in the buffer than available capacity, items at the start of the + /// buffer are + /// automatically overwritten. This behavior can be modified via the property. + /// + /// CircularBuffer{T} accepts null as a valid value for reference types and allows duplicate elements. + /// + /// The methods will remove the items that are returned from the CircularBuffer{T}. To view + /// the contents of the CircularBuffer{T} without removing items, use the or + /// methods. + /// + /// + public sealed class CircularBuffer : ICollection, ICollection + { + #region Public Constructors + + /// + /// Initializes a new instance of the class that is empty and has the specified + /// initial capacity and overwrite behavior. + /// + /// The maximum capcity of the buffer. + /// If set to true the buffer will automatically overwrite the oldest items when full. + /// Thown if the is less than zero. + public CircularBuffer(int capacity, bool allowOverwrite = true) + { + if (capacity < 0) + { + throw new ArgumentException("The buffer capacity must be greater than or equal to zero.", + nameof(capacity)); + } + + _buffer = new T[capacity]; + Capacity = capacity; + Size = 0; + Head = 0; + Tail = 0; + AllowOverwrite = allowOverwrite; + } + + #endregion + + // http://en.wikipedia.org/wiki/Circular_buffer + + #region Instance Fields + + private T[] _buffer; + + private int _capacity; + + [NonSerialized] private object _syncRoot; + + #endregion + + #region Public Properties + + /// + /// Gets or sets a value indicating whether the buffer will automatically overwrite the oldest items in the buffer when + /// the maximum capacity is reached. + /// + /// + /// true if the oldest items in the buffer are automatically overwritten when the buffer is full; otherwise, + /// false. + /// + public bool AllowOverwrite { get; set; } + + /// + /// Gets or sets the total number of elements the internal data structure can hold. + /// + /// The total number of elements that the can contain. + /// + /// Thrown if the specified new capacity is smaller than the current + /// contents of the buffer. + /// + public int Capacity + { + get { return _capacity; } + set + { + if (value != _capacity) + { + if (value < Size) + { + throw new ArgumentOutOfRangeException(nameof(value), value, + "The new capacity must be greater than or equal to the buffer size."); + } + + var newBuffer = new T[value]; + if (Size > 0) + { + CopyTo(newBuffer); + } + + _buffer = newBuffer; + + _capacity = value; + } + } + } + + /// + /// Gets the index of the beginning of the buffer data. + /// + /// The index of the first element in the buffer. + public int Head { get; protected set; } + + /// + /// Gets a value indicating whether the buffer is empty. + /// + /// true if buffer is empty; otherwise, false. + public bool IsEmpty => Size == 0; + + /// + /// Gets a value indicating whether the buffer is full. + /// + /// true if the buffer is full; otherwise, false. + /// + /// The property always returns false if the property + /// is set to true. + /// + public bool IsFull => !AllowOverwrite && Size == Capacity; + + /// + /// Gets the number of elements contained in the . + /// + /// The number of elements contained in the . + public int Size { get; protected set; } + + /// + /// Gets the index of the end of the buffer data. + /// + /// The index of the last element in the buffer. + public int Tail { get; protected set; } + + #endregion + + #region Public Members + + /// + /// Removes all items from the . + /// + public void Clear() + { + Size = 0; + Head = 0; + Tail = 0; + _buffer = new T[Capacity]; + } + + /// + /// Determines whether the contains a specific value. + /// + /// The object to locate in the . + /// + /// true if is found in the ; otherwise, + /// false. + /// + public bool Contains(T item) + { + var bufferIndex = Head; + var comparer = EqualityComparer.Default; + var result = false; + + for (var i = 0; i < Size; i++, bufferIndex++) + { + if (bufferIndex == Capacity) + { + bufferIndex = 0; + } + + // ReSharper disable CompareNonConstrainedGenericWithNull + if ((item == null && _buffer[bufferIndex] == null) || + _buffer[bufferIndex] != null && comparer.Equals(_buffer[bufferIndex], item)) + { + result = true; + break; + } + // ReSharper restore CompareNonConstrainedGenericWithNull + } + + return result; + } + + /// + /// Copies the entire to a compatible one-dimensional array, starting at the specified + /// index of the target array. + /// + /// + /// The one-dimensional that is the destination of the elements copied from + /// . The must have zero-based indexing. + /// + /// The zero-based index in at which copying begins. + public void CopyTo(T[] array, int arrayIndex = 0) + { + CopyTo(Head, array, arrayIndex, Math.Min(Size, array.Length - arrayIndex)); + } + + /// + /// Copies a range of elements from the to a compatible one-dimensional array, + /// starting at the specified index of the target array. + /// + /// The zero-based index in the source at which copying begins. + /// + /// The one-dimensional that is the destination of the elements copied from + /// . The must have zero-based indexing. + /// + /// The zero-based index in at which copying begins. + /// The number of elements to copy. + public void CopyTo(int index, T[] array, int arrayIndex, int count) + { + if (count > Size) + { + throw new ArgumentOutOfRangeException(nameof(count), count, + "The read count cannot be greater than the buffer size."); + } + + var bufferIndex = index; + for (var i = 0; i < count; i++, bufferIndex++, arrayIndex++) + { + if (bufferIndex == Capacity) + { + bufferIndex = 0; + } + array[arrayIndex] = _buffer[bufferIndex]; + } + } + + /// + /// Removes and returns the specified number of objects from the beginning of the . + /// + /// The number of elements to remove and return from the . + /// The objects that are removed from the beginning of the . + public T[] Get(int count) + { + var result = new T[count]; + + Get(result); + + return result; + } + + /// + /// Copies and removes the specified number elements from the to a compatible + /// one-dimensional array, starting at the beginning of the target array. + /// + /// + /// The one-dimensional that is the destination of the elements copied from + /// . The must have zero-based indexing. + /// + /// The actual number of elements copied into . + public int Get(T[] array) + { + return Get(array, 0, array.Length); + } + + /// + /// Copies and removes the specified number elements from the to a compatible + /// one-dimensional array, starting at the specified index of the target array. + /// + /// + /// The one-dimensional that is the destination of the elements copied from + /// . The must have zero-based indexing. + /// + /// The zero-based index in at which copying begins. + /// The number of elements to copy. + /// The actual number of elements copied into . + public int Get(T[] array, int arrayIndex, int count) + { + var realCount = Math.Min(count, Size); + var dstIndex = arrayIndex; + + for (var i = 0; i < realCount; i++, Head++, dstIndex++) + { + if (Head == Capacity) + { + Head = 0; + } + + array[dstIndex] = _buffer[Head]; + } + + Size -= realCount; + + return realCount; + } + + /// + /// Removes and returns the object at the beginning of the . + /// + /// The object that is removed from the beginning of the . + /// Thrown if the buffer is empty. + /// + /// This method is similar to the method, but Peek does not modify the + /// . + /// + public T Get() + { + if (IsEmpty) + { + throw new InvalidOperationException("The buffer is empty."); + } + + var item = _buffer[Head]; + if (++Head == Capacity) + { + Head = 0; + } + Size--; + + return item; + } + + /// + /// Returns an enumerator that iterates through the . + /// + /// A for the . + public IEnumerator GetEnumerator() + { + var bufferIndex = Head; + + for (var i = 0; i < Size; i++, bufferIndex++) + { + if (bufferIndex == Capacity) + { + bufferIndex = 0; + } + + yield return _buffer[bufferIndex]; + } + } + + /// + /// Returns the object at the beginning of the without removing it. + /// + /// The object at the beginning of the . + /// Thrown if the buffer is empty. + public T Peek() + { + if (IsEmpty) + { + throw new InvalidOperationException("The buffer is empty."); + } + + var item = _buffer[Head]; + + return item; + } + + /// + /// Returns the specified number of objects from the beginning of the . + /// + /// The number of elements to return from the . + /// The objects that from the beginning of the . + /// Thrown if the buffer is empty. + public T[] Peek(int count) + { + if (IsEmpty) + { + throw new InvalidOperationException("The buffer is empty."); + } + + var items = new T[count]; + CopyTo(items); + + return items; + } + + /// + /// Returns the object at the end of the without removing it. + /// + /// The object at the end of the . + /// Thrown if the buffer is empty. + public T PeekLast() + { + int bufferIndex; + + if (IsEmpty) + { + throw new InvalidOperationException("The buffer is empty."); + } + + if (Tail == 0) + { + bufferIndex = Size - 1; + } + else + { + bufferIndex = Tail - 1; + } + + var item = _buffer[bufferIndex]; + + return item; + } + + /// + /// Copies an entire compatible one-dimensional array to the . + /// + /// + /// The one-dimensional that is the source of the elements copied to + /// . The must have zero-based indexing. + /// + /// + /// Thrown if buffer does not have sufficient capacity to put in new + /// items. + /// + /// + /// If plus the size of exceeds the capacity of the + /// and the property is true, the oldest items in + /// the are overwritten with . + /// + public int Put(T[] array) + { + return Put(array, 0, array.Length); + } + + /// + /// Copies a range of elements from a compatible one-dimensional array to the . + /// + /// + /// The one-dimensional that is the source of the elements copied to + /// . The must have zero-based indexing. + /// + /// The zero-based index in at which copying begins. + /// The number of elements to copy. + /// + /// Thrown if buffer does not have sufficient capacity to put in new + /// items. + /// + /// + /// If plus exceeds the capacity of the + /// and the property is true, the oldest items in + /// the are overwritten with . + /// + public int Put(T[] array, int arrayIndex, int count) + { + if (!AllowOverwrite && count > Capacity - Size) + { + throw new InvalidOperationException("The buffer does not have sufficient capacity to put new items."); + } + + int i; + for (i = 0; i < count; i++) + { + Put(array[arrayIndex + i]); + } + return i; + } + + /// + /// Adds an object to the end of the . + /// + /// + /// The object to add to the . The value can be null for + /// reference types. + /// + /// + /// Thrown if buffer does not have sufficient capacity to put in new + /// items. + /// + /// + /// If already equals the capacity and the property is + /// true, the oldest item in the is overwritten with . + /// + public void Put(T item) + { + if (!AllowOverwrite && Size == Capacity) + { + throw new InvalidOperationException("The buffer does not have sufficient capacity to put new items."); + } + + _buffer[Tail] = item; + + Tail++; + if (Size == Capacity) + { + Head++; + if (Head >= Capacity) + { + Head -= Capacity; + } + } + + if (Tail == Capacity) + { + Tail = 0; + } + + if (Size != Capacity) + { + Size++; + } + } + + /// + /// Increments the starting index of the data buffer in the . + /// + /// The number of elements to increment the data buffer start index by. + public void Skip(int count) + { + Head += count; + + if (Head >= Capacity) + { + Head -= Capacity; + } + } + + /// + /// Copies the elements to a new array. + /// + /// A new array containing elements copied from the . + /// + /// The is not modified. The order of the elements in the new array is the same + /// as the order of the elements from the beginning of the to its end. + /// + // ReSharper disable once ReturnTypeCanBeEnumerable.Global + public T[] ToArray() + { + var result = new T[Size]; + + CopyTo(result); + + return result; + } + + #endregion + + #region ICollection Members + + /// + /// Gets the number of elements contained in the . + /// + /// The number of elements actually contained in the . + int ICollection.Count => Size; + + /// + /// Gets a value indicating whether access to the is synchronized + /// (thread safe). + /// + /// + /// true if access to the is synchronized (thread safe); otherwise, false. + /// In the default implementation of , this property always returns false. + /// + bool ICollection.IsSynchronized => false; + + /// + /// Gets an object that can be used to synchronize access to the . + /// + /// An object that can be used to synchronize access to the + object ICollection.SyncRoot + { + get + { + if (_syncRoot == null) + { + Interlocked.CompareExchange(ref _syncRoot, new object(), null); + } + + return _syncRoot; + } + } + + /// + /// Copies the elements of the to an , starting at a particular + /// index. + /// + /// + /// The one-dimensional that is the destination of the elements copied from + /// . The must have zero-based indexing. + /// + /// The zero-based index in at which copying begins. + void ICollection.CopyTo(Array array, int arrayIndex) + { + CopyTo((T[]) array, arrayIndex); + } + + #endregion + + #region ICollection Members + + /// + /// Gets the number of elements contained in the . + /// + /// The number of elements actually contained in the . + int ICollection.Count => Size; + + /// + /// Gets a value indicating whether the is read-only. + /// + /// + /// true if the is read-only; otherwise, false. In the default + /// implementation of , this property always returns false. + /// + bool ICollection.IsReadOnly => false; + + /// + /// Adds an item to the . + /// + /// The object to add to the . + void ICollection.Add(T item) + { + Put(item); + } + + /// + /// Removes the first occurrence of a specific object from the + /// . + /// + /// The object to remove from the . + /// + /// true if was successfully removed from the + /// ; otherwise, false. This method also returns + /// false if is not found in the original + /// . + /// + /// Cannot remove items from collection. + bool ICollection.Remove(T item) + { + throw new NotSupportedException("Cannot remove items from collection."); + } + + /// + /// Returns an enumerator that iterates through the collection. + /// + /// + /// A that can be used to iterate through the + /// collection. + /// + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + /// + /// Returns an enumerator that iterates through a collection. + /// + /// An object that can be used to iterate through the collection. + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + #endregion + } +} \ No newline at end of file diff --git a/BosonProtocol/Protocol/JsonProtocol.cs b/BosonProtocol/Protocol/JsonProtocol.cs new file mode 100644 index 0000000..61fcf7b --- /dev/null +++ b/BosonProtocol/Protocol/JsonProtocol.cs @@ -0,0 +1,26 @@ +using System.Net.NetworkInformation; + +namespace QuaternionProtocol.Protocol +{ + public class JsonProtocol: ProtocolBase + { + public JsonProtocol(string data) + { + Data = data; + } + public override string GetDataToSend() + { + return Data; + } + + public override string CleanData(string receivedData) + { + return receivedData; + } + + public override string GetBody() + { + return Data; + } + } +} \ No newline at end of file diff --git a/BosonProtocol/Protocol/ProtocolBase.cs b/BosonProtocol/Protocol/ProtocolBase.cs new file mode 100644 index 0000000..475e1a8 --- /dev/null +++ b/BosonProtocol/Protocol/ProtocolBase.cs @@ -0,0 +1,16 @@ +using System.Security.Cryptography; +using QuaternionProtocol.Serializers; + +namespace QuaternionProtocol.Protocol +{ + + public abstract class ProtocolBase + { + public string ProtocolName => GetType().Name; + public TDestTrasportableType Data { get; protected set; } + public abstract TDestTrasportableType GetDataToSend(); + public abstract TDestTrasportableType CleanData(TDestTrasportableType receivedData); + public abstract TDestTrasportableType GetBody(); + } + +} \ No newline at end of file diff --git a/BosonProtocol/QuaternionProtocol.csproj b/BosonProtocol/QuaternionProtocol.csproj new file mode 100644 index 0000000..477fb1a --- /dev/null +++ b/BosonProtocol/QuaternionProtocol.csproj @@ -0,0 +1,67 @@ + + + + + Debug + AnyCPU + {7BFDA634-9654-44D8-AE0E-FDCA6284516D} + Library + Properties + BosonProtocol + BosonProtocol + v2.0 + 512 + SAK + SAK + SAK + SAK + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BosonProtocol/Serializers/BinaryFormaterGenericSerializer.cs b/BosonProtocol/Serializers/BinaryFormaterGenericSerializer.cs new file mode 100644 index 0000000..01a67f6 --- /dev/null +++ b/BosonProtocol/Serializers/BinaryFormaterGenericSerializer.cs @@ -0,0 +1,40 @@ +using System; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; + +namespace QuaternionProtocol.Serializers +{ + public class BinaryFormaterGenericSerializer : IGenericSerializer where T: new() + { + + public byte[] Serialize(T obj) + { + var biformater = new BinaryFormatter(); + using (var str = new MemoryStream()) + { + biformater.Serialize(str, obj); + return StreamHelper.GetBytes(str); + } + } + + public T Deserialize(byte[] stream) + { + var biformater = new BinaryFormatter(); + using (var str = new MemoryStream(stream)) + { + return (T)biformater.Deserialize(str); + } + } + + public string Name => "BinaryFormater"; + + public object Deserialize(Type targetType, byte[] rawData) + { + var biformater = new BinaryFormatter(); + using (var str = new MemoryStream(rawData)) + { + return (T)biformater.Deserialize(str); + } + } + } +} \ No newline at end of file diff --git a/BosonProtocol/Serializers/IGenericSerializer.cs b/BosonProtocol/Serializers/IGenericSerializer.cs new file mode 100644 index 0000000..36e5f93 --- /dev/null +++ b/BosonProtocol/Serializers/IGenericSerializer.cs @@ -0,0 +1,8 @@ +namespace QuaternionProtocol.Serializers +{ + public interface IGenericSerializer : ISerializer where TSource : new() + { + TDestTransportType Serialize(TSource obj); + TSource Deserialize(TDestTransportType stream); + } +} \ No newline at end of file diff --git a/BosonProtocol/Serializers/ISerializer.cs b/BosonProtocol/Serializers/ISerializer.cs new file mode 100644 index 0000000..68f2ca7 --- /dev/null +++ b/BosonProtocol/Serializers/ISerializer.cs @@ -0,0 +1,10 @@ +using System; + +namespace QuaternionProtocol.Serializers +{ + public interface ISerializer + { + string Name { get; } + object Deserialize(Type targetType, TDestTransportType rawData); + } +} \ No newline at end of file diff --git a/BosonProtocol/StreamHelper.cs b/BosonProtocol/StreamHelper.cs new file mode 100644 index 0000000..f5c5cf1 --- /dev/null +++ b/BosonProtocol/StreamHelper.cs @@ -0,0 +1,70 @@ +using System; +using System.IO; +namespace QuaternionProtocol +{ + public static class StreamHelper + { + public static byte[] GetBytes(Stream stream) + { + long originalPosition = 0; + + if (stream.CanSeek) + { + originalPosition = stream.Position; + stream.Position = 0; + } + + try + { + byte[] readBuffer = new byte[4096]; + + int totalBytesRead = 0; + int bytesRead; + + while ((bytesRead = stream.Read(readBuffer, totalBytesRead, readBuffer.Length - totalBytesRead)) > 0) + { + totalBytesRead += bytesRead; + + if (totalBytesRead == readBuffer.Length) + { + int nextByte = stream.ReadByte(); + if (nextByte != -1) + { + byte[] temp = new byte[readBuffer.Length * 2]; + Buffer.BlockCopy(readBuffer, 0, temp, 0, readBuffer.Length); + Buffer.SetByte(temp, totalBytesRead, (byte)nextByte); + readBuffer = temp; + totalBytesRead++; + } + } + } + + byte[] buffer = readBuffer; + if (readBuffer.Length != totalBytesRead) + { + buffer = new byte[totalBytesRead]; + Buffer.BlockCopy(readBuffer, 0, buffer, 0, totalBytesRead); + } + + return buffer; + } + finally + { + if (stream.CanSeek) + { + stream.Position = originalPosition; + } + } + } + + public static byte[] WrapBytes(byte[] bytes, int fixedLength) + { + var fixedBytes = new byte[fixedLength]; + var lengthToCopy = bytes.Length > fixedLength ? fixedLength : bytes.Length; + + Buffer.BlockCopy(bytes, 0, fixedBytes, 0, lengthToCopy); + + return fixedBytes; + } + } +} \ No newline at end of file diff --git a/BosonProtocol/obj/Debug/BosonProtocol.csproj.FileListAbsolute.txt b/BosonProtocol/obj/Debug/BosonProtocol.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..3385608 --- /dev/null +++ b/BosonProtocol/obj/Debug/BosonProtocol.csproj.FileListAbsolute.txt @@ -0,0 +1,5 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\obj\Debug\BosonProtocol.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\obj\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\obj\Debug\BosonProtocol.pdb diff --git a/BosonProtocol/obj/Debug/QuaternionProtocol.csproj.FileListAbsolute.txt b/BosonProtocol/obj/Debug/QuaternionProtocol.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..208b722 --- /dev/null +++ b/BosonProtocol/obj/Debug/QuaternionProtocol.csproj.FileListAbsolute.txt @@ -0,0 +1,5 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\obj\Debug\QuaternionProtocol.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\obj\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\BosonProtocol\obj\Debug\BosonProtocol.pdb diff --git a/ClientExtensionsBase/Binary/ClientSocketBase.cs b/ClientExtensionsBase/Binary/ClientSocketBase.cs new file mode 100644 index 0000000..501d315 --- /dev/null +++ b/ClientExtensionsBase/Binary/ClientSocketBase.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net.Sockets; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using Transport; +using Transport.Client; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Events; + +namespace ClientExtensionsBase.Binary +{ + public abstract class ClientSocketBase : ClientTransportBase + { + protected readonly Dictionary> Commands = new Dictionary>(); + protected readonly Socket Socket; + protected bool IsConnected; + public readonly TransportStats Stats; + private readonly CircularBuffer _messagesBuffer = new CircularBuffer(2000); + + protected ClientSocketBase(Socket initializedSocket, ProtocolBase protocol) + { + if (initializedSocket == null) throw new ArgumentNullException(nameof(initializedSocket)); + if (protocol == null) throw new ArgumentNullException(nameof(protocol)); + Socket = initializedSocket; + Stats = new TransportStats(TransportName); + } + + public override string Address => Socket.LocalEndPoint.ToString(); + public override OperationState SendData(ProtocolBase data) + { + var protoBytes = data as ProtocolBase; + + if (protoBytes != null) + { + using (var str = new MemoryStream(protoBytes.GetDataToSend())) + { + return SendData(str); + } + } + + return new OperationState { IsSuccessful = false, Details = "ProtocolBase is correct type of Protocol" }; + } + + public override OperationState SendData(Stream data) + { + if (IsConnected) + try + { + var dataToSend = StreamHelper.GetBytes(data); + Socket.BeginSend(dataToSend, 0, dataToSend.Length, SocketFlags.None, SendDataCallback, null); + + return new OperationState { IsSuccessful = true }; + } + catch (Exception ex) + { + return new OperationState { IsSuccessful = false, Details = ex.ToString() }; + } + return new OperationState { IsSuccessful = false, Details = "Socket not connected" }; + } + + private void SendDataCallback(IAsyncResult ar) + { + var bytes = Socket.EndSend(ar); + Stats.AddBytesSent(bytes); + } + + public override OperationState RegisterCommand(string commandName, T executeAction) + { + try + { + var cmdNameBytes = StreamHelper.WrapBytes(HashHelper.GeHash(commandName), 6); + var cmdContainer = new CommandContainer { CommandRef = executeAction, CommandType = typeof(T) }; + Commands.Add(cmdNameBytes, cmdContainer); + } + catch (Exception wx) + { + return new OperationState { Details = wx.ToString(), IsSuccessful = false }; + } + return new OperationState { IsSuccessful = true }; + } + + public override OperationState Connect(string endpointAddress) + { + try + { + var adr = endpointAddress.Split(':'); + Socket.BeginConnect(adr[0], int.Parse(adr[1]), ar => + { + Socket.EndConnect(ar); + IsConnected = true; + var buff = new byte[1024]; + Socket.BeginReceive(buff, 0, 1024, SocketFlags.None, ReceiveCallback, buff); + RaiseConnected(new ClientGenericEventArgs()); + }, null); + } + catch (Exception ex) + { + return new OperationState { IsSuccessful = false, Details = ex.ToString() }; + } + + return new OperationState { IsSuccessful = true }; + } + + private void ReceiveCallback(IAsyncResult ar) + { + var buff = (byte[])ar.AsyncState; + try + { + var bytesCount = Socket.EndReceive(ar); + Stats.AddBytesReceived(bytesCount); + + if (bytesCount > 0) + { + var bytesReceived = new byte[bytesCount]; + Buffer.BlockCopy(buff, 0, bytesReceived, 0, bytesCount); + + _messagesBuffer.Put(bytesReceived); + + while (_messagesBuffer.Size > 4) + { + var messageLength = BinaryProtocol.GetMessageLength(_messagesBuffer.Peek(4)); + if (_messagesBuffer.Size >= messageLength) + { + var messageBytes = _messagesBuffer.Get(messageLength); + var proto = new BinaryProtocol(messageBytes); + var cmdName = proto.GetCommandBytes(); + CommandContainer command; + + //if (Commands.TryGetValue(cmdName, out command)) + //{ + // command.CommandRef.Execute(null, ); + // command.CommandRef + //} + + RaiseReceive(new ClientGenericEventArgs { DataReceived = bytesReceived, Protocol = proto }); + } + else + { + break; + } + } + } + + Socket.BeginReceive(buff, 0, 1024, SocketFlags.None, ReceiveCallback, buff); + } + catch (Exception ex) + { + RaiseError(new ClientGenericEventArgs { DataReceived = ex }); + } + } + + public override void Dispose() + { + Socket.Shutdown(SocketShutdown.Both); + } + + } +} \ No newline at end of file diff --git a/ClientExtensionsBase/Binary/TcpClient.cs b/ClientExtensionsBase/Binary/TcpClient.cs new file mode 100644 index 0000000..a1dac03 --- /dev/null +++ b/ClientExtensionsBase/Binary/TcpClient.cs @@ -0,0 +1,22 @@ +using System; +using System.Net.Sockets; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; + +namespace ClientExtensionsBase.Binary +{ + public class TcpClient: ClientSocketBase + { + public TcpClient() : base(new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp), new BinaryProtocol(new byte[5],"Pings")) + { + + } + public TcpClient(Socket initializedSocket, ProtocolBase protocol) : base(initializedSocket, protocol) + { + } + + public override string TransportName => "TcpClient"; + + + } +} \ No newline at end of file diff --git a/ClientExtensionsBase/ClientExtensionsBase.csproj b/ClientExtensionsBase/ClientExtensionsBase.csproj new file mode 100644 index 0000000..66939dc --- /dev/null +++ b/ClientExtensionsBase/ClientExtensionsBase.csproj @@ -0,0 +1,70 @@ + + + + + Debug + AnyCPU + {6F7BC5F3-910F-411B-ADC2-E3572832026E} + Library + Properties + ClientExtensionsBase + ClientExtensionsBase + v2.0 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + + + + \ No newline at end of file diff --git a/ClientExtensionsBase/CommandContainer.cs b/ClientExtensionsBase/CommandContainer.cs new file mode 100644 index 0000000..98f0bb7 --- /dev/null +++ b/ClientExtensionsBase/CommandContainer.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using Transport.CommandsBase; + +namespace ClientExtensionsBase +{ + public sealed class CommandContainer + { + public T CommandRef { get; set; } + public Type CommandType { get; set; } + } + + public static class ReflectionHelper + { + public static Dictionary GetAllCommandsInAssembly() + { + var alltypes = Assembly.GetExecutingAssembly().GetTypes(); + var commands = new Dictionary(1000); + foreach (var type in alltypes) + { + + if (type.IsAssignableFrom(typeof (IServerCommand))) + { + var instance = Activator.CreateInstance(type) as IServerCommand; + commands.Add(type.Name, instance); + } + + } + + return commands; + } + } +} \ No newline at end of file diff --git a/ClientExtensionsBase/Plugin/ClientPluginBase.cs b/ClientExtensionsBase/Plugin/ClientPluginBase.cs new file mode 100644 index 0000000..fc0f8a5 --- /dev/null +++ b/ClientExtensionsBase/Plugin/ClientPluginBase.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using QuaternionProtocol; +using Transport.Client; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Events; + +namespace ClientExtensionsBase.Plugin +{ + public class ClientPluginBase : IClientPluginBase + { + public event EventHandler> OnClientConnected; + public event EventHandler> OnClientDisconnected; + public event EventHandler> OnTransportException; + protected readonly List Transports = new List(); + public virtual string AppId { get; } + public virtual IEnumerable InitTransports(IEnumerable aviableTransports) + { + foreach (var transport in aviableTransports) + { + switch (transport.TransportName) + { + case "TCPIPV4": + Transports.Add(transport); + //transport.SetPort(1000); + //transport.OnConnected += (sender, args) => { RaiseClientConnected(args); }; + //transport.OnDisconected += (sender, connectionArgs) => { RaiseClientDisconnected(connectionArgs);}; + transport.OnError += (sender, exceptionArgs) => { RaiseTransportException(exceptionArgs); }; + break; + case "UDPIPV4": + Transports.Add(transport); + ////transport.SetPort(10100); + //transport.OnConnected += (sender, connectionArgs) => { ClientConnected(connectionArgs.DataReceived); }; + //transport.OnDisconected += (sender, connectionArgs) => { ClientDisconnected(connectionArgs.DataReceived); }; + //transport.OnError += (sender, exceptionArgs) => { TransportException(new Tuple(transport, exceptionArgs.DataReceived)); }; + break; + } + } + + return Transports.ToArray(); + } + + public OperationState RegisterReceiveCommand(IClientTransport transport, string commandName, T execute) where T : IClientCommand + { + if (transport == null) throw new ArgumentNullException(nameof(transport)); + if (string.IsNullOrEmpty(commandName)) throw new ArgumentNullException(nameof(commandName)); + if (execute == null) throw new ArgumentNullException(nameof(execute)); + + return transport.RegisterCommand(commandName, execute); + } + + public OperationState RegisterReceiveCommand(IClientTransport transport, T execute) where T : IClientCommand + { + if (transport == null) throw new ArgumentNullException(nameof(transport)); + if (execute == null) throw new ArgumentNullException(nameof(execute)); + return RegisterReceiveCommand(transport, typeof(T).Name, execute); + } + +#region Event Invokators + protected virtual void RaiseClientConnected(ClientGenericEventArgs e) + { + OnClientConnected?.Invoke(this, e); + } + + protected virtual void RaiseClientDisconnected(ClientGenericEventArgs e) + { + OnClientDisconnected?.Invoke(this, e); + } + + protected virtual void RaiseTransportException(DataEventArgs e) + { + OnTransportException?.Invoke(this, e); + } + +#endregion + } +} \ No newline at end of file diff --git a/ClientExtensionsBase/Plugin/IClientPluginBase.cs b/ClientExtensionsBase/Plugin/IClientPluginBase.cs new file mode 100644 index 0000000..c36efa5 --- /dev/null +++ b/ClientExtensionsBase/Plugin/IClientPluginBase.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using Transport.Client; +using Transport.Connections; +using Transport.Events; + +namespace ClientExtensionsBase.Plugin +{ + public interface IClientPluginBase + { + + event EventHandler> OnClientConnected; + event EventHandler> OnClientDisconnected; + event EventHandler> OnTransportException; + string AppId { get; } + + /// + /// All aviable transport instances. SetUp and return it + /// + /// All aviable default transports instances + /// Return only thouse you want to use + IEnumerable InitTransports(IEnumerable aviableTransports); + } +} \ No newline at end of file diff --git a/ClientExtensionsBase/Properties/AssemblyInfo.cs b/ClientExtensionsBase/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bab79cd --- /dev/null +++ b/ClientExtensionsBase/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ClientExtensionsBase")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ClientExtensionsBase")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6f7bc5f3-910f-411b-adc2-e3572832026e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ClientExtensionsBase/obj/Debug/ClientExtensionsBase.csproj.FileListAbsolute.txt b/ClientExtensionsBase/obj/Debug/ClientExtensionsBase.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..3b49535 --- /dev/null +++ b/ClientExtensionsBase/obj/Debug/ClientExtensionsBase.csproj.FileListAbsolute.txt @@ -0,0 +1,9 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\bin\Debug\ClientExtensionsBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\bin\Debug\ClientExtensionsBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\obj\Debug\ClientExtensionsBase.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\obj\Debug\ClientExtensionsBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\obj\Debug\ClientExtensionsBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientExtensionsBase\bin\Debug\Transport.pdb diff --git a/ClientPluginBase/BinaryProtocolDataContractSerializer.cs b/ClientPluginBase/BinaryProtocolDataContractSerializer.cs new file mode 100644 index 0000000..0f08e80 --- /dev/null +++ b/ClientPluginBase/BinaryProtocolDataContractSerializer.cs @@ -0,0 +1,18 @@ +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using QuaternionProtocol.Serializers; + +namespace ClientGamePlugin +{ + public static class BinaryProcolHelper where T : new() + { + public static ProtocolBase GetProtocol(T data) + { + return BinaryProtocol.FromData(data, GetSerializer()); + } + public static IGenericSerializer GetSerializer() + { + return new BinaryFormaterGenericSerializer(); + } + } +} \ No newline at end of file diff --git a/ClientPluginBase/ClientGamePlugin.csproj b/ClientPluginBase/ClientGamePlugin.csproj new file mode 100644 index 0000000..954e507 --- /dev/null +++ b/ClientPluginBase/ClientGamePlugin.csproj @@ -0,0 +1,75 @@ + + + + + Debug + AnyCPU + {C1F6123D-22F8-4533-AD56-08A7E3583661} + Library + Properties + ClientGamePlugin + ClientGamePlugin + v2.0 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {6f7bc5f3-910f-411b-adc2-e3572832026e} + ClientExtensionsBase + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + + \ No newline at end of file diff --git a/ClientPluginBase/Commands/TCP/GetUsersInGame.cs b/ClientPluginBase/Commands/TCP/GetUsersInGame.cs new file mode 100644 index 0000000..f7a1ecc --- /dev/null +++ b/ClientPluginBase/Commands/TCP/GetUsersInGame.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using Transport.CommandsBase; +using Transport.Connections; + +namespace ClientGamePlugin.Commands.TCP +{ + [Serializable] + public class GetUsersInGame: IClientCommand + { + public List Ids; + public string GameName { get; set; } + + public void Execute(ClientConnectionBase connection, IClientCommand entity) + { + var cmd = (GetUsersInGame) entity; + + } + } +} \ No newline at end of file diff --git a/ClientPluginBase/Commands/TCP/JoinRequest.cs b/ClientPluginBase/Commands/TCP/JoinRequest.cs new file mode 100644 index 0000000..4c265bd --- /dev/null +++ b/ClientPluginBase/Commands/TCP/JoinRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Diagnostics; +using System.Reflection; +using Transport.CommandsBase; +using Transport.Connections; + +namespace ClientGamePlugin.Commands.TCP +{ + [Serializable] + public class JoinRequest: IClientCommand + { + public string GameName { get; set; } + public void Execute(ClientConnectionBase connection, IClientCommand entity) + { + Trace.WriteLine("Join request got"); + } + } +} \ No newline at end of file diff --git a/ClientPluginBase/Commands/TCP/JoinResponse.cs b/ClientPluginBase/Commands/TCP/JoinResponse.cs new file mode 100644 index 0000000..651b168 --- /dev/null +++ b/ClientPluginBase/Commands/TCP/JoinResponse.cs @@ -0,0 +1,7 @@ +namespace ClientGamePlugin.Commands.TCP +{ + public class JoinResponse + { + + } +} \ No newline at end of file diff --git a/ClientPluginBase/Commands/TCP/LeaveRequest.cs b/ClientPluginBase/Commands/TCP/LeaveRequest.cs new file mode 100644 index 0000000..ba9b678 --- /dev/null +++ b/ClientPluginBase/Commands/TCP/LeaveRequest.cs @@ -0,0 +1,14 @@ +using System.Diagnostics; +using Transport.CommandsBase; +using Transport.Connections; + +namespace ClientGamePlugin.Commands.TCP +{ + public class LeaveRequest : IClientCommand + { + public void Execute(ClientConnectionBase connection, IClientCommand entity) + { + Trace.WriteLine("Leave Req Got"); + } + } +} \ No newline at end of file diff --git a/ClientPluginBase/Commands/TCP/LeaveResponse.cs b/ClientPluginBase/Commands/TCP/LeaveResponse.cs new file mode 100644 index 0000000..1d9b2f1 --- /dev/null +++ b/ClientPluginBase/Commands/TCP/LeaveResponse.cs @@ -0,0 +1,7 @@ +namespace ClientGamePlugin.Commands.TCP +{ + public class LeaveResponse + { + + } +} \ No newline at end of file diff --git a/ClientPluginBase/Commands/TCP/SendToGameUsers.cs b/ClientPluginBase/Commands/TCP/SendToGameUsers.cs new file mode 100644 index 0000000..ad2be8e --- /dev/null +++ b/ClientPluginBase/Commands/TCP/SendToGameUsers.cs @@ -0,0 +1,18 @@ +using System; +using System.Diagnostics; +using Transport.Client; +using Transport.CommandsBase; +using Transport.Connections; + +namespace ClientGamePlugin.Commands.TCP +{ + public class SendToGameUsers: IClientCommand + { + public string Message { get; set; } + public void Execute(ClientConnectionBase connection, IClientCommand entity) + { + var cmd = (SendToGameUsers) entity; + Trace.WriteLine($"Cmd sent to Users with message {Message}"); + } + } +} \ No newline at end of file diff --git a/ClientPluginBase/GamePlugin.cs b/ClientPluginBase/GamePlugin.cs new file mode 100644 index 0000000..804c2ba --- /dev/null +++ b/ClientPluginBase/GamePlugin.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Net; +using ClientExtensionsBase.Binary; +using ClientExtensionsBase.Plugin; +using ClientGamePlugin.Commands.TCP; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using Transport.Client; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Connections.Peers; +using Transport.Events; + +namespace ClientGamePlugin +{ + public class GamePlugin : ClientPluginBase + { + public event EventHandler> OnClientConnected; + public event EventHandler> OnClientDisconnected; + public event EventHandler> OnTransportException; + //public virtual string AppId { get; } + private ClientTransportBase _tcp; + public void Start() + { + var transports = new List(); + _tcp = new TcpClient(); + transports.Add(_tcp); + InitTransports(transports); + RegisterTCPCommands(_tcp); + _tcp.OnReceive += TcpOnReceive; + } + + private void TcpOnReceive(object sender, ClientGenericEventArgs clientGenericEventArgs) + { + var proto = new BinaryProtocol(clientGenericEventArgs.DataReceived); + Trace.WriteLine($"Package received {proto.GetCommandBytes()}"); + } + + public void Connect(IPEndPoint serverSide) + { + _tcp.Connect($"{serverSide.Address}:{serverSide.Port}"); + } + + public void JoinGame(string name) + { + var cmd = new JoinRequest {GameName = name}; + var proto = BinaryProcolHelper.GetProtocol(cmd); + _tcp.SendData(proto); + } + + public void Leave() + { + var cmd = new LeaveRequest(); + var proto = BinaryProcolHelper.GetProtocol(cmd); + _tcp.SendData(proto); + } + + public void GetUsersInGame(string name) + { + var cmd = new GetUsersInGame {GameName = name}; + var proto = BinaryProcolHelper.GetProtocol(cmd); + _tcp.SendData(proto); + } + + public void SendToGame(string gameName, ProtocolBase command) + { + var cmd = new SendToGameUsers() {Message = "Hello"}; + var proto = BinaryProcolHelper.GetProtocol(cmd); + _tcp.SendData(proto); + } + + public void SendToUserInGame(string gameName, string userId, ProtocolBase command) + { + if (gameName == null) throw new ArgumentNullException(nameof(gameName)); + if (userId == null) throw new ArgumentNullException(nameof(userId)); + if (command == null) throw new ArgumentNullException(nameof(command)); + } + + + private void RegisterTCPCommands(IClientTransport transport) + { + var cmds = new List { new JoinRequest(), new LeaveRequest() }; + + foreach (var cmd in cmds) + { + transport.RegisterCommand(cmd.GetType().Name, cmd); + } + } + } +} \ No newline at end of file diff --git a/ClientPluginBase/Properties/AssemblyInfo.cs b/ClientPluginBase/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..dc3d534 --- /dev/null +++ b/ClientPluginBase/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ClientPluginBase")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ClientPluginBase")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c1f6123d-22f8-4533-ad56-08a7e3583661")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ClientPluginBase/obj/Debug/ClientGamePlugin.csproj.FileListAbsolute.txt b/ClientPluginBase/obj/Debug/ClientGamePlugin.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..8c2c3eb --- /dev/null +++ b/ClientPluginBase/obj/Debug/ClientGamePlugin.csproj.FileListAbsolute.txt @@ -0,0 +1,11 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\obj\Debug\ClientGamePlugin.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\bin\Debug\ClientGamePlugin.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\bin\Debug\ClientGamePlugin.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\bin\Debug\ClientExtensionsBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\bin\Debug\ClientExtensionsBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\bin\Debug\Transport.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\obj\Debug\ClientGamePlugin.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\ClientPluginBase\obj\Debug\ClientGamePlugin.pdb diff --git a/GameBasePlugin/Commands/TCP/JoinRequest.cs b/GameBasePlugin/Commands/TCP/JoinRequest.cs new file mode 100644 index 0000000..c83631f --- /dev/null +++ b/GameBasePlugin/Commands/TCP/JoinRequest.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using System.Runtime.Serialization; +using GameBasePlugin.ProtocolWrapers; +using QuaternionProtocol; +using Transport; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Connections.Peers; + +namespace GameBasePlugin.Commands.TCP +{ + [DataContract] + public class JoinRequest : IServerCommand + { + [DataMember] + public string GameName { get; set; } + public void Execute(ServerConnection connection, IServerCommand entity) + { + var joinCmd = (JoinRequest)entity; + + List peersList; + if (ServerGameBaseServerPlugin.UsersInScenes.TryGetValue(joinCmd.GameName, out peersList)) + { + if (!peersList.Contains(connection.Peer)) + { + peersList.Add(connection.Peer); + + var cmd = new JoinResponse { IsOk = true, ConnectionId = connection.ConnectionId }; + var response = BinaryProcolHelper.GetProtocol(cmd); + connection.SendData(response); + + ServerGameBaseServerPlugin.SendToGamePlayers(joinCmd.GameName, response); + } + } + } + } +} \ No newline at end of file diff --git a/GameBasePlugin/Commands/TCP/JoinResponse.cs b/GameBasePlugin/Commands/TCP/JoinResponse.cs new file mode 100644 index 0000000..2fbac46 --- /dev/null +++ b/GameBasePlugin/Commands/TCP/JoinResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Runtime.Serialization; + +namespace GameBasePlugin.Commands.TCP +{ + [DataContract, Serializable] + public class JoinResponse + { + public bool IsOk { get; set; } + public string ConnectionId { get; set; } + } +} \ No newline at end of file diff --git a/GameBasePlugin/Commands/TCP/LeaveRequest.cs b/GameBasePlugin/Commands/TCP/LeaveRequest.cs new file mode 100644 index 0000000..3eeaf92 --- /dev/null +++ b/GameBasePlugin/Commands/TCP/LeaveRequest.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using GameBasePlugin.ProtocolWrapers; +using Transport; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Connections.Peers; + +namespace GameBasePlugin.Commands.TCP +{ + [DataContract, Serializable] + public class LeaveRequest: IServerCommand + { + [DataMember] + public string GameName { get; set; } + + public void Execute(ServerConnection connection, IServerCommand entity) + { + var leaveRequest = (LeaveRequest)entity; + var leaveResponse = new LeaveResponse(); + List connections; + + if (ServerGameBaseServerPlugin.UsersInScenes.TryGetValue(leaveRequest.GameName, out connections)) + { + var connInGame = connections.FirstOrDefault(x => x == connection.Peer); + + if (connInGame != null) + { + leaveResponse.IsOk = true; + connections.Remove(connInGame); + } + leaveResponse.OperationDetails = "User not in game"; + } + else + { + leaveResponse.OperationDetails = "Game not found"; + } + + leaveResponse.ConnectionId = connection.ConnectionId; + var cmd = BinaryProcolHelper.GetProtocol(leaveResponse); + connection.SendData(cmd); + + ServerGameBaseServerPlugin.SendToGamePlayers(leaveRequest.GameName, cmd); + } + } +} \ No newline at end of file diff --git a/GameBasePlugin/Commands/TCP/LeaveResponse.cs b/GameBasePlugin/Commands/TCP/LeaveResponse.cs new file mode 100644 index 0000000..1914fb7 --- /dev/null +++ b/GameBasePlugin/Commands/TCP/LeaveResponse.cs @@ -0,0 +1,16 @@ +using System; +using System.Runtime.Serialization; + +namespace GameBasePlugin.Commands.TCP +{ + [DataContract, Serializable] + public class LeaveResponse + { + [DataMember] + public bool IsOk { get; set; } + [DataMember] + public string OperationDetails { get; set; } + [DataMember] + public string ConnectionId { get; set; } + } +} \ No newline at end of file diff --git a/GameBasePlugin/GameBasePlugin.cs b/GameBasePlugin/GameBasePlugin.cs new file mode 100644 index 0000000..b5da88b --- /dev/null +++ b/GameBasePlugin/GameBasePlugin.cs @@ -0,0 +1,62 @@ +#region + +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using GameBasePlugin.Commands.TCP; +using GameBasePlugin.ProtocolWrapers; +using QuaternionProtocol.Protocol; +using Transport; +using Transport.Connections; +using Transport.Connections.Peers; + +#endregion + +namespace GameBasePlugin +{ + public class ServerGameBaseServerPlugin : PluginBase.ServerPluginBase + { + public override string PluginName => "ServerGameBaseServerPlugin"; + public override string AppId { get; } + + public static readonly ConcurrentDictionary> UsersInScenes = + new ConcurrentDictionary>(); + + public ServerGameBaseServerPlugin(string appId) + { + AppId = appId; + OnClientDisconnected += GameServerPluginOnClientDisconnected; + } + + public static void SendToGamePlayers(string gameName, ProtocolBase package, + string protocolName = "TCPIPV4") + { + List playersPeers; + if (UsersInScenes.TryGetValue(gameName, out playersPeers)) + { + foreach (var peer in playersPeers) + { + var conn = peer.Connections.FirstOrDefault(x => x.Key == protocolName).Value; + conn?.SendData(package); + } + } + } + + private void GameServerPluginOnClientDisconnected(object sender, ServerConnectionBase connection) + { + var peersList = UsersInScenes.FirstOrDefault(x => x.Value.Contains(connection.Peer)); + + if (!string.IsNullOrEmpty(peersList.Key)) + { + peersList.Value?.Remove(connection.Peer); + + var leaveResponse = new LeaveResponse {ConnectionId = connection.ConnectionId, IsOk = true}; + foreach (var peer in peersList.Value) + { + var cmd = BinaryProcolHelper.GetProtocol(leaveResponse); + peer.Connections.First().Value?.SendData(cmd); + } + } + } + } +} \ No newline at end of file diff --git a/GameBasePlugin/GameBasePlugin.csproj b/GameBasePlugin/GameBasePlugin.csproj new file mode 100644 index 0000000..7b49820 --- /dev/null +++ b/GameBasePlugin/GameBasePlugin.csproj @@ -0,0 +1,82 @@ + + + + + Debug + AnyCPU + {6CC74BAD-59DE-4481-B8D4-299E040FC94C} + Library + Properties + GameBasePlugin + GameBasePlugin + v4.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {6F7BC5F3-910F-411B-ADC2-E3572832026E} + ClientExtensionsBase + + + {d8a94093-5adc-4e93-8f4f-16417cc705a6} + PluginBase + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + \ No newline at end of file diff --git a/GameBasePlugin/Properties/AssemblyInfo.cs b/GameBasePlugin/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7e458c3 --- /dev/null +++ b/GameBasePlugin/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("GameBasePlugin")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("GameBasePlugin")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6cc74bad-59de-4481-b8d4-299e040fc94c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/GameBasePlugin/ProtocolWrapers/BinaryProtocolDataContractSerializer.cs b/GameBasePlugin/ProtocolWrapers/BinaryProtocolDataContractSerializer.cs new file mode 100644 index 0000000..3000d6b --- /dev/null +++ b/GameBasePlugin/ProtocolWrapers/BinaryProtocolDataContractSerializer.cs @@ -0,0 +1,18 @@ +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using QuaternionProtocol.Serializers; + +namespace GameBasePlugin.ProtocolWrapers +{ + public static class BinaryProcolHelper where T : new() + { + public static ProtocolBase GetProtocol(T data) + { + return BinaryProtocol.FromData(data, GetSerializer()); + } + public static IGenericSerializer GetSerializer() + { + return new BinaryFormaterGenericSerializer(); + } + } +} \ No newline at end of file diff --git a/GameBasePlugin/obj/Debug/GameBasePlugin.csproj.FileListAbsolute.txt b/GameBasePlugin/obj/Debug/GameBasePlugin.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..18693b0 --- /dev/null +++ b/GameBasePlugin/obj/Debug/GameBasePlugin.csproj.FileListAbsolute.txt @@ -0,0 +1,13 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\obj\Debug\GameBasePlugin.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\GameBasePlugin.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\GameBasePlugin.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\ClientExtensionsBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\PluginBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\ClientExtensionsBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\PluginBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\bin\Debug\Transport.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\obj\Debug\GameBasePlugin.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\GameBasePlugin\obj\Debug\GameBasePlugin.pdb diff --git a/GameBasePlugin/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/GameBasePlugin/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/GameBasePlugin/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/GameBasePlugin/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/GameBasePlugin/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/GameBasePlugin/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/HttpServer/Properties/AssemblyInfo.cs b/HttpServer/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3051cde --- /dev/null +++ b/HttpServer/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HttpServer")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HttpServer")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7cf29eb8-9dc1-43e4-9125-b6f80dcbb0f5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/HttpServer/SignalRServer.csproj b/HttpServer/SignalRServer.csproj new file mode 100644 index 0000000..9897b25 --- /dev/null +++ b/HttpServer/SignalRServer.csproj @@ -0,0 +1,68 @@ + + + + + Debug + AnyCPU + {7CF29EB8-9DC1-43E4-9125-B6F80DCBB0F5} + Library + Properties + SignalRServer + SignalRServer + v4.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + {7BFDA634-9654-44D8-AE0E-FDCA6284516D} + BosonProtocol + + + {18754433-15C4-4478-AC06-C68533451FF2} + Transport + + + + + \ No newline at end of file diff --git a/HttpServer/SignalRTransport.cs b/HttpServer/SignalRTransport.cs new file mode 100644 index 0000000..14a8ca4 --- /dev/null +++ b/HttpServer/SignalRTransport.cs @@ -0,0 +1,72 @@ +using System; +using System.IO; +using BosonProtocol; +using BosonProtocol.Protocol; +using Transport; +using Transport.Events; + +namespace SignalRServer +{ + public class SignalRTransport: TransportBase + { + protected override void Ping(GenericEventArgs obj) + { + throw new NotImplementedException(); + } + + public override string TransportName => "SignalRTransport"; + public override string ServerAddress { get; } + public override void DisconnectClient(string connectionId) + { + throw new NotImplementedException(); + } + + public override void Dispose() + { + throw new NotImplementedException(); + } + + public override void Start() + { + throw new NotImplementedException(); + } + + public override string GetClientAddressInfo(string connectionId) + { + throw new NotImplementedException(); + } + + public override OperationState SendData(string connectionId, ProtocolBase data) + { + var protoBytes = data as ProtocolBase; + + if (protoBytes != null) + { + + return new OperationState {IsSuccessful = true}; + } + + return new OperationState { IsSuccessful = false, Details = "ProtocolBase is correct type of Proto" }; + } + + public override OperationState SendData(Stream data, string connectionId) + { + throw new NotImplementedException(); + } + + public override DateTime LastPingTimeFor(string connectionId) + { + throw new NotImplementedException(); + } + + public override TransportStats GetStats(string connectionId) + { + throw new NotImplementedException(); + } + + public override void ChangeConnectionId(string oldConnectionId, string newConnectionId) + { + throw new NotImplementedException(); + } + } +} diff --git a/HttpServer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/HttpServer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/HttpServer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/HttpServer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/HttpServer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/HttpServer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/Launcher/Launcher.cs b/Launcher/Launcher.cs new file mode 100644 index 0000000..e925620 --- /dev/null +++ b/Launcher/Launcher.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using PluginBase; +using SocketServer; +using Transport.Server; + +namespace Launcher +{ + public class Launcher + { + public readonly List TransportList = new List(); + protected bool IsStarted = false; + public Launcher() + { + var tcp = new TcpSocketServer(); + TransportList.Add(tcp); + } + + public void LoadPlugin(string pathToPlugin) + { + if (!IsStarted) + { + var assembly = Assembly.LoadFrom(pathToPlugin); + var pluginType = assembly.GetTypes().FirstOrDefault(x => x.IsAssignableFrom(typeof(ServerPluginBase))); + if (pluginType != null) + { + var plugin = (ServerPluginBase)Activator.CreateInstance(pluginType); + + if (plugin != null) + LoadPlugin(plugin); + } + } + } + + public void LoadPlugin(ServerPluginBase plugin) + { + if (!IsStarted) + { + plugin.InitTransports(TransportList); + IsStarted = true; + } + } + + } +} diff --git a/Launcher/Launcher.csproj b/Launcher/Launcher.csproj new file mode 100644 index 0000000..decbcc4 --- /dev/null +++ b/Launcher/Launcher.csproj @@ -0,0 +1,72 @@ + + + + + Debug + AnyCPU + {531B5458-131B-45D1-8268-0887A57FB30F} + Library + Properties + Launcher + Launcher + v4.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + {D8A94093-5ADC-4E93-8F4F-16417CC705A6} + PluginBase + + + {7f3c4879-fd24-4e39-aaff-417088d2eb9a} + SocketServer + + + {18754433-15C4-4478-AC06-C68533451FF2} + Transport + + + + + \ No newline at end of file diff --git a/Launcher/Properties/AssemblyInfo.cs b/Launcher/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d299a85 --- /dev/null +++ b/Launcher/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Launcher")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Launcher")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("531b5458-131b-45d1-8268-0887a57fb30f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Launcher/obj/Debug/Launcher.csproj.FileListAbsolute.txt b/Launcher/obj/Debug/Launcher.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..5455cae --- /dev/null +++ b/Launcher/obj/Debug/Launcher.csproj.FileListAbsolute.txt @@ -0,0 +1,15 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\Launcher.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\Launcher.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\PluginBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\SocketServer.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\ObjectsPool.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\PluginBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\SocketServer.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\Transport.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\bin\Debug\ObjectsPool.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\obj\Debug\Launcher.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\obj\Debug\Launcher.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Launcher\obj\Debug\Launcher.pdb diff --git a/Launcher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/Launcher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/Launcher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/Launcher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/Launcher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/Launcher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/ObjectsPool/ObjectsPool.csproj b/ObjectsPool/ObjectsPool.csproj new file mode 100644 index 0000000..05c6d0c --- /dev/null +++ b/ObjectsPool/ObjectsPool.csproj @@ -0,0 +1,59 @@ + + + + + Debug + AnyCPU + {CF05EEDF-1CF9-4D6E-83E4-420A66B0A15B} + Library + Properties + ObjectsPool + ObjectsPool + v4.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ObjectsPool/Pool.cs b/ObjectsPool/Pool.cs new file mode 100644 index 0000000..3ee6ee2 --- /dev/null +++ b/ObjectsPool/Pool.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; + +namespace ObjectsPool +{ + // This project can output the Class library as a NuGet Package. + // To enable this option, right-click on the project and select the Properties menu item. In the Build tab select "Produce outputs on build". + public class Pool : ICollection where T : class, new() + { + ConcurrentBag _pool = new ConcurrentBag(); + public Pool() + { + } + + public T Take() + { + T item; + _pool.TryTake(out item); + + var poolSlotItem = item as IPoolSlot; + + if (poolSlotItem != null) + { + poolSlotItem.PoolReference = this; + } + + return item ?? (new T()); + } + + public void Release(object objectToRelease) + { + var typedObject = objectToRelease as T; + + if (typedObject == null) return; + + var poolSlot = typedObject as IPoolSlot; + + if (poolSlot != null) + { + poolSlot.Clean(); + } + else + { + var properties = typeof(T).GetRuntimeProperties().Where(x => x.CanWrite && x.CanRead && x.SetMethod != null); + + foreach (var property in properties) + { + + if (!property.PropertyType.IsByRef) + { + property.SetValue(typedObject, Activator.CreateInstance(property.PropertyType)); + } + else + { + property.SetValue(typedObject, null); + } + } + } + + _pool.Add(typedObject); + } + + + #region ICollection + public IEnumerator GetEnumerator() + { + return _pool.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Add(T item) + { + _pool.Add(item); + } + + public void Clear() + { + _pool = new ConcurrentBag(); + } + + public bool Contains(T item) + { + return _pool.Contains(item); + } + + public void CopyTo(T[] array, int arrayIndex) + { + _pool.CopyTo(array, arrayIndex); + } + + public bool Remove(T item) + { + return _pool.TryTake(out item); + } + + public int Count => _pool.Count; + public bool IsReadOnly => false; + #endregion + } +} diff --git a/ObjectsPool/PoolSlot.cs b/ObjectsPool/PoolSlot.cs new file mode 100644 index 0000000..6bd1ad6 --- /dev/null +++ b/ObjectsPool/PoolSlot.cs @@ -0,0 +1,10 @@ +namespace ObjectsPool +{ + public interface IPoolSlot where T: class, new() + { + Pool PoolReference { get; set; } + void Clean(); + + void Release(); + } +} \ No newline at end of file diff --git a/ObjectsPool/Properties/AssemblyInfo.cs b/ObjectsPool/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b303465 --- /dev/null +++ b/ObjectsPool/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ObjectsPool")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ObjectsPool")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cf05eedf-1cf9-4d6e-83e4-420a66b0a15b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ObjectsPool/obj/Debug/ObjectsPool.csproj.FileListAbsolute.txt b/ObjectsPool/obj/Debug/ObjectsPool.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..0c72af8 --- /dev/null +++ b/ObjectsPool/obj/Debug/ObjectsPool.csproj.FileListAbsolute.txt @@ -0,0 +1,5 @@ +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\ObjectsPool\bin\Debug\ObjectsPool.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\ObjectsPool\bin\Debug\ObjectsPool.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\ObjectsPool\obj\Debug\ObjectsPool.csprojResolveAssemblyReference.cache +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\ObjectsPool\obj\Debug\ObjectsPool.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\ObjectsPool\obj\Debug\ObjectsPool.pdb diff --git a/ObjectsPool/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/ObjectsPool/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/ObjectsPool/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/ObjectsPool/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/ObjectsPool/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/ObjectsPool/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/Plugin/IServerPlugin.cs b/Plugin/IServerPlugin.cs new file mode 100644 index 0000000..52a89b5 --- /dev/null +++ b/Plugin/IServerPlugin.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using QuaternionProtocol; +using Transport; +using Transport.Connections; +using Transport.Server; +using IServerTransport = Transport.Server.IServerTransport; + +namespace PluginBase +{ + public interface IServerPlugin + { + event EventHandler OnClientConnected; + event EventHandler OnClientDisconnected; + event EventHandler> OnTransportException; + string PluginName { get; } + string AppId { get; } + + /// + /// All aviable transport instances. SetUp and return it + /// + /// All aviable default transports instances + /// Return only thouse you want to use + IEnumerable InitTransports(IEnumerable aviableTransports); + } +} diff --git a/Plugin/PluginBase.csproj b/Plugin/PluginBase.csproj new file mode 100644 index 0000000..91a0bbd --- /dev/null +++ b/Plugin/PluginBase.csproj @@ -0,0 +1,69 @@ + + + + + Debug + AnyCPU + {D8A94093-5ADC-4E93-8F4F-16417CC705A6} + Library + Properties + PluginBase + PluginBase + v4.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + \ No newline at end of file diff --git a/Plugin/Properties/AssemblyInfo.cs b/Plugin/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ba80a89 --- /dev/null +++ b/Plugin/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Plugin")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Plugin")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("d8a94093-5adc-4e93-8f4f-16417cc705a6")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Plugin/ServerPluginBase.cs b/Plugin/ServerPluginBase.cs new file mode 100644 index 0000000..0e954b7 --- /dev/null +++ b/Plugin/ServerPluginBase.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using QuaternionProtocol; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Server; + +namespace PluginBase +{ + public abstract class ServerPluginBase : IServerPlugin + { + public event EventHandler OnClientConnected; + public event EventHandler OnClientDisconnected; + public event EventHandler> OnTransportException; + protected readonly List Transports = new List(); + + public abstract string PluginName { get; } + public abstract string AppId { get; } + + public virtual IEnumerable InitTransports(IEnumerable aviableTransports) + { + foreach (var transport in aviableTransports) + { + switch (transport.TransportName) + { + case "TCPIPV4": + Transports.Add(transport); + //transport.SetPort(1000); + transport.Start(); + transport.OnConnected += (sender, connectionArgs) => { ClientConnected(connectionArgs.DataReceived); }; + transport.OnDisconnected += (sender, connectionArgs) => { ClientDisconnected(connectionArgs.DataReceived); }; + transport.OnError += (sender, exceptionArgs) => { TransportException(new Tuple(transport, exceptionArgs.DataReceived)); }; + break; + case "UDPIPV4": + Transports.Add(transport); + //transport.SetPort(10100); + transport.Start(); + transport.OnConnected += (sender, connectionArgs) => { ClientConnected(connectionArgs.DataReceived); }; + transport.OnDisconnected += (sender, connectionArgs) => { ClientDisconnected(connectionArgs.DataReceived); }; + transport.OnError += (sender, exceptionArgs) => { TransportException(new Tuple(transport, exceptionArgs.DataReceived)); }; + break; + } + } + + return Transports.ToArray(); + } + + public IServerTransport GetTransportByName(string transportName) + { + return Transports.FirstOrDefault(x => x.TransportName == transportName); + } + + public OperationState RegisterReceiveCommand(IServerTransport serverTransport, string commandName, T execute) where T: IServerCommand + { + if (serverTransport == null) throw new ArgumentNullException(nameof(serverTransport)); + if (string.IsNullOrEmpty(commandName)) throw new ArgumentNullException(nameof(commandName)); + if (execute == null) throw new ArgumentNullException(nameof(execute)); + + return serverTransport.RegisterCommand(commandName, execute); + } + + public OperationState RegisterReceiveCommand(IServerTransport serverTransport, T execute) where T : IServerCommand + { + if (serverTransport == null) throw new ArgumentNullException(nameof(serverTransport)); + if (execute == null) throw new ArgumentNullException(nameof(execute)); + return RegisterReceiveCommand(serverTransport, typeof(T).Name, execute); + } + + #region Invoke + + + protected void ClientConnected(ServerConnectionBase e) + { + OnClientConnected?.Invoke(this, e); + } + + protected void ClientDisconnected(ServerConnectionBase e) + { + OnClientDisconnected?.Invoke(this, e); + } + + protected void TransportException(Tuple e) + { + OnTransportException?.Invoke(this, e); + } + #endregion + } +} \ No newline at end of file diff --git a/Plugin/obj/Debug/Plugin.csproj.FileListAbsolute.txt b/Plugin/obj/Debug/Plugin.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..99fc225 --- /dev/null +++ b/Plugin/obj/Debug/Plugin.csproj.FileListAbsolute.txt @@ -0,0 +1,9 @@ +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\Plugin.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\Plugin.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\BosonProtocol.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\Transport.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\BosonProtocol.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\Transport.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\obj\Debug\Plugin.csprojResolveAssemblyReference.cache +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\obj\Debug\Plugin.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\obj\Debug\Plugin.pdb diff --git a/Plugin/obj/Debug/PluginBase.csproj.FileListAbsolute.txt b/Plugin/obj/Debug/PluginBase.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..d9cd081 --- /dev/null +++ b/Plugin/obj/Debug/PluginBase.csproj.FileListAbsolute.txt @@ -0,0 +1,9 @@ +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\PluginBase.dll +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\PluginBase.pdb +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\bin\Debug\Transport.pdb +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\obj\Debug\PluginBase.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\obj\Debug\PluginBase.dll +C:\Users\goryanin.INFOSYSTEM\documents\visual studio 2015\Projects\ClientExtensionsBase\Plugin\obj\Debug\PluginBase.pdb diff --git a/Plugin/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/Plugin/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/Plugin/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/Plugin/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/Plugin/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/Plugin/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/PluginBase/IPlugin.cs b/PluginBase/IPlugin.cs new file mode 100644 index 0000000..4486d24 --- /dev/null +++ b/PluginBase/IPlugin.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using QuaternionProtocol; +using Transport; +using Transport.Connections; +using Transport.Server; + +namespace PluginBase +{ + public interface IPlugin + { + event EventHandler OnClientConnected; + event EventHandler OnClientDisconnected; + event EventHandler> OnTransportException; + string PluginName { get; } + string AppId { get; } + + /// + /// All aviable transport instances. SetUp and return it + /// + /// All aviable default transports instances + /// Return only thouse you want to use + IEnumerable InitTransports(IEnumerable aviableTransports); + } +} diff --git a/PluginBase/PluginBase.cs b/PluginBase/PluginBase.cs new file mode 100644 index 0000000..6676c26 --- /dev/null +++ b/PluginBase/PluginBase.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using QuaternionProtocol; +using Transport; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Server; + +namespace PluginBase +{ + public abstract class PluginBase where TTransportBase: ITransport , IPlugin + { + public event EventHandler OnClientConnected; + public event EventHandler OnClientDisconnected; + public event EventHandler> OnTransportException; + protected readonly List Transports = new List(); + + public abstract string PluginName { get; } + public abstract string AppId { get; } + + public virtual IEnumerable InitTransports(IEnumerable aviableTransports) + { + foreach (var transport in aviableTransports) + { + switch (transport.TransportName) + { + case "TCPIPV4": + Transports.Add(transport); + //transport.SetPort(1000); + transport.Start(); + transport.OnConnected += (sender, connectionArgs) => { ClientConnected(connectionArgs.DataReceived); }; + transport.OnDisconnected += (sender, connectionArgs) => { ClientDisconnected(connectionArgs.DataReceived); }; + transport.OnError += (sender, exceptionArgs) => { TransportException(new Tuple(transport, exceptionArgs.DataReceived)); }; + break; + case "UDPIPV4": + Transports.Add(transport); + //transport.SetPort(10100); + transport.Start(); + transport.OnConnected += (sender, connectionArgs) => { ClientConnected(connectionArgs.DataReceived); }; + transport.OnDisconnected += (sender, connectionArgs) => { ClientDisconnected(connectionArgs.DataReceived); }; + transport.OnError += (sender, exceptionArgs) => { TransportException(new Tuple(transport, exceptionArgs.DataReceived)); }; + break; + } + } + + return Transports.ToArray(); + } + + public TTransportBase GetTransportByName(string transportName) + { + return Transports.FirstOrDefault(x => x.TransportName == transportName); + } + + public OperationState RegisterReceiveCommand(TTransportBase serverTransport, string commandName, TCommand execute) where TCommand: ICommand + { + if (serverTransport == null) throw new ArgumentNullException(nameof(serverTransport)); + if (string.IsNullOrEmpty(commandName)) throw new ArgumentNullException(nameof(commandName)); + if (execute == null) throw new ArgumentNullException(nameof(execute)); + + return serverTransport.RegisterCommand(commandName, execute); + } + + public OperationState RegisterReceiveCommand(TTransportBase serverTransport, TCommand execute) where TCommand : ICommand + { + if (serverTransport == null) throw new ArgumentNullException(nameof(serverTransport)); + if (execute == null) throw new ArgumentNullException(nameof(execute)); + return RegisterReceiveCommand(serverTransport, typeof(TTransportBase).Name, execute); + } + + #region Invoke + + + protected void ClientConnected(ServerConnectionBase e) + { + OnClientConnected?.Invoke(this, e); + } + + protected void ClientDisconnected(ServerConnectionBase e) + { + OnClientDisconnected?.Invoke(this, e); + } + + protected void TransportException(Tuple e) + { + OnTransportException?.Invoke(this, e); + } + #endregion + } +} \ No newline at end of file diff --git a/PluginBase/PluginBase.csproj b/PluginBase/PluginBase.csproj new file mode 100644 index 0000000..b1bcaa7 --- /dev/null +++ b/PluginBase/PluginBase.csproj @@ -0,0 +1,64 @@ + + + + + Debug + AnyCPU + {C9B1FCB3-B3B2-485C-856A-BB028212F017} + Library + Properties + PluginBase + PluginBase + v2.0 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + \ No newline at end of file diff --git a/PluginBase/Properties/AssemblyInfo.cs b/PluginBase/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4960b1e --- /dev/null +++ b/PluginBase/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PluginBase")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PluginBase")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c9b1fcb3-b3b2-485c-856a-bb028212f017")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PluginLauncher/PluginLauncher.cs b/PluginLauncher/PluginLauncher.cs new file mode 100644 index 0000000..09a5a99 --- /dev/null +++ b/PluginLauncher/PluginLauncher.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using QuaternionProtocol; +using PluginBase; +using SocketServer; +using Transport; +using Transport.Server; +using IServerTransport = Transport.Server.IServerTransport; + +namespace PluginLauncher +{ + public class PluginLauncher + { + public OperationState Load(IServerPlugin plugin) + { + try + { + var tcpServer = new TcpSocketServer(); + plugin.InitTransports(new List { tcpServer }); + } + catch (Exception ex) + { + return new OperationState { IsSuccessful = false, Details = ex.ToString() }; + } + + return new OperationState { IsSuccessful = true }; + } + } +} diff --git a/PluginLauncher/PluginLauncher.csproj b/PluginLauncher/PluginLauncher.csproj new file mode 100644 index 0000000..3535905 --- /dev/null +++ b/PluginLauncher/PluginLauncher.csproj @@ -0,0 +1,76 @@ + + + + + Debug + AnyCPU + {EB81340D-1CB9-434C-89E9-FE4F29C45B99} + Library + Properties + PluginLauncher + PluginLauncher + v4.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {d8a94093-5adc-4e93-8f4f-16417cc705a6} + PluginBase + + + {7F3C4879-FD24-4E39-AAFF-417088D2EB9A} + SocketServer + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + \ No newline at end of file diff --git a/PluginLauncher/Properties/AssemblyInfo.cs b/PluginLauncher/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..248ebe5 --- /dev/null +++ b/PluginLauncher/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PluginLauncher")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PluginLauncher")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("eb81340d-1cb9-434c-89e9-fe4f29c45b99")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PluginLauncher/obj/Debug/PluginLauncher.csproj.FileListAbsolute.txt b/PluginLauncher/obj/Debug/PluginLauncher.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..5bc7537 --- /dev/null +++ b/PluginLauncher/obj/Debug/PluginLauncher.csproj.FileListAbsolute.txt @@ -0,0 +1,15 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\PluginLauncher.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\PluginLauncher.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\PluginBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\SocketServer.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\ObjectsPool.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\PluginBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\SocketServer.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\Transport.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\bin\Debug\ObjectsPool.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\obj\Debug\PluginLauncher.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\obj\Debug\PluginLauncher.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\PluginLauncher\obj\Debug\PluginLauncher.pdb diff --git a/PluginLauncher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/PluginLauncher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/PluginLauncher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/PluginLauncher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/PluginLauncher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/PluginLauncher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/QuaternionServer.sln b/QuaternionServer.sln new file mode 100644 index 0000000..0ced2fe --- /dev/null +++ b/QuaternionServer.sln @@ -0,0 +1,192 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientExtensionsBase", "ClientExtensionsBase\ClientExtensionsBase.csproj", "{6F7BC5F3-910F-411B-ADC2-E3572832026E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client", "Client", "{242C3CB9-6C1E-4582-B1B0-B4E84409A505}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Server", "Server", "{0B74D41C-D81D-4599-A2E1-F6DDEC0D4D21}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuaternionProtocol", "BosonProtocol\QuaternionProtocol.csproj", "{7BFDA634-9654-44D8-AE0E-FDCA6284516D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityExtension", "UnityExtension\UnityExtension.csproj", "{02104D08-4788-42C8-918C-E760E26AFB3D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Transports", "Transports", "{BCCB1E48-EA08-4449-A2A9-C165337F3FB2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{2E3DF5C2-8A38-4A03-86D7-8D463C917E47}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{436CD2F6-978E-4148-B693-334AB26ED6E4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Transport", "Transport\Transport.csproj", "{18754433-15C4-4478-AC06-C68533451FF2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SocketServer", "SocketServer\SocketServer.csproj", "{7F3C4879-FD24-4E39-AAFF-417088D2EB9A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectsPool", "ObjectsPool\ObjectsPool.csproj", "{CF05EEDF-1CF9-4D6E-83E4-420A66B0A15B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{915EDA1F-EA1E-4871-900C-B797FD9731BA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluginBase", "Plugin\PluginBase.csproj", "{D8A94093-5ADC-4E93-8F4F-16417CC705A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluginLauncher", "PluginLauncher\PluginLauncher.csproj", "{EB81340D-1CB9-434C-89E9-FE4F29C45B99}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{2B2AEE4E-55ED-41BE-A58C-2BEA14009804}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SocketServerLauncher", "Test\SocketServerLauncher\SocketServerLauncher.csproj", "{A99B1320-ABFB-4043-B4C6-4B0BE4D5AF8A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SocketServerClient", "Test\SocketServerClient\SocketServerClient.csproj", "{A343FAE6-6963-44CB-9CC0-75D3FC33A1DF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher", "Launcher\Launcher.csproj", "{531B5458-131B-45D1-8268-0887A57FB30F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameBasePlugin", "GameBasePlugin\GameBasePlugin.csproj", "{6CC74BAD-59DE-4481-B8D4-299E040FC94C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClientGamePlugin", "ClientPluginBase\ClientGamePlugin.csproj", "{C1F6123D-22F8-4533-AD56-08A7E3583661}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6F7BC5F3-910F-411B-ADC2-E3572832026E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F7BC5F3-910F-411B-ADC2-E3572832026E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F7BC5F3-910F-411B-ADC2-E3572832026E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F7BC5F3-910F-411B-ADC2-E3572832026E}.Release|Any CPU.Build.0 = Release|Any CPU + {7BFDA634-9654-44D8-AE0E-FDCA6284516D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BFDA634-9654-44D8-AE0E-FDCA6284516D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BFDA634-9654-44D8-AE0E-FDCA6284516D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BFDA634-9654-44D8-AE0E-FDCA6284516D}.Release|Any CPU.Build.0 = Release|Any CPU + {02104D08-4788-42C8-918C-E760E26AFB3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02104D08-4788-42C8-918C-E760E26AFB3D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02104D08-4788-42C8-918C-E760E26AFB3D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02104D08-4788-42C8-918C-E760E26AFB3D}.Release|Any CPU.Build.0 = Release|Any CPU + {2E3DF5C2-8A38-4A03-86D7-8D463C917E47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E3DF5C2-8A38-4A03-86D7-8D463C917E47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E3DF5C2-8A38-4A03-86D7-8D463C917E47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E3DF5C2-8A38-4A03-86D7-8D463C917E47}.Release|Any CPU.Build.0 = Release|Any CPU + {18754433-15C4-4478-AC06-C68533451FF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {18754433-15C4-4478-AC06-C68533451FF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {18754433-15C4-4478-AC06-C68533451FF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {18754433-15C4-4478-AC06-C68533451FF2}.Release|Any CPU.Build.0 = Release|Any CPU + {7F3C4879-FD24-4E39-AAFF-417088D2EB9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F3C4879-FD24-4E39-AAFF-417088D2EB9A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F3C4879-FD24-4E39-AAFF-417088D2EB9A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F3C4879-FD24-4E39-AAFF-417088D2EB9A}.Release|Any CPU.Build.0 = Release|Any CPU + {CF05EEDF-1CF9-4D6E-83E4-420A66B0A15B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF05EEDF-1CF9-4D6E-83E4-420A66B0A15B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF05EEDF-1CF9-4D6E-83E4-420A66B0A15B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF05EEDF-1CF9-4D6E-83E4-420A66B0A15B}.Release|Any CPU.Build.0 = Release|Any CPU + {D8A94093-5ADC-4E93-8F4F-16417CC705A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8A94093-5ADC-4E93-8F4F-16417CC705A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8A94093-5ADC-4E93-8F4F-16417CC705A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8A94093-5ADC-4E93-8F4F-16417CC705A6}.Release|Any CPU.Build.0 = Release|Any CPU + {EB81340D-1CB9-434C-89E9-FE4F29C45B99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB81340D-1CB9-434C-89E9-FE4F29C45B99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB81340D-1CB9-434C-89E9-FE4F29C45B99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB81340D-1CB9-434C-89E9-FE4F29C45B99}.Release|Any CPU.Build.0 = Release|Any CPU + {A99B1320-ABFB-4043-B4C6-4B0BE4D5AF8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A99B1320-ABFB-4043-B4C6-4B0BE4D5AF8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A99B1320-ABFB-4043-B4C6-4B0BE4D5AF8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A99B1320-ABFB-4043-B4C6-4B0BE4D5AF8A}.Release|Any CPU.Build.0 = Release|Any CPU + {A343FAE6-6963-44CB-9CC0-75D3FC33A1DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A343FAE6-6963-44CB-9CC0-75D3FC33A1DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A343FAE6-6963-44CB-9CC0-75D3FC33A1DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A343FAE6-6963-44CB-9CC0-75D3FC33A1DF}.Release|Any CPU.Build.0 = Release|Any CPU + {531B5458-131B-45D1-8268-0887A57FB30F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {531B5458-131B-45D1-8268-0887A57FB30F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {531B5458-131B-45D1-8268-0887A57FB30F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {531B5458-131B-45D1-8268-0887A57FB30F}.Release|Any CPU.Build.0 = Release|Any CPU + {6CC74BAD-59DE-4481-B8D4-299E040FC94C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CC74BAD-59DE-4481-B8D4-299E040FC94C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CC74BAD-59DE-4481-B8D4-299E040FC94C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CC74BAD-59DE-4481-B8D4-299E040FC94C}.Release|Any CPU.Build.0 = Release|Any CPU + {C1F6123D-22F8-4533-AD56-08A7E3583661}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1F6123D-22F8-4533-AD56-08A7E3583661}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1F6123D-22F8-4533-AD56-08A7E3583661}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1F6123D-22F8-4533-AD56-08A7E3583661}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {6F7BC5F3-910F-411B-ADC2-E3572832026E} = {242C3CB9-6C1E-4582-B1B0-B4E84409A505} + {7BFDA634-9654-44D8-AE0E-FDCA6284516D} = {436CD2F6-978E-4148-B693-334AB26ED6E4} + {02104D08-4788-42C8-918C-E760E26AFB3D} = {242C3CB9-6C1E-4582-B1B0-B4E84409A505} + {BCCB1E48-EA08-4449-A2A9-C165337F3FB2} = {0B74D41C-D81D-4599-A2E1-F6DDEC0D4D21} + {2E3DF5C2-8A38-4A03-86D7-8D463C917E47} = {2B2AEE4E-55ED-41BE-A58C-2BEA14009804} + {18754433-15C4-4478-AC06-C68533451FF2} = {436CD2F6-978E-4148-B693-334AB26ED6E4} + {7F3C4879-FD24-4E39-AAFF-417088D2EB9A} = {BCCB1E48-EA08-4449-A2A9-C165337F3FB2} + {CF05EEDF-1CF9-4D6E-83E4-420A66B0A15B} = {0B74D41C-D81D-4599-A2E1-F6DDEC0D4D21} + {915EDA1F-EA1E-4871-900C-B797FD9731BA} = {0B74D41C-D81D-4599-A2E1-F6DDEC0D4D21} + {D8A94093-5ADC-4E93-8F4F-16417CC705A6} = {915EDA1F-EA1E-4871-900C-B797FD9731BA} + {EB81340D-1CB9-434C-89E9-FE4F29C45B99} = {915EDA1F-EA1E-4871-900C-B797FD9731BA} + {A99B1320-ABFB-4043-B4C6-4B0BE4D5AF8A} = {2B2AEE4E-55ED-41BE-A58C-2BEA14009804} + {A343FAE6-6963-44CB-9CC0-75D3FC33A1DF} = {2B2AEE4E-55ED-41BE-A58C-2BEA14009804} + {531B5458-131B-45D1-8268-0887A57FB30F} = {0B74D41C-D81D-4599-A2E1-F6DDEC0D4D21} + {6CC74BAD-59DE-4481-B8D4-299E040FC94C} = {915EDA1F-EA1E-4871-900C-B797FD9731BA} + {C1F6123D-22F8-4533-AD56-08A7E3583661} = {242C3CB9-6C1E-4582-B1B0-B4E84409A505} + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 15 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs:8080/tfs/timvi + SccLocalPath0 = . + SccProjectUniqueName1 = ClientExtensionsBase\\ClientExtensionsBase.csproj + SccProjectTopLevelParentUniqueName1 = QuaternionServer.sln + SccProjectName1 = ClientExtensionsBase + SccLocalPath1 = ClientExtensionsBase + SccProjectUniqueName2 = UnityExtension\\UnityExtension.csproj + SccProjectTopLevelParentUniqueName2 = QuaternionServer.sln + SccProjectName2 = UnityExtension + SccLocalPath2 = UnityExtension + SccProjectUniqueName3 = Tests\\Tests.csproj + SccProjectTopLevelParentUniqueName3 = QuaternionServer.sln + SccProjectName3 = Tests + SccLocalPath3 = Tests + SccProjectUniqueName4 = Transport\\Transport.csproj + SccProjectTopLevelParentUniqueName4 = QuaternionServer.sln + SccProjectName4 = Transport + SccLocalPath4 = Transport + SccProjectUniqueName5 = ObjectsPool\\ObjectsPool.csproj + SccProjectTopLevelParentUniqueName5 = QuaternionServer.sln + SccProjectName5 = ObjectsPool + SccLocalPath5 = ObjectsPool + SccProjectUniqueName6 = SocketServer\\SocketServer.csproj + SccProjectTopLevelParentUniqueName6 = QuaternionServer.sln + SccProjectName6 = SocketServer + SccLocalPath6 = SocketServer + SccProjectUniqueName7 = Plugin\\PluginBase.csproj + SccProjectTopLevelParentUniqueName7 = QuaternionServer.sln + SccProjectName7 = Plugin + SccLocalPath7 = Plugin + SccProjectUniqueName8 = PluginLauncher\\PluginLauncher.csproj + SccProjectTopLevelParentUniqueName8 = QuaternionServer.sln + SccProjectName8 = PluginLauncher + SccLocalPath8 = PluginLauncher + SccProjectUniqueName9 = Test\\SocketServerLauncher\\SocketServerLauncher.csproj + SccProjectTopLevelParentUniqueName9 = QuaternionServer.sln + SccProjectName9 = Test/SocketServerLauncher + SccLocalPath9 = Test\\SocketServerLauncher + SccProjectUniqueName10 = Test\\SocketServerClient\\SocketServerClient.csproj + SccProjectTopLevelParentUniqueName10 = QuaternionServer.sln + SccProjectName10 = Test/SocketServerClient + SccLocalPath10 = Test\\SocketServerClient + SccProjectUniqueName11 = Launcher\\Launcher.csproj + SccProjectTopLevelParentUniqueName11 = QuaternionServer.sln + SccProjectName11 = Launcher + SccLocalPath11 = Launcher + SccProjectUniqueName12 = BosonProtocol\\QuaternionProtocol.csproj + SccProjectTopLevelParentUniqueName12 = QuaternionServer.sln + SccProjectName12 = BosonProtocol + SccLocalPath12 = BosonProtocol + SccProjectUniqueName13 = GameBasePlugin\\GameBasePlugin.csproj + SccProjectTopLevelParentUniqueName13 = QuaternionServer.sln + SccProjectName13 = GameBasePlugin + SccLocalPath13 = GameBasePlugin + SccProjectUniqueName14 = ClientPluginBase\\ClientGamePlugin.csproj + SccProjectTopLevelParentUniqueName14 = QuaternionServer.sln + SccProjectName14 = ClientPluginBase + SccLocalPath14 = ClientPluginBase + EndGlobalSection +EndGlobal diff --git a/QuaternionServer.vssscc b/QuaternionServer.vssscc new file mode 100644 index 0000000..6cb031b --- /dev/null +++ b/QuaternionServer.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/SocketServer/Properties/AssemblyInfo.cs b/SocketServer/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bd5e3ae --- /dev/null +++ b/SocketServer/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SocketServer")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SocketServer")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7f3c4879-fd24-4e39-aaff-417088d2eb9a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SocketServer/SocketServer.csproj b/SocketServer/SocketServer.csproj new file mode 100644 index 0000000..b4c8ae4 --- /dev/null +++ b/SocketServer/SocketServer.csproj @@ -0,0 +1,73 @@ + + + + + Debug + AnyCPU + {7F3C4879-FD24-4E39-AAFF-417088D2EB9A} + Library + Properties + SocketServer + SocketServer + v4.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + {7BFDA634-9654-44D8-AE0E-FDCA6284516D} + QuaternionProtocol + + + {cf05eedf-1cf9-4d6e-83e4-420a66b0a15b} + ObjectsPool + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + \ No newline at end of file diff --git a/SocketServer/SocketServerBase.cs b/SocketServer/SocketServerBase.cs new file mode 100644 index 0000000..fae9a22 --- /dev/null +++ b/SocketServer/SocketServerBase.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using ObjectsPool; +using Transport; +using Transport.Events; +using Transport.Server; + +namespace SocketServer +{ + public abstract class SocketServerBase : ServerTransportBase + { + protected readonly Dictionary> Commands = new Dictionary>(); + protected readonly Pool ClientPool = new Pool(); + protected readonly ConcurrentDictionary ClientsToSocket = new ConcurrentDictionary(); + protected Socket ListenSocket; // прослушивающий сокет + protected CancellationTokenSource CancellationSource; + protected IPEndPoint ServerEndPoint; // конечная точка сервера + protected readonly SocketAsyncEventArgs ListenArgs = new SocketAsyncEventArgs(); // информация, связанная с прослушивающим сокетом + + public override string Address + { + get + { + var addr = (ListenSocket?.LocalEndPoint as IPEndPoint); + return $"{addr}"; + } + } + + protected SocketServerBase() + { + ServerEndPoint = new IPEndPoint(IPAddress.Any, 0); + } + + protected SocketServerBase(IPAddress ip, int port) + { + ServerEndPoint = new IPEndPoint(ip, port); + } + + public override void DisconnectClient(string connectionId) + { + SocketAsyncEventArgsExtended clientSocket; + + if (string.IsNullOrEmpty(connectionId)) return; + ClientsToSocket.TryRemove(connectionId, out clientSocket); + + try + { + clientSocket.ConnectSocket.Shutdown(SocketShutdown.Both); + clientSocket.UserToken = null; + clientSocket.Dispose(); + } + catch (Exception ex) + { + OnErrorInvoke(new ServerGenericEventArgs { DataReceived = ex }); + } + } + + public override string GetClientAddressInfo(string connectionId) + { + SocketAsyncEventArgsExtended socket; + if (ClientsToSocket.TryGetValue(connectionId, out socket)) + { + return socket.AcceptSocket.RemoteEndPoint.ToString(); + } + + return null; + } + + public override OperationState RegisterCommand(string commandName, T executeAction) + { + var commandHash = StreamHelper.WrapBytes(HashHelper.GeHash(commandName), 6); + + if (!Commands.ContainsKey(commandHash)) + { + Commands.Add(commandHash, new Tuple(executeAction, typeof(T))); + return new OperationState { IsSuccessful = true }; + } + return new OperationState { IsSuccessful = false, Details = "Command name already added or reserved. Change command name." }; + } + + public override DateTime GetLastPingTimeFor(string connectionId) + { + SocketAsyncEventArgsExtended connection; + if (ClientsToSocket.TryGetValue(connectionId, out connection)) + { + return connection.LastResponse; + } + + return default(DateTime); + } + + /// + /// Sends raw data + /// + /// + /// + /// + public override OperationState SendData(Stream data, string connectionId) + { + SocketAsyncEventArgsExtended socket; + if (ClientsToSocket.TryGetValue(connectionId, out socket)) + { + try + { + if (socket.WhenSocketReady.WaitOne(1000)) + { + socket.SocketState = SocketState.Busy; + var bytesSent = socket.ConnectSocket.Send(StreamHelper.GetBytes(data)); + socket.SocketState = SocketState.Idle; + return new OperationState { IsSuccessful = true, Counter = bytesSent }; + } + + return new OperationState { IsSuccessful = false, Details = "Socket timeout" }; + } + catch (Exception ex) + { + return new OperationState { IsSuccessful = false, Details = ex.ToString() }; + } + } + + return new OperationState { IsSuccessful = false, Details = "Socket not found" }; + } + + /// + /// + /// + /// Type 'T' should inherit ISelfSerializableTo of byte[] + /// + /// + /// + public override OperationState SendData(string connectionId, ProtocolBase data) + { + var protoBytes = data as ProtocolBase; + + if (protoBytes != null) + { + using (var str = new MemoryStream(protoBytes.GetDataToSend())) + { + return SendData(str, connectionId); + } + } + + return new OperationState { IsSuccessful = false, Details = "ProtocolBase is correct type of Proto" }; + } + + public override void ChangeConnectionId(string oldConnectionId, string newConnectionId) + { + SocketAsyncEventArgsExtended connection; + if (ClientsToSocket.TryRemove(oldConnectionId, out connection)) + { + ClientsToSocket.TryAdd(newConnectionId, connection); + } + } + + public override TransportStats GetStats(string connectionId) + { + SocketAsyncEventArgsExtended connection; + ClientsToSocket.TryGetValue(connectionId, out connection); + return connection?.CurrentSocketStats; + } + + public override void Dispose() + { + CancellationSource.Cancel(); + ListenSocket.Shutdown(SocketShutdown.Both); + ListenSocket.Dispose(); + } + } + +} diff --git a/SocketServer/TcpSocketServer.cs b/SocketServer/TcpSocketServer.cs new file mode 100644 index 0000000..907158e --- /dev/null +++ b/SocketServer/TcpSocketServer.cs @@ -0,0 +1,170 @@ +using System; +using System.Diagnostics; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using QuaternionProtocol; +using QuaternionProtocol.Protocol.Binary; +using Transport; +using Transport.Connections; +using Transport.Events; + +namespace SocketServer +{ + public class TcpSocketServer : SocketServerBase + { + public TcpSocketServer() : base(IPAddress.Any, 1000) + { + + } + + public TcpSocketServer(IPAddress address, int port) : base(address, port) + { + + } + + public override event EventHandler> OnReceive; + public override string TransportName => "TCPIPV4"; + private readonly byte[] _receiveBuffer = new byte[2000]; + public override void Start() + { + if (IsStarted) return; + ListenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + ListenSocket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.AcceptConnection, true); + ListenSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); + ListenSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Debug, true); + ListenSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); + ListenSocket.SetIPProtectionLevel(IPProtectionLevel.Unrestricted); + ListenSocket.LingerState = new LingerOption(true, 30); + ListenSocket.Bind(ServerEndPoint); + ListenSocket.Listen(100); + ListenSocket.ReceiveTimeout = 1000; + ListenSocket.SendTimeout = 1000; + CancellationSource = new CancellationTokenSource(); + + if (CancellationSource.IsCancellationRequested) return; + ListenSocket.BeginAccept(EndAccept, null); + IsStarted = true; + } + + public override OperationState SetPort(int portNo) + { + if (!IsStarted) + { + ServerEndPoint = new IPEndPoint(IPAddress.Any, portNo); + return new OperationState {IsSuccessful = true}; + } + + return new OperationState {IsSuccessful = false, Details = "Can't set port when server already started"}; + } + + public override void Touch(string connectionId) + { + SocketAsyncEventArgsExtended connection; + if (ClientsToSocket.TryGetValue(connectionId, out connection)) + { + connection.LastResponse = DateTime.UtcNow; + } + } + + private void EndAccept(IAsyncResult ar) + { + var listener = ListenSocket.EndAccept(ar); + var connId = Guid.NewGuid().ToString(); + var args = ClientPool.Take(); + args.AcceptSocket = listener; + args.UserToken = ServerConnectionFactory.Create(this, connId); + args.LastResponse = DateTime.UtcNow.AddMinutes(1); + listener.BeginReceive(_receiveBuffer, 0, _receiveBuffer.Length, SocketFlags.None, EndReceive, args); + ListenSocket.BeginAccept(EndAccept, ListenArgs); + ClientsToSocket.TryAdd(connId, args); + OnClientConnectedInvoke((ServerConnectionBase)args.UserToken); + } + + private void EndReceive(IAsyncResult ar) + { + var evArgs = (SocketAsyncEventArgs)ar.AsyncState; + try + { + var args = (SocketAsyncEventArgsExtended)evArgs; + switch (args.SocketError) + { + case SocketError.Success: + var bytesReceivedCount = args.AcceptSocket.EndReceive(ar); + + if (args.AcceptSocket.Connected) + { + var receivedBytes = new byte[bytesReceivedCount]; + Buffer.BlockCopy(_receiveBuffer, 0, receivedBytes, 0, bytesReceivedCount); + args.CurrentSocketStats.AddBytesReceived(args.BytesTransferred); + args.LastResponse = DateTime.UtcNow; + + args.BytesBuffer.Put(receivedBytes); + + while (args.BytesBuffer.Size > 4) + { + var messageLength = BinaryProtocol.GetMessageLength(args.BytesBuffer.Peek(args.BytesBuffer.Size)); + if (args.BytesBuffer.Size >= messageLength) + { + var messageBytes = args.BytesBuffer.Get(messageLength); + var messageBytesCopy = new byte[BinaryProtocol.HeaderLength+1]; + + Buffer.BlockCopy(messageBytes,0,messageBytesCopy,0,BinaryProtocol.HeaderLength+1); + + var protocol = new BinaryProtocol(messageBytesCopy); + var commandHash = protocol.GetCommandBytes(); + + Tuple command; + var userConnection = args.UserToken as ServerConnection; + + if (Commands.TryGetValue(commandHash, out command)) + { + userConnection?.OnDataReceived(protocol, command.Item1, command.Item2); + } + + ReceiveInvoke(new ServerGenericEventArgs + { + ServerConnectionBase = args.UserToken as ServerConnection, + DataReceived = messageBytes, + Protocol = protocol + }); + } + else + { + break; + } + } + } + break; + + case SocketError.ConnectionReset: + break; + case SocketError.TimedOut: +#if DEBUG + Trace.WriteLine("SocketError.TimedOut"); +#endif + break; + default: + var connection = args.UserToken as ServerConnection; + DisconnectClient(connection?.ConnectionId); + break; + } + + evArgs.AcceptSocket?.BeginReceive(_receiveBuffer, 0, _receiveBuffer.Length, SocketFlags.None, EndReceive, ListenArgs); + } + catch (Exception ex) + { + OnErrorInvoke(new ServerGenericEventArgs + { + DataReceived = ex + }); + evArgs.AcceptSocket = null; + } + } + + protected virtual void ReceiveInvoke(ServerGenericEventArgs e) + { + OnReceive?.Invoke(this, e); + } + } +} \ No newline at end of file diff --git a/SocketServer/obj/Debug/SocketServer.csproj.FileListAbsolute.txt b/SocketServer/obj/Debug/SocketServer.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..fc808d0 --- /dev/null +++ b/SocketServer/obj/Debug/SocketServer.csproj.FileListAbsolute.txt @@ -0,0 +1,11 @@ +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\obj\Debug\SocketServer.csprojResolveAssemblyReference.cache +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\bin\Debug\SocketServer.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\bin\Debug\SocketServer.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\bin\Debug\BosonProtocol.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\bin\Debug\ObjectsPool.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\bin\Debug\Transport.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\bin\Debug\BosonProtocol.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\bin\Debug\ObjectsPool.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\bin\Debug\Transport.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\obj\Debug\SocketServer.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\SocketServer\obj\Debug\SocketServer.pdb diff --git a/SocketServer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/SocketServer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/SocketServer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/SocketServer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/SocketServer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/SocketServer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/Test/SocketServerClient/App.config b/Test/SocketServerClient/App.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/Test/SocketServerClient/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test/SocketServerClient/Program.cs b/Test/SocketServerClient/Program.cs new file mode 100644 index 0000000..6d99544 --- /dev/null +++ b/Test/SocketServerClient/Program.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using QuaternionProtocol.Protocol.Binary; +using QuaternionProtocol.Serializers; + +namespace SocketServerClient +{ + class Program + { + public static ManualResetEvent Done = new ManualResetEvent(false); + private static ClientExtensionsBase.Binary.TcpClient _client; + static void Main(string[] args) + { + _client = new ClientExtensionsBase.Binary.TcpClient(); + _client.Connect("192.168.10.162:1000"); + _client.OnConnected += ClientOnOnConnected; + Done.WaitOne(); + } + + private static void ClientOnOnConnected(object sender, EventArgs eventArgs) + { + var str = Encoding.UTF8.GetBytes("Hello server"); + var proto = new BinaryProtocol(str,"Nop"); + _client.SendData(proto); + Done.WaitOne(1000); + Done.Set(); + } + } +} diff --git a/Test/SocketServerClient/Properties/AssemblyInfo.cs b/Test/SocketServerClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8ac7955 --- /dev/null +++ b/Test/SocketServerClient/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SocketServerClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SocketServerClient")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a343fae6-6963-44cb-9cc0-75d3fc33a1df")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Test/SocketServerClient/SocketServerClient.csproj b/Test/SocketServerClient/SocketServerClient.csproj new file mode 100644 index 0000000..34d5c8a --- /dev/null +++ b/Test/SocketServerClient/SocketServerClient.csproj @@ -0,0 +1,77 @@ + + + + + Debug + AnyCPU + {A343FAE6-6963-44CB-9CC0-75D3FC33A1DF} + Exe + Properties + SocketServerClient + SocketServerClient + v4.5 + 512 + SAK + SAK + SAK + SAK + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {6f7bc5f3-910f-411b-adc2-e3572832026e} + ClientExtensionsBase + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + \ No newline at end of file diff --git a/Test/SocketServerClient/bin/Debug/SocketServerClient.exe.config b/Test/SocketServerClient/bin/Debug/SocketServerClient.exe.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/Test/SocketServerClient/bin/Debug/SocketServerClient.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test/SocketServerClient/bin/Debug/SocketServerClient.vshost.exe.config b/Test/SocketServerClient/bin/Debug/SocketServerClient.vshost.exe.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/Test/SocketServerClient/bin/Debug/SocketServerClient.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test/SocketServerClient/bin/Debug/SocketServerClient.vshost.exe.manifest b/Test/SocketServerClient/bin/Debug/SocketServerClient.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/Test/SocketServerClient/bin/Debug/SocketServerClient.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Test/SocketServerClient/obj/Debug/SocketServerClient.csproj.FileListAbsolute.txt b/Test/SocketServerClient/obj/Debug/SocketServerClient.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..40d5eed --- /dev/null +++ b/Test/SocketServerClient/obj/Debug/SocketServerClient.csproj.FileListAbsolute.txt @@ -0,0 +1,12 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\SocketServerClient.exe.config +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\SocketServerClient.exe +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\SocketServerClient.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\ClientExtensionsBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\ClientExtensionsBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\bin\Debug\Transport.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\obj\Debug\SocketServerClient.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\obj\Debug\SocketServerClient.exe +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerClient\obj\Debug\SocketServerClient.pdb diff --git a/Test/SocketServerClient/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/Test/SocketServerClient/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/Test/SocketServerClient/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/Test/SocketServerClient/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/Test/SocketServerClient/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/Test/SocketServerClient/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/Test/SocketServerLauncher/App.config b/Test/SocketServerLauncher/App.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/Test/SocketServerLauncher/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test/SocketServerLauncher/Program.cs b/Test/SocketServerLauncher/Program.cs new file mode 100644 index 0000000..efb2d7c --- /dev/null +++ b/Test/SocketServerLauncher/Program.cs @@ -0,0 +1,37 @@ +using System; +using System.Text; +using System.Threading; +using QuaternionProtocol.Protocol.Binary; +using SocketServer; +using Transport.Connections; +using Transport.Events; + +namespace SocketServerLauncher +{ + class Program + { + public static readonly ManualResetEvent Done = new ManualResetEvent(false); + static void Main(string[] args) + { + var tcpServer = new TcpSocketServer(); + + tcpServer.OnConnected += TcpServerOnConnected; + tcpServer.OnReceive += TcpServerOnReceive; + tcpServer.Start(); + Console.WriteLine("Server started"); + Done.WaitOne(); + } + + private static void TcpServerOnReceive(object sender, ServerGenericEventArgs serverGenericEventArgs) + { + var bp = new BinaryProtocol(serverGenericEventArgs.DataReceived); + var msg = Encoding.UTF8.GetString(bp.GetBody()); + Console.WriteLine($"{msg} received"); + } + + private static void TcpServerOnConnected(object sender, ServerGenericEventArgs serverGenericEventArgs) + { + Console.WriteLine($"{serverGenericEventArgs.ServerConnectionBase.RemoteAddressInfo} connected"); + } + } +} diff --git a/Test/SocketServerLauncher/Properties/AssemblyInfo.cs b/Test/SocketServerLauncher/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..cd149bb --- /dev/null +++ b/Test/SocketServerLauncher/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SocketServerLauncher")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SocketServerLauncher")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a99b1320-abfb-4043-b4c6-4b0be4d5af8a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Test/SocketServerLauncher/SocketServerLauncher.csproj b/Test/SocketServerLauncher/SocketServerLauncher.csproj new file mode 100644 index 0000000..d21dc39 --- /dev/null +++ b/Test/SocketServerLauncher/SocketServerLauncher.csproj @@ -0,0 +1,77 @@ + + + + + Debug + AnyCPU + {A99B1320-ABFB-4043-B4C6-4B0BE4D5AF8A} + Exe + Properties + SocketServerLauncher + SocketServerLauncher + v4.5 + 512 + SAK + SAK + SAK + SAK + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {7f3c4879-fd24-4e39-aaff-417088d2eb9a} + SocketServer + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + \ No newline at end of file diff --git a/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.exe.config b/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.exe.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.vshost.exe.config b/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.vshost.exe.config new file mode 100644 index 0000000..8e15646 --- /dev/null +++ b/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.vshost.exe.manifest b/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/Test/SocketServerLauncher/bin/Debug/SocketServerLauncher.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Test/SocketServerLauncher/obj/Debug/SocketServerLauncher.csproj.FileListAbsolute.txt b/Test/SocketServerLauncher/obj/Debug/SocketServerLauncher.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..1fb495b --- /dev/null +++ b/Test/SocketServerLauncher/obj/Debug/SocketServerLauncher.csproj.FileListAbsolute.txt @@ -0,0 +1,14 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\SocketServerLauncher.exe.config +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\SocketServerLauncher.exe +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\SocketServerLauncher.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\SocketServer.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\ObjectsPool.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\SocketServer.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\Transport.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\bin\Debug\ObjectsPool.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\obj\Debug\SocketServerLauncher.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\obj\Debug\SocketServerLauncher.exe +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Test\SocketServerLauncher\obj\Debug\SocketServerLauncher.pdb diff --git a/Test/SocketServerLauncher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/Test/SocketServerLauncher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/Test/SocketServerLauncher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/Test/SocketServerLauncher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/Test/SocketServerLauncher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/Test/SocketServerLauncher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/Tests/BenchMarking/SerializersBenchMark.cs b/Tests/BenchMarking/SerializersBenchMark.cs new file mode 100644 index 0000000..f120366 --- /dev/null +++ b/Tests/BenchMarking/SerializersBenchMark.cs @@ -0,0 +1,41 @@ +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Running; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using QuaternionProtocol.Serializers; +using Tests.Emulators.ServerPlugin.Commands; +using Tests.Emulators.Transport; +using Xunit; + +namespace Tests.BenchMarking +{ + public class SerializersBenchMark + { + private readonly LogInRequest _loginCmd = new LogInRequest { Email = "Me@me.ru", Password = "pwd", PublicKey = new byte[10] }; + + [Benchmark] + public void ProtoBuf() + { + var serializer = new ProtoBufGenericSerializer(); + var bytes = BinaryProtocol.FromData(_loginCmd, "LogInRequest", serializer); + var receivedPacket = new BinaryProtocol(bytes.GetDataToSend()); + var obj = serializer.Deserialize(receivedPacket.Data); + } + + [Benchmark] + public void Native() + { + var serializer = new BinaryFormaterGenericSerializer(); + var bytes = BinaryProtocol.FromData(_loginCmd, "LogInRequest", serializer); + var receivedPacket = new BinaryProtocol(bytes.GetDataToSend()); + var obj = serializer.Deserialize(receivedPacket.Data); + } + + [Fact] + public void Run() + { + var benchmarkresults = BenchmarkRunner.Run(); + } + + } +} \ No newline at end of file diff --git a/Tests/Client/ClientTests.cs b/Tests/Client/ClientTests.cs new file mode 100644 index 0000000..542c312 --- /dev/null +++ b/Tests/Client/ClientTests.cs @@ -0,0 +1,15 @@ + +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Tests.Client +{ + [TestClass] + public class ClientTests + { + [TestMethod] + public void CreateInstance() + { + var game = new ClientGamePlugin.GamePlugin(); + } + } +} diff --git a/Tests/Emulators/ServerPlugin/Commands/LogInRequest.cs b/Tests/Emulators/ServerPlugin/Commands/LogInRequest.cs new file mode 100644 index 0000000..4ea980f --- /dev/null +++ b/Tests/Emulators/ServerPlugin/Commands/LogInRequest.cs @@ -0,0 +1,30 @@ +using System; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using ProtoBuf; +using Tests.Emulators.Transport; +using Transport.CommandsBase; +using Transport.Connections; + +namespace Tests.Emulators.ServerPlugin.Commands +{ + [Serializable, ProtoContract] + public class LogInRequest :IServerCommand + { + [ProtoMember(1)] + public string Email { get; set; } + [ProtoMember(2)] + public string Password { get; set; } + [ProtoMember(3)] + public byte[] PublicKey { get; set; } + + public void Execute(ServerConnection connection, IServerCommand entity) + { + var loginValue = entity as LogInRequest; + + var response = new LogInResponse { IsOk = true }; + var protocol = BinaryProtocol.FromData(response, new ProtoBufGenericSerializer()); + connection.SendData(protocol); + } + } +} \ No newline at end of file diff --git a/Tests/Emulators/ServerPlugin/Commands/LogInResponse.cs b/Tests/Emulators/ServerPlugin/Commands/LogInResponse.cs new file mode 100644 index 0000000..0dd6cc6 --- /dev/null +++ b/Tests/Emulators/ServerPlugin/Commands/LogInResponse.cs @@ -0,0 +1,11 @@ +using ProtoBuf; + +namespace Tests.Emulators.ServerPlugin.Commands +{ + [ProtoContract] + public class LogInResponse + { + [ProtoMember(1)] + public bool IsOk; + } +} \ No newline at end of file diff --git a/Tests/Emulators/ServerPlugin/RealApplication.cs b/Tests/Emulators/ServerPlugin/RealApplication.cs new file mode 100644 index 0000000..0940cd7 --- /dev/null +++ b/Tests/Emulators/ServerPlugin/RealApplication.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using System.Linq; +using PluginBase; +using Tests.Emulators.ServerPlugin.Commands; +using Transport; +using Transport.Server; +using IServerTransport = Transport.Server.IServerTransport; + +namespace Tests.Emulators.ServerPlugin +{ + public class RealApplication: ServerPluginBase + { + public override string PluginName => "RealServerApp"; + public override string AppId => "RealServerApp"; + + public override IEnumerable InitTransports(IEnumerable aviableTransports) + { + var transports = base.InitTransports(aviableTransports); + RegisterReceiveCommand(transports.First(), new LogInRequest()); + + return transports; + } + } +} \ No newline at end of file diff --git a/Tests/Emulators/ServerPlugin/TestApplication.cs b/Tests/Emulators/ServerPlugin/TestApplication.cs new file mode 100644 index 0000000..2e0f4f3 --- /dev/null +++ b/Tests/Emulators/ServerPlugin/TestApplication.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using PluginBase; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using SocketServer; +using Tests.Emulators.ServerPlugin.Commands; +using Tests.Emulators.Transport; +using Transport; +using Transport.Connections; +using Transport.Server; +using IServerTransport = Transport.Server.IServerTransport; + +namespace Tests.Emulators.ServerPlugin +{ + public class TestApplication :ServerPluginBase + { + private readonly ServerTransportEmulator _serverTransport; + public TestApplication() + { + _serverTransport = new ServerTransportEmulator(); + _serverTransport.Start(); + InitTransports(new List{_serverTransport}); + } + + public override string PluginName => "TestPlugin"; + public override string AppId => "AppId"; + + public void RaiseClientConnected(ServerConnectionBase serverConnectionBase) + { + ClientConnected(serverConnectionBase); + } + + public void RaisePacketReceived(ServerConnectionBase serverConnection) + { + var l = new LogInRequest {Email = "g@g.g", Password = "123"}; + var bp = BinaryProtocol.FromData(l, new ProtoBufGenericSerializer()); + _serverTransport.RaiseReceive(typeof(LogInRequest), bp.GetDataToSend(), serverConnection); + } + } +} \ No newline at end of file diff --git a/Tests/Emulators/Transport/ProtoBufGenericSerializer.cs b/Tests/Emulators/Transport/ProtoBufGenericSerializer.cs new file mode 100644 index 0000000..e9e0999 --- /dev/null +++ b/Tests/Emulators/Transport/ProtoBufGenericSerializer.cs @@ -0,0 +1,33 @@ +using System; +using System.IO; +using QuaternionProtocol.Serializers; +using System.Xml; +namespace Tests.Emulators.Transport +{ + public class ProtoBufGenericSerializer : IGenericSerializer where T : new() + { + public byte[] Serialize(T obj) + { + using (var ms = new MemoryStream()) + { + ProtoBuf.Serializer.Serialize(ms, obj); + return ms.ToArray(); + } + } + + public T Deserialize(byte[] stream) + { + using (var ms = new MemoryStream(stream)) + { + return ProtoBuf.Serializer.Deserialize(ms); + } + } + + public string Name => "ProtoBuf"; + + public object Deserialize(Type targetType, byte[] rawData) + { + return Deserialize(rawData); + } + } +} \ No newline at end of file diff --git a/Tests/Emulators/Transport/ServerTransportEmulator.cs b/Tests/Emulators/Transport/ServerTransportEmulator.cs new file mode 100644 index 0000000..d7efdb0 --- /dev/null +++ b/Tests/Emulators/Transport/ServerTransportEmulator.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using Tests.Emulators.ServerPlugin.Commands; +using Transport; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Events; +using Transport.Server; + +namespace Tests.Emulators.Transport +{ + public class ServerTransportEmulator : ServerTransportBase + { + private readonly Dictionary _cmds = new Dictionary(); + public override event EventHandler> OnReceive; + + public override string TransportName => "TCPIPV4"; + public override string Address { get; } + + public void RaiseReceive(Type comd, byte[] bytes, ServerConnectionBase serverConnection) + { + var conn = serverConnection as ServerConnection; + var proto = new BinaryProtocol(bytes); + conn?.OnDataReceived(proto, new LogInRequest(), comd); + OnReceive?.Invoke(this,new ServerGenericEventArgs {ServerConnectionBase = serverConnection, Protocol = new BinaryProtocol(bytes),DataReceived = bytes}); + } + public override OperationState RegisterCommand(string commandName, T executeAction) + { + var cmdhash = StreamHelper.WrapBytes(HashHelper.GeHash(commandName), 6); + _cmds.Add(cmdhash, executeAction); + return new OperationState { IsSuccessful = true }; + } + + public override void DisconnectClient(string connectionId) + { + + } + + public override void Dispose() + { + } + + public override void Start() + { + } + + public override string GetClientAddressInfo(string connectionId) + { + return IPAddress.Any.ToString(); + } + + public override OperationState SendData(string connectionId, ProtocolBase data) + { + return new OperationState { IsSuccessful = true }; + } + + + public override DateTime GetLastPingTimeFor(string connectionId) + { + return DateTime.UtcNow; + } + + public override void Touch(string connectionId) + { + throw new NotImplementedException(); + } + + public override TransportStats GetStats(string connectionId) + { + return new TransportStats("TEST"); + } + + public override void ChangeConnectionId(string oldConnectionId, string newConnectionId) + { + } + + public override OperationState SendData(Stream data, string connectionId) + { + return new OperationState { IsSuccessful = true }; + } + + public override OperationState SetPort(int portNo) + { + return new OperationState {IsSuccessful = false, Details = "Emulator has no port number"}; + } + } +} \ No newline at end of file diff --git a/Tests/Emulators/Transport/TestPeer.cs b/Tests/Emulators/Transport/TestPeer.cs new file mode 100644 index 0000000..25aeba2 --- /dev/null +++ b/Tests/Emulators/Transport/TestPeer.cs @@ -0,0 +1,16 @@ +using System; +using Transport; +using Transport.Connections; +using Transport.Connections.Peers; + +namespace Tests.Emulators.Transport +{ + public class TestPeer: PeerBase + { + private const string AppId = "12332"; + public TestPeer(ServerConnectionBase serverConnectionBase) : base(AppId) + { + AddConnection(serverConnectionBase); + } + } +} \ No newline at end of file diff --git a/Tests/Properties/AssemblyInfo.cs b/Tests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..66a749a --- /dev/null +++ b/Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tests")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9abbd6a9-5f95-442a-88db-3fc1ebf374a7")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tests/ServerPlugin/ServerTestPlugin.cs b/Tests/ServerPlugin/ServerTestPlugin.cs new file mode 100644 index 0000000..58e5e7d --- /dev/null +++ b/Tests/ServerPlugin/ServerTestPlugin.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using Tests.Emulators.ServerPlugin; +using Tests.Emulators.ServerPlugin.Commands; +using Tests.Emulators.Transport; +using Transport; +using Transport.Connections; +using Transport.Connections.Peers; +using Xunit; + +namespace Tests.ServerPlugin +{ + public class ServerTestPlugin + { + [Fact] + public void CreatePlugin() + { + var plugin = new TestApplication(); + var Clients = new List(); + var tcp = plugin.GetTransportByName("TCPIPV4"); + plugin.RegisterReceiveCommand(tcp, new LogInRequest()); + + var connection = ServerConnectionFactory.Create(plugin.GetTransportByName("TCPIPV4"), Guid.NewGuid().ToString()); + var byteconn = connection as ServerConnection; + byteconn.DeSerializer = new ProtoBufGenericSerializer(); + + plugin.OnClientConnected += (sender, conn) => + { + var peer = new TestPeer(conn); + Clients.Add(peer); + }; + + plugin.RaiseClientConnected(connection); + plugin.RaisePacketReceived(connection); + + } + + [Fact] + public void CreateRealServer() + { + var realPlugin = new RealApplication(); + var launcher = new PluginLauncher.PluginLauncher(); + launcher.Load(realPlugin); + } + } +} diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj new file mode 100644 index 0000000..a4144c6 --- /dev/null +++ b/Tests/Tests.csproj @@ -0,0 +1,175 @@ + + + + + Debug + AnyCPU + {2E3DF5C2-8A38-4A03-86D7-8D463C917E47} + Library + Properties + Tests + Tests + v4.5 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest + + + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\BenchmarkDotNet.0.9.7\lib\net40\BenchmarkDotNet.dll + True + + + False + + + ..\packages\protobuf-net.2.0.0.668\lib\net40\protobuf-net.dll + True + + + + + + ..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\packages\xunit.assert.2.1.0\lib\dotnet\xunit.assert.dll + True + + + ..\packages\xunit.extensibility.core.2.1.0\lib\dotnet\xunit.core.dll + True + + + ..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {7bfda634-9654-44d8-ae0e-fdca6284516d} + QuaternionProtocol + + + {6f7bc5f3-910f-411b-adc2-e3572832026e} + ClientExtensionsBase + + + {c1f6123d-22f8-4533-ad56-08a7e3583661} + ClientGamePlugin + + + {6cc74bad-59de-4481-b8d4-299e040fc94c} + GameBasePlugin + + + {cf05eedf-1cf9-4d6e-83e4-420a66b0a15b} + ObjectsPool + + + {eb81340d-1cb9-434c-89e9-fe4f29c45b99} + PluginLauncher + + + {d8a94093-5adc-4e93-8f4f-16417cc705a6} + PluginBase + + + {7f3c4879-fd24-4e39-aaff-417088d2eb9a} + SocketServer + + + {18754433-15c4-4478-ac06-c68533451ff2} + Transport + + + + + + + + False + + + False + + + False + + + False + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/Tests/Transport/BaseEmulatorTests.cs b/Tests/Transport/BaseEmulatorTests.cs new file mode 100644 index 0000000..6850264 --- /dev/null +++ b/Tests/Transport/BaseEmulatorTests.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using System.Threading; +using QuaternionProtocol; +using Tests.Emulators.Transport; +using Transport; +using Xunit; + +namespace Tests.Transport +{ + public class BaseEmulatorTests + { + + } + + [Serializable] + public class CustomSerializationObject + { + public CustomSerializationObject() + { + Text = "Test"; + Integer = 42; + Dictionary.Add(Text, Integer); + List.Add(Text); + } + public string Text { get; set; } + public int Integer { get; set; } + public Dictionary Dictionary = new Dictionary(); + public List List = new List(); + } + + [Serializable] + public class CustomSerializationObject2 + { + public CustomSerializationObject2() + { + Text = "Test"; + Integer = 42; + Dictionary.Add(Text, Integer); + List.Add(Text); + } + public string Text { get; set; } + public int Integer { get; set; } + public Dictionary Dictionary = new Dictionary(); + public readonly List List = new List(); + public byte[] Serialize() + { + var serializer = new BinaryFormatter(); + using (var outputStream = new MemoryStream()) + { + serializer.Serialize(outputStream,this); + return StreamHelper.GetBytes(outputStream); + } + } + + public object Deserialize(byte[] stream) + { + var serializer = new BinaryFormatter(); + using (var outputStream = new MemoryStream(stream)) + { + return serializer.Deserialize(outputStream); + } + } + } +} \ No newline at end of file diff --git a/Tests/Transport/Protocol/BinaryProtocolTests.cs b/Tests/Transport/Protocol/BinaryProtocolTests.cs new file mode 100644 index 0000000..18e9be4 --- /dev/null +++ b/Tests/Transport/Protocol/BinaryProtocolTests.cs @@ -0,0 +1,47 @@ +using System; +using System.IO; +using System.Linq; +using System.Net.NetworkInformation; +using System.Runtime.Serialization.Formatters.Binary; +using System.Security.Policy; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using Xunit; + +namespace Tests.Transport.Protocol +{ + public class BinaryProtocolTests + { + [Fact] + public void CreatePacket() + { + const string str = "not a very big deal"; + var bytes = new [] {byte.MinValue, byte.MaxValue, byte.MaxValue}; + var protocol = new BinaryProtocol(bytes,str); + var protocolBytes = protocol.GetDataToSend(); + var protocolRestored = new BinaryProtocol(protocolBytes); + var size = BinaryProtocol.GetMessageLength(protocolBytes); + + Assert.True(protocolRestored.IsCheckSumValid()); + Assert.True(protocolBytes.Length == size); + } + + [Fact] + public void BinaryEncryptableTest() + { + const string str = "not very big deal"; + var bytes = new[] { byte.MinValue, byte.MaxValue, byte.MaxValue }; + var protocol = new BinaryEncryptableProtocol(bytes, str); + byte[] privateKey, publicKey; + BinaryEncryptableProtocol.GenerateKeys(out privateKey, out publicKey); + protocol.Encrypt(privateKey); + var bytesReceived = protocol.GetDataToSend(); + var protocolRepacked = new BinaryEncryptableProtocol(bytesReceived); + protocolRepacked.Decrypt(privateKey); + var cleanData = protocolRepacked.Data; + + Assert.True(bytes.SequenceEqual(cleanData)); + } + } +} diff --git a/Tests/Yad/BinaryTree.cs b/Tests/Yad/BinaryTree.cs new file mode 100644 index 0000000..2bad48e --- /dev/null +++ b/Tests/Yad/BinaryTree.cs @@ -0,0 +1,51 @@ +#region + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using Xunit; + +#endregion + +namespace Tests.Yad +{ + public class BinaryTreeTests + { + [Fact] + public void Bt1() + { + var rand = new Random(21); + var values = new List(); + + for (var i = 0; i < 100; i++) + { + values.Add(rand.Next(1, 100)); + } + + var ll = new LinkedList(); + var node = ll.AddFirst(5); + } + } + + //class BinaryTreeNode : IComparable where TNODE : IComparable + //{ + // public TNODE Value { get; private set; } + // public BinaryTreeNode Left { get; set; } + // public BinaryTreeNode Right { get; set; } + + // public BinaryTreeNode(TNODE value) + // { + // Value = value; + // } + // public int CompareTo(TNODE other) + // { + // return Value.CompareTo(other); + // } + + // public int ComareNode(BinaryTreeNode other) + // { + // return Value.CompareTo(other.Value); + // } + //} +} \ No newline at end of file diff --git a/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report-github.md b/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report-github.md new file mode 100644 index 0000000..2eb2488 --- /dev/null +++ b/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report-github.md @@ -0,0 +1,16 @@ +```ini + +BenchmarkDotNet=v0.9.7.0 +OS=Microsoft Windows NT 10.0.10586.0 +Processor=Intel(R) Core(TM) i7-2600 CPU 3.40GHz, ProcessorCount=8 +Frequency=3331525 ticks, Resolution=300.1628 ns, Timer=TSC +HostCLR=MS.NET 4.0.30319.42000, Arch=64-bit RELEASE [RyuJIT] +JitModules=clrjit-v4.6.1080.0 + +Type=SerializersBenchMark Mode=Throughput + +``` + Method | Median | StdDev | +--------- |----------- |---------- | + ProtoBuf | 10.2220 us | 1.0464 us | + Native | 28.8816 us | 0.5874 us | diff --git a/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report.csv b/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report.csv new file mode 100644 index 0000000..c3b523a --- /dev/null +++ b/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report.csv @@ -0,0 +1,3 @@ +Type;Method;Mode;Platform;Jit;Framework;Toolchain;Runtime;LaunchCount;WarmupCount;TargetCount;Affinity;Median;StdDev +SerializersBenchMark;ProtoBuf;Throughput;Host;Host;Host;Classic;Host;Auto;Auto;Auto;Auto;10.2220 us;1.0464 us +SerializersBenchMark;Native;Throughput;Host;Host;Host;Classic;Host;Auto;Auto;Auto;Auto;28.8816 us;0.5874 us diff --git a/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report.html b/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report.html new file mode 100644 index 0000000..e6a50d6 --- /dev/null +++ b/Tests/bin/Debug/BenchmarkDotNet.Artifacts/results/SerializersBenchMark-report.html @@ -0,0 +1,16 @@ +

+BenchmarkDotNet=v0.9.7.0
+OS=Microsoft Windows NT 10.0.10586.0
+Processor=Intel(R) Core(TM) i7-2600 CPU 3.40GHz, ProcessorCount=8
+Frequency=3331525 ticks, Resolution=300.1628 ns, Timer=TSC
+HostCLR=MS.NET 4.0.30319.42000, Arch=64-bit RELEASE [RyuJIT]
+JitModules=clrjit-v4.6.1080.0
+
+
Type=SerializersBenchMark  Mode=Throughput  
+
+ + + + + +
MethodMedianStdDev
ProtoBuf10.2220 us1.0464 us
Native28.8816 us0.5874 us
diff --git a/Tests/bin/Debug/BenchmarkDotNet.xml b/Tests/bin/Debug/BenchmarkDotNet.xml new file mode 100644 index 0000000..00bcc2b --- /dev/null +++ b/Tests/bin/Debug/BenchmarkDotNet.xml @@ -0,0 +1,464 @@ + + + + BenchmarkDotNet + + + + + This attribute has the same effect as writing [Config("Jobs=Dry")] + + + + + determines if all auto-generated files should be kept or removed after running benchmarks + + + + The events are guaranteed to happen in the following sequence: + Start // When the Benchmark run is started and most importantly BEFORE the process has been launched + ProcessStarted // After the Process (in a "Diagnostic" run) has been launched + AfterBenchmarkHasRun // After a "Warmup" iteration of the Benchmark has run, i.e. we know the [Benchmark] method has been + // executed and JITted, this is important if the Diagnoser needs to know when it can do a Memory Dump. + ProcessStopped // Once the Process (in a "Diagnostic" run) has stopped/completed + Stop // At the end, when the entire Benchmark run has complete + DisplayResults // When the results/output should be displayed + + + + This is an internal interface, it allows Exporters to specify that + they depends on another Exporter (see RPlotExporter for example) + + + + + replaces all invalid file name chars with their number representation + + + + + From http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx + Returns a list of strings no larger than the max length sent in. + + useful function used to wrap string text for reporting. + Text to be wrapped into of List of Strings + Max length you want each line to be. + List of strings + + + + is expensive to call (creates new process) + + + + + The frequency of the timer as the number of ticks per second. + + + + disabled by default to avoid perf hit for auto-generated program that also calls this method + + + + System timer + + + + + Time Stamp Counter + + + + + + High Precision Event Timer + + + + + + This method chooses the best time unit for representing a set of time measurements. + + The list of time measurements in nanoseconds. + Best time unit. + + + + Desired time of execution of an iteration (in ms). + + + + + ProcessorAffinity for the benchmark process. + + + + + + Create a new job as a copy of the original job with specific time of a single iteration + + Original job + Iteration time in Millisecond or Auto + + + + + Desktop CLR + + + + + Desktop CLR hosted on Windows with Dot Net eXecution (DNX) + + + + + Cross-platform CoreCLR runtime + + + + + Adds prefix for each line + + + + + Calculates the Nth percentile from the set of values + + + The implementation is expected to be consitent with the one from Excel. + It's a quite common to export bench output into .csv for further analysis + And it's a good idea to have same results from all tools being used. + + Sequence of the values to be calculated + Value in range 0..100 + Percentile from the set of values + + + + The basic captured statistics for a benchmark. + + + + + Gets the number of operations performed. + + + + + Gets the total number of nanoseconds it took to perform all operations. + + + + + Creates an instance of class. + + + + + The number of operations performed. + The total number of nanoseconds it took to perform all operations. + + + + Parses the benchmark statistics from the plain text line. + + E.g. given the input : + + Target 1: 10 op, 1005842518 ns + + Will extract the number of performed and the + total number of it took to perform them. + + The logger to write any diagnostic messages to. + The line to parse. + An instance of if parsed successfully. Null in case of any trouble. + + + + Gets the number of operations performed per second (ops/sec). + + + + + Gets the average duration of one operation in nanoseconds. + + + + + + + + + + Warmup for idle method (overhead) + + + + + Idle method (overhead) + + + + + Warmup for main benchmark iteration (with overhead) + + + + + Main benchmark iteration (with overhead) + + + + + Target - TargetIdle (without overhead) + + + + + Unknown + + + + + generates project.lock.json that tells compiler where to take dlls and source from + and builds executable and copies all required dll's + + + + + we use custom output path in order to avoid any future problems related to dotnet cli paths changes + + + + + we need our folder to be on the same level as the project that we want to reference + we are limited by xprojs (by default compiles all .cs files in all subfolders, Program.cs could be doubled and fail the build) + and also by nuget internal implementation like looking for global.json file in parent folders + + + + + we can not simply call assemblyName.Version.ToString() because it is different than package version which can contain (and often does) text + we are using the wildcard to get latest version of package/project restored + + + + + returns true if any of the validators has TreatsWarningsAsErrors == true + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + The implementation to use when comparing keys, or null to use the default for the type of the key. + + + + Gets the at the specified index. + + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Gets the keys. + + The keys. + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + diff --git a/Tests/bin/Debug/protobuf-net.xml b/Tests/bin/Debug/protobuf-net.xml new file mode 100644 index 0000000..ccf3c6f --- /dev/null +++ b/Tests/bin/Debug/protobuf-net.xml @@ -0,0 +1,2879 @@ + + + + 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/Tests/bin/Debug/xunit.assert.xml b/Tests/bin/Debug/xunit.assert.xml new file mode 100644 index 0000000..342e7e7 --- /dev/null +++ b/Tests/bin/Debug/xunit.assert.xml @@ -0,0 +1,1414 @@ + + + + xunit.assert + + + + + Contains various static methods that are used to verify that conditions are met during the + process of running tests. + + + + + Initializes a new instance of the class. + + + + Do not call this method. + + + Do not call this method. + + + + Verifies that the condition is false. + + The condition to be tested + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + The message to show when the condition is not false + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + The message to show when the condition is not false + Thrown if the condition is not false + + + + Verifies that an expression is true. + + The condition to be inspected + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + The message to be shown when the condition is false + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + The message to be shown when the condition is false + Thrown when the condition is false + + + + Verifies that all items in the collection pass when executed against + action. + + The type of the object to be verified + The collection + The action to test each item against + Thrown when the collection contains at least one non-matching element + + + + Verifies that a collection contains exactly a given number of elements, which meet + the criteria provided by the element inspectors. + + The type of the object to be verified + The collection to be inspected + The element inspectors, which inspect each element in turn. The + total number of element inspectors must exactly match the number of elements in the collection. + + + + Verifies that a collection contains a given object. + + The type of the object to be verified + The object expected to be in the collection + The collection to be inspected + Thrown when the object is not present in the collection + + + + Verifies that a collection contains a given object, using an equality comparer. + + The type of the object to be verified + The object expected to be in the collection + The collection to be inspected + The comparer used to equate objects in the collection with the expected object + Thrown when the object is not present in the collection + + + + Verifies that a collection contains a given object. + + The type of the object to be verified + The collection to be inspected + The filter used to find the item you're ensuring the collection contains + Thrown when the object is not present in the collection + + + + Verifies that a collection does not contain a given object. + + The type of the object to be compared + The object that is expected not to be in the collection + The collection to be inspected + Thrown when the object is present inside the container + + + + Verifies that a collection does not contain a given object, using an equality comparer. + + The type of the object to be compared + The object that is expected not to be in the collection + The collection to be inspected + The comparer used to equate objects in the collection with the expected object + Thrown when the object is present inside the container + + + + Verifies that a collection does not contain a given object. + + The type of the object to be compared + The collection to be inspected + The filter used to find the item you're ensuring the collection does not contain + Thrown when the object is present inside the container + + + + Verifies that a collection is empty. + + The collection to be inspected + Thrown when the collection is null + Thrown when the collection is not empty + + + + Verifies that two sequences are equivalent, using a default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two sequences are equivalent, using a custom equatable comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + The comparer used to compare the two objects + Thrown when the objects are not equal + + + + Verifies that a collection is not empty. + + The collection to be inspected + Thrown when a null collection is passed + Thrown when the collection is empty + + + + Verifies that two sequences are not equivalent, using a default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that two sequences are not equivalent, using a custom equality comparer. + + The type of the objects to be compared + The expected object + The actual object + The comparer used to compare the two objects + Thrown when the objects are equal + + + + Verifies that the given collection contains only a single + element of the given type. + + The collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given value. The collection may or may not + contain other values. + + The collection. + The value to find in the collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given type. + + The collection type. + The collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given type which matches the given predicate. The + collection may or may not contain other values which do not + match the given predicate. + + The collection type. + The collection. + The item matching predicate. + The single item in the filtered collection. + Thrown when the filtered collection does + not contain exactly one element. + + + + Verifies that two objects are equal, using a default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two objects are equal, using a custom equatable comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + The comparer used to compare the two objects + Thrown when the objects are not equal + + + + Verifies that two values are equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are not equal + + + + Verifies that two values are equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are not equal + + + + Verifies that two objects are strictly equal, using the type's default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two objects are not equal, using a default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that two objects are not equal, using a custom equality comparer. + + The type of the objects to be compared + The expected object + The actual object + The comparer used to examine the objects + Thrown when the objects are equal + + + + Verifies that two values are not equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are equal + + + + Verifies that two values are not equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are equal + + + + Verifies that two objects are strictly not equal, using the type's default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Records any exception which is thrown by the given code. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Records any exception which is thrown by the given code that has + a return value. Generally used for testing property accessors. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Records any exception which is thrown by the given task. + + The task which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Verifies that two objects are not the same instance. + + The expected object instance + The actual object instance + Thrown when the objects are the same instance + + + + Verifies that two objects are the same instance. + + The expected object instance + The actual object instance + Thrown when the objects are not the same instance + + + + Verifies that an object reference is not null. + + The object to be validated + Thrown when the object is not null + + + + Verifies that an object reference is null. + + The object to be inspected + Thrown when the object reference is not null + + + + Verifies that the provided object raised INotifyPropertyChanged.PropertyChanged + as a result of executing the given test code. + + The object which should raise the notification + The property name for which the notification should be raised + The test code which should cause the notification to be raised + Thrown when the notification is not raised + + + + Verifies that a value is within a given range. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + Thrown when the value is not in the given range + + + + Verifies that a value is within a given range, using a comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + The comparer used to evaluate the value's range + Thrown when the value is not in the given range + + + + Verifies that a value is not within a given range, using the default comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + Thrown when the value is in the given range + + + + Verifies that a value is not within a given range, using a comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + The comparer used to evaluate the value's range + Thrown when the value is in the given range + + + + Verifies that a set is a proper subset of another set. + + The type of the object to be verified + The expected superset + The set expected to be a proper subset + Thrown when the actual set is not a proper subset of the expected set + + + + Verifies that a set is a proper superset of another set. + + The type of the object to be verified + The expected subset + The set expected to be a proper superset + Thrown when the actual set is not a proper superset of the expected set + + + + Verifies that a set is a subset of another set. + + The type of the object to be verified + The expected superset + The set expected to be a subset + Thrown when the actual set is not a subset of the expected set + + + + Verifies that a set is a superset of another set. + + The type of the object to be verified + The expected subset + The set expected to be a superset + Thrown when the actual set is not a superset of the expected set + + + + Verifies that a string contains a given sub-string, using the current culture. + + The sub-string expected to be in the string + The string to be inspected + Thrown when the sub-string is not present inside the string + + + + Verifies that a string contains a given sub-string, using the given comparison type. + + The sub-string expected to be in the string + The string to be inspected + The type of string comparison to perform + Thrown when the sub-string is not present inside the string + + + + Verifies that a string does not contain a given sub-string, using the current culture. + + The sub-string which is expected not to be in the string + The string to be inspected + Thrown when the sub-string is present inside the string + + + + Verifies that a string does not contain a given sub-string, using the current culture. + + The sub-string which is expected not to be in the string + The string to be inspected + The type of string comparison to perform + Thrown when the sub-string is present inside the given string + + + + Verifies that a string starts with a given string, using the current culture. + + The string expected to be at the start of the string + The string to be inspected + Thrown when the string does not start with the expected string + + + + Verifies that a string starts with a given string, using the given comparison type. + + The string expected to be at the start of the string + The string to be inspected + The type of string comparison to perform + Thrown when the string does not start with the expected string + + + + Verifies that a string ends with a given string, using the current culture. + + The string expected to be at the end of the string + The string to be inspected + Thrown when the string does not end with the expected string + + + + Verifies that a string ends with a given string, using the given comparison type. + + The string expected to be at the end of the string + The string to be inspected + The type of string comparison to perform + Thrown when the string does not end with the expected string + + + + Verifies that a string matches a regular expression. + + The regex pattern expected to match + The string to be inspected + Thrown when the string does not match the regex pattern + + + + Verifies that a string matches a regular expression. + + The regex expected to match + The string to be inspected + Thrown when the string does not match the regex + + + + Verifies that a string does not match a regular expression. + + The regex pattern expected not to match + The string to be inspected + Thrown when the string matches the regex pattern + + + + Verifies that a string does not match a regular expression. + + The regex expected not to match + The string to be inspected + Thrown when the string matches the regex + + + + Verifies that two strings are equivalent. + + The expected string value. + The actual string value. + Thrown when the strings are not equivalent. + + + + Verifies that two strings are equivalent. + + The expected string value. + The actual string value. + If set to true, ignores cases differences. The invariant culture is used. + If set to true, treats \r\n, \r, and \n as equivalent. + If set to true, treats spaces and tabs (in any non-zero quantity) as equivalent. + Thrown when the strings are not equivalent. + + + + Verifies that an object is of the given type or a derived type. + + The type the object should be + The object to be evaluated + The object, casted to type T when successful + Thrown when the object is not the given type + + + + Verifies that an object is of the given type or a derived type. + + The type the object should be + The object to be evaluated + Thrown when the object is not the given type + + + + Verifies that an object is not exactly the given type. + + The type the object should not be + The object to be evaluated + Thrown when the object is the given type + + + + Verifies that an object is not exactly the given type. + + The type the object should not be + The object to be evaluated + Thrown when the object is the given type + + + + Verifies that an object is exactly the given type (and not a derived type). + + The type the object should be + The object to be evaluated + The object, casted to type T when successful + Thrown when the object is not the given type + + + + Verifies that an object is exactly the given type (and not a derived type). + + The type the object should be + The object to be evaluated + Thrown when the object is not the given type + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net range assertions. + + The type that is being compared. + + + + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for exceptions that have actual and expected values + + + + + Creates a new instance of the class. + + The expected value + The actual value + The user message to be shown + The title to use for the expected value (defaults to "Expected") + The title to use for the actual value (defaults to "Actual") + + + + Gets the actual value. + + + + + Gets the title used for the actual value. + + + + + Gets the expected value. + + + + + Gets the title used for the expected value. + + + + + Gets a message that describes the current exception. Includes the expected and actual values. + + The error message that explains the reason for the exception, or an empty string(""). + 1 + + + + Exception thrown when the collection did not contain exactly the given number element. + + + + + Initializes a new instance of the class. + + The expected number of items in the collection. + The actual number of items in the collection. + + + + Exception thrown when Assert.Collection fails. + + + + + Creates a new instance of the class. + + The expected number of items in the collection. + The actual number of items in the collection. + The index of the position where the first comparison failure occurred. + The exception that was thrown during the comparison failure. + + + + The actual number of items in the collection. + + + + + The expected number of items in the collection. + + + + + The index of the position where the first comparison failure occurred, or -1 if + comparisions did not occur (because the actual and expected counts differed). + + + + + + + + + + + Exception thrown when an All assertion has one or more items fail an assertion. + + + + + Creates a new instance of the class. + + The total number of items that were in the collection. + The list of errors that occurred during the test pass. + + + + The errors that occurred during execution of the test. + + + + + + + + Exception thrown when a collection unexpectedly does not contain the expected value. + + + + + Creates a new instance of the class. + + The expected object value + The actual value + + + + Exception thrown when a collection unexpectedly contains the expected value. + + + + + Creates a new instance of the class. + + The expected object value + The actual value + + + + Exception thrown when a string unexpectedly matches a regular expression. + + + + + Creates a new instance of the class. + + The regular expression pattern expected not to match + The actual value + + + + Exception thrown when a collection is unexpectedly not empty. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a string does not end with the expected value. + + + + + Creates a new instance of the class. + + The expected string value + The actual value + + + + Exception thrown when two values are unexpectedly not equal. + + + + + Creates a new instance of the class. + + The expected object value + The actual object value + + + + Creates a new instance of the class for string comparisons. + + The expected string value + The actual string value + The first index in the expected string where the strings differ + The first index in the actual string where the strings differ + + + + Gets the index into the actual value where the values first differed. + Returns -1 if the difference index points were not provided. + + + + + Gets the index into the expected value where the values first differed. + Returns -1 if the difference index points were not provided. + + + + + + + + Exception thrown when a value is unexpectedly true. + + + + + Creates a new instance of the class. + + The user message to be display, or null for the default message + The actual value + + + + Exception thrown when a value is unexpectedly not in the given range. + + + + + Creates a new instance of the class. + + The actual object value + The low value of the range + The high value of the range + + + + Gets the actual object value + + + + + Gets the high value of the range + + + + + Gets the low value of the range + + + + + Gets a message that describes the current exception. + + The error message that explains the reason for the exception, or an empty string(""). + + + + Exception thrown when the value is unexpectedly not of the given type or a derived type. + + + + + Creates a new instance of the class. + + The expected type + The actual object value + + + + Exception thrown when the value is unexpectedly of the exact given type. + + + + + Creates a new instance of the class. + + The expected type + The actual object value + + + + Exception thrown when the value is unexpectedly not of the exact given type. + + + + + Creates a new instance of the class. + + The expected type name + The actual type name + + + + Exception thrown when a string does not match a regular expression. + + + + + Creates a new instance of the class. + + The expected regular expression pattern + The actual value + + + + Exception thrown when a collection is unexpectedly empty. + + + + + Creates a new instance of the class. + + + + + Exception thrown when two values are unexpectedly equal. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a value is unexpectedly in the given range. + + + + + Creates a new instance of the class. + + The actual object value + The low value of the range + The high value of the range + + + + Gets the actual object value + + + + + Gets the high value of the range + + + + + Gets the low value of the range + + + + + Gets a message that describes the current exception. + + The error message that explains the reason for the exception, or an empty string(""). + + + + Exception thrown when an object is unexpectedly null. + + + + + Creates a new instance of the class. + + + + + Exception thrown when two values are unexpected the same instance. + + + + + Creates a new instance of the class. + + + + + Exception thrown when an object reference is unexpectedly not null. + + + + + Creates a new instance of the class. + + + + + + Exception to be thrown from theory execution when the number of + parameter values does not the test method signature. + + + + + Exception thrown when a set is not a proper subset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a set is not a proper superset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when code unexpectedly fails change a property. + + + + + Creates a new instance of the class. Call this constructor + when no exception was thrown. + + The name of the property that was expected to be changed. + + + + Exception thrown when two object references are unexpectedly not the same instance. + + + + + Creates a new instance of the class. + + The expected object reference + The actual object reference + + + + Exception thrown when the collection did not contain exactly one element. + + + + + Initializes a new instance of the class. + + The numbers of items in the collection. + + + + Exception thrown when a string does not start with the expected value. + + + + + Creates a new instance of the class. + + The expected string value + The actual value + + + + Exception thrown when a set is not a subset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a set is not a superset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when code unexpectedly fails to throw an exception. + + + + + Creates a new instance of the class. Call this constructor + when no exception was thrown. + + The type of the exception that was expected + + + + Creates a new instance of the class. Call this constructor + when an exception of the wrong type was thrown. + + The type of the exception that was expected + The actual exception that was thrown + + + + THIS CONSTRUCTOR IS FOR UNIT TESTING PURPOSES ONLY. + + + + + Gets a string representation of the frames on the call stack at the time the current exception was thrown. + + A string that describes the contents of the call stack, with the most recent method call appearing first. + + + + Exception thrown when a value is unexpectedly false. + + + + + Creates a new instance of the class. + + The user message to be displayed, or null for the default message + The actual value + + + + The base assert exception class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The user message to be displayed + + + + Initializes a new instance of the class. + + The user message to be displayed + The inner exception + + + + Initializes a new instance of the class. + + The user message to be displayed + The stack trace to be displayed + + + + Gets a string representation of the frames on the call stack at the time the current exception was thrown. + + A string that describes the contents of the call stack, with the most recent method call appearing first. + + + + Gets the user message + + + + + + + diff --git a/Tests/bin/Debug/xunit.core.xml b/Tests/bin/Debug/xunit.core.xml new file mode 100644 index 0000000..8bd3ce5 --- /dev/null +++ b/Tests/bin/Debug/xunit.core.xml @@ -0,0 +1,1001 @@ + + + + xunit.core + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Indicates the default display name format for test methods. + + + + + Use a fully qualified name (namespace + class + method) + + + + + Use just the method name (without class) + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base attribute which indicates a test method interception (allows code to be run before and + after the test is run). + + + + + This method is called after the test method is executed. + + The method under test + + + + This method is called before the test method is executed. + + The method under test + + + + Abstract attribute which represents a data source for a data theory. + Data source providers derive from this attribute and implement GetData + to return the data for the theory. + + + + + Returns the data to be used to test the theory. + + The method that is being tested + One or more sets of theory data. Each invocation of the test method + is represented by a single object array. + + + + Implementation of for discovering . + + + + + + + + Default implementation of . Uses reflection to find the + data associated with ; may return null when called + without reflection-based abstraction implementations. + + + + + + + + + + + An attribute used to decorate classes which derive from , + to indicate how data elements should be discovered. + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.DataDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + Aggregates exceptions. Intended to run one or more code blocks, and collect the + exceptions thrown by those code blocks. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class that + contains the exception list of its parent. + + The parent aggregator to copy exceptions from. + + + + Returns true if the aggregator has at least one exception inside it. + + + + + Adds an exception to the aggregator. + + The exception to be added. + + + + Adds exceptions from another aggregator into this aggregator. + + The aggregator whose exceptions should be copied. + + + + Clears the aggregator. + + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Returns an exception that represents the exceptions thrown by the code + passed to the or method. + + Returns null if no exceptions were thrown; returns the + exact exception is a single exception was thrown; returns + if more than one exception was thrown. + + + + This class is responsible for discovering the data available in an implementation + of . The discovery process may not always have access + to reflection (i.e., running in Resharper), so the discoverer must make a best + effort to return data, but may return null when there is not enough information + available (for example, if reflection is required to answer the question). + + + + + Returns the data to be used to test the theory. + + + This will be called during + discovery, at which point the may or may not + be backed by reflection (i.e., implementing ). + If the data is not available because reflection is required, then you may return + null to inform xUnit that the quantity of data is unknown at this point. + When the tests are run, if you returned back null during discovery, then this method + will be called again to retrieve the data, this time guaranteed to provide + an implementation of . At this time, you + must return the actual data, and returning null is not legal. + + The data attribute being discovered + The method that is being tested/discovered + The theory data (or null during discovery, if not enough + information is available to enumerate the data) + + + + Returns true if the data attribute supports enumeration during + discovery; false otherwise. Data attributes with expensive computational + costs and/or randomized data sets should return false. + + + + + Used by discovery, execution, and extensibility code to send messages to the runner. + + + + + Queues a message to be sent to the runner. + + The message to be sent to the runner + + Returns true if discovery/execution should continue; false, otherwise. + The return value may be safely ignored by components which are not directly responsible + for discovery or execution, and this is intended to communicate to those sub-systems that + that they should short circuit and stop their work as quickly as is reasonable. + + + + + Implementation of used to discover the data + provided by . + + + + + + + + + + + A class implements this interface to participate in ordering tests + for the test runner. Test case orderers are applied using the + , which can be applied at + the assembly, test collection, and test class level. + + + + + Orders test cases for execution. + + The test cases to be ordered. + The test cases in the order to be run. + + + + Marker interface that must be implemented by test framework attributes, so + that the test framework attribute discoverer can find them. + + + + + Interface to be implemented by classes which are used to discover the test framework. + + + + + Gets the type that implements to be used to discover + and run tests. + + The test framework attribute that decorated the assembly + The test framework type + + + + Marker interface used by attributes which provide trait data. + + + + + This interface is implemented by discoverers that provide trait values to + xUnit.net v2 tests. + + + + + Gets the trait values from the trait attribute. + + The trait attribute containing the trait values. + The trait values. + + + + Interface to be implemented by classes which are used to discover tests cases attached + to test methods that are attributed with (or a subclass). + + + + + Discover test cases from a test method. + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + Represents a single test case from xUnit.net v2. + + + + + Gets the method to be run. Differs from . in that + any generic argument types will have been closed based on the arguments. + + + + + Executes the test case, returning 0 or more result messages through the message sink. + + The message sink used to send diagnostic messages to. + The message bus to report results to. + The arguments to pass to the constructor. + The error aggregator to use for catching exception. + The cancellation token source that indicates whether cancellation has been requested. + Returns the summary of the test case run. + + + + This interface is intended to be implemented by components which generate test collections. + End users specify the desired test collection factory by applying + at the assembly level. Classes which implement this interface must have a constructor + that takes and . + + + + + Gets the display name for the test collection factory. This information is shown to the end + user as part of the description of the test environment. + + + + + Gets the test collection for a given test class. + + The test class. + The test collection. + + + + Marks an assembly as a platform specific assembly for use with xUnit.net. Type references from + such assemblies are allowed to use a special suffix ("My.Assembly.{Platform}"), which will + automatically be translated into the correct platform-specific name ("My.Assembly.desktop", + "My.Assembly.win8", etc.). This affects both extensibility points which require specifying + a string-based type name and assembly, as well as serialization. + + In v2.1 and later, the supported platform target names include: + + "desktop" (for desktop and PCL tests), + "dotnet" (everything else). + + In v2.0, the following names were also supported: + + "iOS-Universal" (for Xamarin test projects targeting iOS), + "MonoAndroid" (for Xamarin MonoAndroid tests), + "MonoTouch" (for Xamarin MonoTouch tests), + "universal" (for Windows Phone 8.1 and Windows 8.1 tests), + "win8" (for Windows 8 tests), + "wp8" (for Windows Phone 8 Silverlight tests). + + For backward compatibility reasons, the v2.1 runners will support tests linked against + the v2.0 execution libraries. + + Note that file names may be case sensitive (when running on platforms with case sensitive + file systems like Linux), so ensure that your assembly file name casing is consistent, and + that you use the suffixes here with the exact case shown. + + + + + Represents the statistical summary from a run of one or more tests. + + + + + The total number of tests run. + + + + + The number of failed tests. + + + + + The number of skipped tests. + + + + + The total time taken to run the tests, in seconds. + + + + + Adds a run summary's totals into this run summary. + + The run summary to be added. + + + + Decorates an implementation of that is used to + determine which test framework is used to discover and run tests. + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.DataDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + An attribute used to decorate classes which derive from , + to indicate how test cases should be discovered. + + + + + Initializes an instance of the class. + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.FactDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + The implementation of which returns the trait values + for . + + + + + + + + An attribute used to decorate classes which implement , + to indicate how trait values should be discovered. The discoverer type must implement + . + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.TraitDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + Provides a data source for a data theory, with the data coming from a class + which must implement IEnumerable<object[]>. + + + + + Initializes a new instance of the class. + + The class that provides the data. + + + + Gets the type of the class that provides the data. + + + + + + + + Used to declare a specific test collection for a test class. + + + + + Initializes a new instance of the class. + + The test collection name. + + + + Defines the built-in behavior types for collections in xUnit.net. + + + + + By default, generates a collection per assembly, and any test classes that are not + decorated with will be placed into the assembly-level + collection. + + + + + By default, generates a collection per test class for any test classes that are not + decorated with . + + + + + Used to declare a the default test collection behavior for the assembly. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The collection behavior for the assembly. + + + + Initializes a new instance of the class. + + The type name of the test collection factory (that implements ). + The assembly that exists in. + + + + Determines whether tests in this assembly are run in parallel. + + + + + Determines how many tests can run in parallel with each other. If set to 0, the system will + use . If set to a negative number, then there will + be no limit to the number of threads. + + + + + Used to declare a test collection container class. The container class gives + developers a place to attach interfaces like and + that will be applied to all tests classes + that are members of the test collection. + + + + + Initializes a new instance of the class. + + The test collection name. + + + + Attribute that is applied to a method to indicate that it is a fact that should be run + by the test runner. It can also be extended to support a customized definition of a + test method. + + + + + Gets the name of the test to be used when the test is skipped. Defaults to + null, which will cause the fully qualified test name to be used. + + + + + Marks the test so that it will not be run, and gets or sets the skip reason + + + + + Used to provide asynchronous lifetime functionality. Currently supported: + - Test classes + - Classes used in + - Classes used in . + + + + + Called immediately after the class has been created, before it is used. + + + + + Called when an object is no longer needed. Called just before + if the class also implements that. + + + + + Used to decorate xUnit.net test classes and collections to indicate a test which has + per-test-class fixture data. An instance of the fixture data is initialized just before + the first test in the class is run, and if it implements IDisposable, is disposed + after the last test in the class is run. To gain access to the fixture data from + inside the test, a constructor argument should be added to the test class which + exactly matches the . Class fixtures must have a + single parameterless constructor, and may take collection fixture types as constructor + arguments. + + The type of the fixture. + + If asynchronous setup of is required + it should implement the interface. + + + + + Used to decorate xUnit.net test classes and collections to indicate a test which has + per-test-collection fixture data. An instance of the fixture data is initialized just before + the first test in the collection is run, and if it implements IDisposable, is disposed + after the last test in the collection is run. To gain access to the fixture data from + inside the test, a constructor argument should be added to the test class which + exactly matches the . + + The type of the fixture. + + If asynchronous setup of is required + it should implement the interface. + + + + + Provides a data source for a data theory, with the data coming from inline values. + + + + + Initializes a new instance of the class. + + The data values to pass to the theory. + + + + + + + A class implements this interface to participate in ordering tests + for the test runner. Test collection orderers are applied using the + , which can be applied at + the assembly level. + + + + + Orders test collections for execution. + + The test collections to be ordered. + The test collections in the order to be run. + + + + Provides a data source for a data theory, with the data coming from one of the following sources: + 1. A static property + 2. A static field + 3. A static method (with parameters) + The member must return something compatible with IEnumerable<object[]> with the test data. + + + + + Initializes a new instance of the class. + + The name of the public static member on the test class that will provide the test data + The parameters for the member (only supported for methods; ignored for everything else) + + + + + + + Provides a base class for attributes that will provide member data. The member data must return + something compatible with . + + + + + Initializes a new instance of the class. + + The name of the public static member on the test class that will provide the test data + The parameters for the member (only supported for methods; ignored for everything else) + + + + Returns true if the data attribute wants to skip enumerating data during discovery. + This will cause the theory to yield a single test case for all data, and the data discovery + will be during test execution instead of discovery. + + + + + Gets the member name. + + + + + Gets or sets the type to retrieve the member from. If not set, then the property will be + retrieved from the unit test class. + + + + + Gets or sets the parameters passed to the member. Only supported for static methods. + + + + + + + + Converts an item yielded by the data member to an object array, for return from . + + The method that is being tested. + An item yielded from the data member. + An suitable for return from . + + + + + + + + + + + + + Allows the user to record actions for a test. + + + + + Records any exception which is thrown by the given code. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Records any exception which is thrown by the given code that has + a return value. Generally used for testing property accessors. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Records any exception which is thrown by the given task. + + The task which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Used to decorate an assembly to allow the use a custom . + + + + + Initializes a new instance of the class. + + The type name of the orderer class (that implements ). + The assembly that exists in. + + + + Used to decorate an assembly, test collection, or test class to allow + the use a custom . + + + + + Initializes a new instance of the class. + + The type name of the orderer class (that implements ). + The assembly that exists in. + + + + Used to decorate an assembly to allow the use a custom . + + + + + Initializes an instance of . + + The fully qualified type name of the test framework + (f.e., 'Xunit.Sdk.XunitTestFramework') + The name of the assembly that the test framework type + is located in, without file extension (f.e., 'xunit.execution') + + + + Marks a test method as being a data theory. Data theories are tests which are fed + various bits of data from a data source, mapping to parameters on the test method. + If the data source contains multiple rows, then the test method is executed + multiple times (once with each data row). Data is provided by attributes which + derive from (notably, and + ). + + + + + Provides data for theories based on collection initialization syntax. + + + + + Adds a row to the theory. + + The values to be added. + + + + + + + + + + Represents a set of data for a theory with a single parameter. Data can + be added to the data set using the collection initializer syntax. + + The parameter type. + + + + Adds data to the theory data set. + + The data value. + + + + Represents a set of data for a theory with 2 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + The fourth parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + The fourth data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + The fourth parameter type. + The fifth parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + The fourth data value. + The fifth data value. + + + + Attribute used to decorate a test method with arbitrary name/value pairs ("traits"). + + + + + Creates a new instance of the class. + + The trait name + The trait value + + + diff --git a/Tests/bin/Debug/xunit.execution.desktop.xml b/Tests/bin/Debug/xunit.execution.desktop.xml new file mode 100644 index 0000000..3d0ebb8 --- /dev/null +++ b/Tests/bin/Debug/xunit.execution.desktop.xml @@ -0,0 +1,4163 @@ + + + + xunit.execution.desktop + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/Tests/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/Tests/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/Tests/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/Tests/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/Tests/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/Tests/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/Tests/obj/Debug/Tests.csproj.FileListAbsolute.txt b/Tests/obj/Debug/Tests.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..67070ca --- /dev/null +++ b/Tests/obj/Debug/Tests.csproj.FileListAbsolute.txt @@ -0,0 +1,40 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.abstractions.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.runner.visualstudio.testadapter.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.runner.utility.desktop.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.execution.desktop.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\Tests.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\Tests.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.assert.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.core.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\BosonProtocol.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.assert.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.assert.xml +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.core.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.core.xml +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\obj\Debug\Tests.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\obj\Debug\Tests.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\obj\Debug\Tests.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\ObjectsPool.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\SocketServer.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\Transport.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\ObjectsPool.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\SocketServer.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\Transport.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\PluginBase.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\PluginBase.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.execution.desktop.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\xunit.execution.desktop.xml +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\protobuf-net.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\protobuf-net.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\protobuf-net.xml +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\BenchmarkDotNet.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\BenchmarkDotNet.xml +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\PluginLauncher.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\PluginLauncher.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\ClientExtensionsBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\ClientGamePlugin.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\GameBasePlugin.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\ClientExtensionsBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\ClientGamePlugin.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\Tests\bin\Debug\GameBasePlugin.pdb diff --git a/Tests/packages.config b/Tests/packages.config new file mode 100644 index 0000000..111e5fc --- /dev/null +++ b/Tests/packages.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Transport/Client/ClientTransportBase.cs b/Transport/Client/ClientTransportBase.cs new file mode 100644 index 0000000..ac67544 --- /dev/null +++ b/Transport/Client/ClientTransportBase.cs @@ -0,0 +1,54 @@ +using System; +using System.IO; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Events; + +namespace Transport.Client +{ + public abstract class ClientTransportBase : IDisposable, IClientTransport + { + + public event EventHandler> OnConnected; + public event EventHandler> OnDisconected; + + public event EventHandler> OnReceive; + public event EventHandler> OnError; + public abstract string TransportName { get; } + public abstract string Address { get; } + public abstract OperationState SendData(ProtocolBase data); + public abstract OperationState SendData(Stream data); + public abstract OperationState RegisterCommand(string commandName, T executeAction) where T : IClientCommand; + public abstract OperationState Connect(string endpointAddress); + public abstract void Dispose(); + public void CloseConnection() + { + Dispose(); + } + #region event invokators + protected void RaiseReceive(ClientGenericEventArgs e) + { + OnReceive?.Invoke(this, e); + } + + protected void RaiseError(ClientGenericEventArgs e) + { + OnError?.Invoke(this, e); + } + + protected void RaiseConnected(ClientGenericEventArgs args ) + { + OnConnected?.Invoke(this,args); + } + + protected void RaiseDisconnected() + { + //OnDisconnected?.Invoke(this, EventArgs.Empty); + } + #endregion + + + } +} \ No newline at end of file diff --git a/Transport/Client/IClientTransport.cs b/Transport/Client/IClientTransport.cs new file mode 100644 index 0000000..f3bf494 --- /dev/null +++ b/Transport/Client/IClientTransport.cs @@ -0,0 +1,18 @@ +using System; +using System.IO; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Events; + +namespace Transport.Client +{ + public interface IClientTransport: ITransport + { + OperationState SendData(ProtocolBase data); + OperationState SendData(Stream data); + OperationState Connect(string endpointAddress); + OperationState RegisterCommand(string commandName, T executeAction) where T : IClientCommand; + } +} \ No newline at end of file diff --git a/Transport/CommandsBase/IClientCommand.cs b/Transport/CommandsBase/IClientCommand.cs new file mode 100644 index 0000000..74833de --- /dev/null +++ b/Transport/CommandsBase/IClientCommand.cs @@ -0,0 +1,9 @@ +using Transport.Connections; + +namespace Transport.CommandsBase +{ + public interface IClientCommand + { + void Execute(ClientConnectionBase connection, IClientCommand entity); + } +} \ No newline at end of file diff --git a/Transport/CommandsBase/ICommand.cs b/Transport/CommandsBase/ICommand.cs new file mode 100644 index 0000000..67541c6 --- /dev/null +++ b/Transport/CommandsBase/ICommand.cs @@ -0,0 +1,9 @@ +using Transport.Connections; + +namespace Transport.CommandsBase +{ + public interface IServerCommand + { + void Execute(ServerConnection connection, IServerCommand entity); + } +} \ No newline at end of file diff --git a/Transport/CommandsBase/Ping.cs b/Transport/CommandsBase/Ping.cs new file mode 100644 index 0000000..91b5f30 --- /dev/null +++ b/Transport/CommandsBase/Ping.cs @@ -0,0 +1,14 @@ +using System; +using Transport.Connections; + +namespace Transport.CommandsBase +{ + [Serializable] + public class Ping:IServerCommand + { + public void Execute(ServerConnection serverConnection, IServerCommand entity) + { + + } + } +} \ No newline at end of file diff --git a/Transport/Connections/ClientConnection.cs b/Transport/Connections/ClientConnection.cs new file mode 100644 index 0000000..a10f882 --- /dev/null +++ b/Transport/Connections/ClientConnection.cs @@ -0,0 +1,31 @@ +using System; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Serializers; +using Transport.Client; +using Transport.CommandsBase; + +namespace Transport.Connections +{ + public class ClientConnection : ClientConnectionBase + { + private readonly ClientTransportBase _transport; + private readonly ProtocolBase _protocol; + public ISerializer DeSerializer; + + public ClientConnection(ClientTransportBase transport, ProtocolBase protocol) : base(transport) + { + _transport = transport; + _protocol = protocol; + } + + public void OnDataReceived(ProtocolBase protocol, IClientCommand action, Type actiontype) + { + var data = protocol.ProtocolName != _protocol.ProtocolName + ? _protocol.CleanData(protocol.GetDataToSend()) + : protocol.GetBody(); + + var obj = DeSerializer.Deserialize(actiontype, data); + action.Execute(this, obj as IClientCommand); + } + } +} \ No newline at end of file diff --git a/Transport/Connections/ClientConnectionBase.cs b/Transport/Connections/ClientConnectionBase.cs new file mode 100644 index 0000000..55a4fe3 --- /dev/null +++ b/Transport/Connections/ClientConnectionBase.cs @@ -0,0 +1,39 @@ +#region + +using System; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Serializers; +using Transport.Client; +using Transport.CommandsBase; +using Transport.Connections.Peers; + +#endregion + +namespace Transport.Connections +{ + public abstract class ClientConnectionBase: IDisposable + { + public ClientPeerBase PeerRef; + public readonly TransportStats TransportStats; + private readonly IClientTransport _transport; + + protected ClientConnectionBase(IClientTransport transport) + { + _transport = transport; + TransportStats = new TransportStats(transport.TransportName); + } + + public string ConnectionName { get; set; } + + public OperationState SendData(ProtocolBase data) + { + return _transport.SendData(data); + } + + public void Dispose() + { + //_transport.Dispose(); + } + } +} \ No newline at end of file diff --git a/Transport/Connections/ClientConnectionFactory.cs b/Transport/Connections/ClientConnectionFactory.cs new file mode 100644 index 0000000..e54e3eb --- /dev/null +++ b/Transport/Connections/ClientConnectionFactory.cs @@ -0,0 +1,29 @@ +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using QuaternionProtocol.Serializers; +using Transport.Client; + +namespace Transport.Connections +{ + public static class ClientConnectionFactory + { + public static ClientConnectionBase Create(IClientTransport transport) + { + ClientConnectionBase result = null; + switch (transport.TransportName) + { + case "TCPIPV4": + case "UDPIPV4": + var transp = (ClientTransportBase)transport; + var conn = new ClientConnection(transp, new BinaryProtocol(new byte[50])) + { + DeSerializer = new BinaryFormaterGenericSerializer() + }; + result = conn; + break; + } + + return result; + } + } +} \ No newline at end of file diff --git a/Transport/Connections/Peers/ClientPeerBase.cs b/Transport/Connections/Peers/ClientPeerBase.cs new file mode 100644 index 0000000..6fc991b --- /dev/null +++ b/Transport/Connections/Peers/ClientPeerBase.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; + +namespace Transport.Connections.Peers +{ + public class ClientPeerBase + { + public string AppId { get; set; } + protected readonly Dictionary Connections = new Dictionary(); + + public void AddClientConnection(ClientConnectionBase connection) + { + if (connection == null) throw new ArgumentNullException(nameof(connection)); + if (string.IsNullOrEmpty(connection.ConnectionName)) throw new ArgumentNullException(nameof(connection.ConnectionName)); + + if (Connections.ContainsKey(connection.ConnectionName)) + { + var currentConnection = Connections[connection.ConnectionName]; + currentConnection.Dispose(); + Connections.Remove(connection.ConnectionName); + } + connection.PeerRef = this; + Connections.Add(connection.ConnectionName, connection); + } + + public OperationState Send(string connectionName, ProtocolBase data) + { + ClientConnectionBase connectionBase; + if (Connections.TryGetValue(connectionName, out connectionBase)) + { + return Send(connectionBase, data); + } + + return new OperationState { IsSuccessful = false, Details = $"Protocol {connectionName} not found for current peer" }; + } + + public OperationState Send(ClientConnectionBase connection, ProtocolBase data) + { + var operationState = connection.SendData(data); + + if (operationState.IsSuccessful) + connection.TransportStats.AddBytesSent(operationState.Counter); + else return operationState; + return new OperationState { IsSuccessful = true }; + } + + public void Dispose() + { + foreach (var connection in Connections) + { + connection.Value.Dispose(); + } + } + } +} \ No newline at end of file diff --git a/Transport/Connections/Peers/PeerBase.cs b/Transport/Connections/Peers/PeerBase.cs new file mode 100644 index 0000000..ce8fc81 --- /dev/null +++ b/Transport/Connections/Peers/PeerBase.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; + +namespace Transport.Connections.Peers +{ + public abstract class PeerBase : IDisposable + { + protected PeerBase(string appId) + { + if (string.IsNullOrEmpty(appId)) throw new ArgumentNullException(nameof(appId)); + ApplicationId = appId; + ConnectionId = Guid.NewGuid().ToString(); + } + public string ApplicationId { get; private set; } + public string ConnectionId { get; set; } + + /// + /// transportname,ConnectionBase + /// + public readonly Dictionary Connections = new Dictionary(); + + protected void AddConnection(ServerConnectionBase serverConnectionBase) + { + if (serverConnectionBase == null) throw new ArgumentNullException(nameof(serverConnectionBase)); + serverConnectionBase.ServerTransport.ChangeConnectionId(serverConnectionBase.ConnectionId, ConnectionId); + if (Connections.ContainsKey(serverConnectionBase.ServerTransport.TransportName)) + { + var currentConnection = Connections[serverConnectionBase.ServerTransport.TransportName]; + currentConnection.CloseConnection(); + Connections.Remove(serverConnectionBase.ServerTransport.TransportName); + } + serverConnectionBase.Peer = this; + Connections.Add(serverConnectionBase.ServerTransport.TransportName, serverConnectionBase); + } + + public OperationState Send(string protocolName, ProtocolBase data) + { + ServerConnectionBase serverConnectionBase; + if (Connections.TryGetValue(protocolName, out serverConnectionBase)) + { + return Send(serverConnectionBase, data); + } + + return new OperationState { IsSuccessful = false, Details = $"Protocol {protocolName} not found for current peer" }; + } + + public OperationState Send(ServerConnectionBase serverConnectionBase, ProtocolBase data) + { + var operationState = serverConnectionBase.ServerTransport.SendData(ConnectionId, data); + + if (operationState.IsSuccessful) + serverConnectionBase.TransportStats.AddBytesSent(operationState.Counter); + else return operationState; + return new OperationState { IsSuccessful = true }; + } + + public void Dispose() + { + foreach (var connection in Connections) + { + connection.Value.ServerTransport.DisconnectClient(ConnectionId); + } + } + } +} \ No newline at end of file diff --git a/Transport/Connections/ServerConnection.cs b/Transport/Connections/ServerConnection.cs new file mode 100644 index 0000000..e2d293d --- /dev/null +++ b/Transport/Connections/ServerConnection.cs @@ -0,0 +1,29 @@ + +using System; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Serializers; +using Transport.CommandsBase; +using Transport.Server; + +namespace Transport.Connections +{ + public class ServerConnection : ServerConnectionBase + { + public readonly ProtocolBase Protocol; + public ISerializer DeSerializer; + public ServerConnection(ServerTransportBase serverTransport, ProtocolBase protocol, string connectionId) : base(serverTransport, connectionId) + { + Protocol = protocol; + } + + public void OnDataReceived(ProtocolBase protocol, Transport.CommandsBase.IServerCommand action, Type actiontype) + { + var data = protocol.ProtocolName != Protocol.ProtocolName ? Protocol.CleanData(protocol.GetDataToSend()) : protocol.GetBody(); + + var obj = DeSerializer.Deserialize(actiontype, data); + action.Execute(this,obj as IServerCommand); + } + + public override string SerializerName => DeSerializer.Name; + } +} \ No newline at end of file diff --git a/Transport/Connections/ServerConnectionBase.cs b/Transport/Connections/ServerConnectionBase.cs new file mode 100644 index 0000000..1960fd5 --- /dev/null +++ b/Transport/Connections/ServerConnectionBase.cs @@ -0,0 +1,79 @@ +using System; +using System.Diagnostics; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using Transport.Connections.Peers; +using Transport.Server; + +namespace Transport.Connections +{ + /// + /// Represents info about current ConnectionBase to concrete trasport feature + /// + [DebuggerDisplay("{ConnectionId}:{ServerTransport.TransportName}:{RemoteAddressInfo}:{LastPingTimeUtc}")] + public abstract class ServerConnectionBase : IDisposable + { + protected ServerConnectionBase(Server.IServerTransport serverTransport, string connectionId) + { + if (serverTransport == null) throw new ArgumentNullException(nameof(serverTransport)); + + if (string.IsNullOrEmpty(connectionId)) connectionId = Guid.NewGuid().ToString(); + + ConnectionId = connectionId; + ServerTransport = serverTransport; + } + + public abstract string SerializerName { get; } + public string ConnectionId + { + get { return _connectionId; } + set + { + if (!string.IsNullOrEmpty(ConnectionId)) + ServerTransport.ChangeConnectionId(_connectionId, value); + _connectionId = value; + } + } + + public string TransportType => ServerTransport.TransportName; + internal Server.IServerTransport ServerTransport { get; private set; } + + public DateTime LastPingTimeUtc + { + get { return ServerTransport.GetLastPingTimeFor(ConnectionId); } + set + { + ServerTransport.Touch(ConnectionId); + } + } + + public string RemoteAddressInfo => ServerTransport.GetClientAddressInfo(ConnectionId); + public TransportStats TransportStats => ServerTransport.GetStats(ConnectionId); + + //Null if client not found + public PeerBase Peer; + private string _connectionId; + + public OperationState SendData(ProtocolBase data) + { + return ServerTransport.SendData(ConnectionId, data); + } + public void CloseConnection() + { + ServerTransport.DisconnectClient(ConnectionId); + } + + public void Dispose() + { + CloseConnection(); + Peer = null; + ServerTransport = null; + ConnectionId = ""; + } + + public override string ToString() + { + return $"{ConnectionId}:{ServerTransport.TransportName}"; + } + } +} \ No newline at end of file diff --git a/Transport/Connections/ServerConnectionFactory.cs b/Transport/Connections/ServerConnectionFactory.cs new file mode 100644 index 0000000..d43c382 --- /dev/null +++ b/Transport/Connections/ServerConnectionFactory.cs @@ -0,0 +1,29 @@ +using System; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; +using QuaternionProtocol.Serializers; +using Transport.Server; + +namespace Transport.Connections +{ + public static class ServerConnectionFactory + { + public static ServerConnectionBase Create(Server.IServerTransport serverTransport, string connectionId) + { + switch (serverTransport.TransportName) + { + case "TCPIPV4": + case "UDPIPV4": + var transp = (ServerTransportBase) serverTransport; + var conn = new ServerConnection(transp,new BinaryProtocol(new byte[50]), connectionId) + { + DeSerializer = new BinaryFormaterGenericSerializer() + }; + return conn; + case "SignalR": + default: + throw new ArgumentOutOfRangeException(nameof(serverTransport), "Tranport not found"); + } + } + } +} \ No newline at end of file diff --git a/Transport/Events/ClientGenericEventArgs.cs b/Transport/Events/ClientGenericEventArgs.cs new file mode 100644 index 0000000..33fe1a6 --- /dev/null +++ b/Transport/Events/ClientGenericEventArgs.cs @@ -0,0 +1,9 @@ +using Transport.Connections; + +namespace Transport.Events +{ + public class ClientGenericEventArgs: DataEventArgs + { + public ClientConnectionBase ConnectionBase; + } +} \ No newline at end of file diff --git a/Transport/Events/DataEventArgs.cs b/Transport/Events/DataEventArgs.cs new file mode 100644 index 0000000..12cde33 --- /dev/null +++ b/Transport/Events/DataEventArgs.cs @@ -0,0 +1,11 @@ +using System; +using QuaternionProtocol.Protocol; + +namespace Transport.Events +{ + public class DataEventArgs: EventArgs + { + public T DataReceived; + public ProtocolBase Protocol; + } +} \ No newline at end of file diff --git a/Transport/Events/ServerGenericEventArgs.cs b/Transport/Events/ServerGenericEventArgs.cs new file mode 100644 index 0000000..9c370fa --- /dev/null +++ b/Transport/Events/ServerGenericEventArgs.cs @@ -0,0 +1,11 @@ +using System; +using QuaternionProtocol.Protocol; +using Transport.Connections; + +namespace Transport.Events +{ + public class ServerGenericEventArgs: DataEventArgs + { + public ServerConnectionBase ServerConnectionBase; + } +} \ No newline at end of file diff --git a/Transport/IServerTransport.cs b/Transport/IServerTransport.cs new file mode 100644 index 0000000..422912a --- /dev/null +++ b/Transport/IServerTransport.cs @@ -0,0 +1,10 @@ +using QuaternionProtocol; +using Transport.CommandsBase; + +namespace Transport +{ + public interface IServerTransport:ITransport + { + OperationState RegisterCommand(string commandName, T executeAction) where T : IServerCommand; + } +} \ No newline at end of file diff --git a/Transport/ITransport.cs b/Transport/ITransport.cs new file mode 100644 index 0000000..258173a --- /dev/null +++ b/Transport/ITransport.cs @@ -0,0 +1,14 @@ +using System; +using Transport.Events; + +namespace Transport +{ + public interface ITransport + { + event EventHandler> OnError; + string TransportName { get; } + string Address { get; } + + void CloseConnection(); + } +} \ No newline at end of file diff --git a/Transport/Properties/AssemblyInfo.cs b/Transport/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8bde514 --- /dev/null +++ b/Transport/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("serverServerTransport")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("serverServerTransport")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("18754433-15c4-4478-ac06-c68533451ff2")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Transport/Server/IServerTransport.cs b/Transport/Server/IServerTransport.cs new file mode 100644 index 0000000..455b1c6 --- /dev/null +++ b/Transport/Server/IServerTransport.cs @@ -0,0 +1,27 @@ +using System; +using System.IO; +using System.Net; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using Transport.Connections; +using Transport.Events; + +namespace Transport.Server +{ + public interface IServerTransport : Transport.IServerTransport + { + event EventHandler> OnConnected; + event EventHandler> OnDisconnected; + string ServerAddress { get; } + void DisconnectClient(string connectionId); + void Start(); + string GetClientAddressInfo(string connectionId); + DateTime GetLastPingTimeFor(string connectionId); + void Touch(string connectionId); + void ChangeConnectionId(string oldConnectionId, string newConnectionId); + TransportStats GetStats(string connectionId); + OperationState SendData(string connectionId, ProtocolBase data); + OperationState SendData(Stream data, string connectionId); + OperationState SetPort(int portNo); + } +} \ No newline at end of file diff --git a/Transport/Server/ServerTransportBase.cs b/Transport/Server/ServerTransportBase.cs new file mode 100644 index 0000000..ce8aa72 --- /dev/null +++ b/Transport/Server/ServerTransportBase.cs @@ -0,0 +1,81 @@ +using System; +using System.IO; +using System.Net; +using QuaternionProtocol; +using QuaternionProtocol.Protocol; +using Transport.CommandsBase; +using Transport.Connections; +using Transport.Events; + +namespace Transport.Server +{ + public abstract class ServerTransportBase : IDisposable, IServerTransport + { + protected bool IsStarted; + public abstract event EventHandler> OnReceive; + public event EventHandler> OnConnected; + public event EventHandler> OnDisconnected; + public event EventHandler> OnError; + + protected ServerTransportBase() + { + RegisterCommand("Ping", new Ping()); + } + + public abstract string TransportName { get; } + public abstract string Address { get; } + public abstract void Start(); + + public abstract string GetClientAddressInfo(string connectionId); + + /// + /// + /// + /// + /// + /// Shoud inherit ISerializableTo/ + /// Bytes sent + /// + public abstract OperationState SendData(string connectionId, ProtocolBase data); + + public abstract OperationState SendData(Stream data, string connectionId); + public abstract OperationState SetPort(int portNo); + public string ServerAddress => Address; + + public void CloseConnection() + { + Dispose(); + } + + public abstract DateTime GetLastPingTimeFor(string connectionId); + public abstract void Touch(string connectionId); + + public abstract TransportStats GetStats(string connectionId); + public abstract void ChangeConnectionId(string oldConnectionId, string newConnectionId); + + public abstract OperationState RegisterCommand(string commandName, T executeAction) where T:IServerCommand; + + public abstract void DisconnectClient(string connectionId); + + #region event invocators + + + protected void OnClientConnectedInvoke(ServerConnectionBase e) + { + OnConnected?.Invoke(this, new ServerGenericEventArgs {ServerConnectionBase = e}); + } + + protected void OnClientDisconnectedInvoke(ServerGenericEventArgs e) + { + OnDisconnected?.Invoke(this, e); + } + + protected void OnErrorInvoke(ServerGenericEventArgs e) + { + OnError?.Invoke(this, e); + } + #endregion + + public abstract void Dispose(); + } +} diff --git a/Transport/SocketAsyncEventArgsExtended.cs b/Transport/SocketAsyncEventArgsExtended.cs new file mode 100644 index 0000000..cf121b0 --- /dev/null +++ b/Transport/SocketAsyncEventArgsExtended.cs @@ -0,0 +1,36 @@ +using System; +using System.Net.Sockets; +using System.Threading; +using QuaternionProtocol.Protocol; +using QuaternionProtocol.Protocol.Binary; + +namespace Transport +{ + public class SocketAsyncEventArgsExtended : SocketAsyncEventArgs + { + public readonly ManualResetEvent WhenSocketReady = new ManualResetEvent(true); + public DateTime LastResponse = DateTime.UtcNow; + private SocketState _socketState; + public SocketState SocketState + { + get { return _socketState; } + set + { + if (value == SocketState.Idle) WhenSocketReady.Set(); + else + { + WhenSocketReady.Reset(); + } + + _socketState = value; + } + } + public readonly TransportStats CurrentSocketStats = new TransportStats("SocketServer"); + public readonly CircularBuffer BytesBuffer = new CircularBuffer(1500); + } + + public enum SocketState + { + Idle=0, Busy=1 + } +} \ No newline at end of file diff --git a/Transport/Transport.csproj b/Transport/Transport.csproj new file mode 100644 index 0000000..8f14302 --- /dev/null +++ b/Transport/Transport.csproj @@ -0,0 +1,81 @@ + + + + + Debug + AnyCPU + {18754433-15C4-4478-AC06-C68533451FF2} + Library + Properties + Transport + Transport + v2.0 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {7BFDA634-9654-44D8-AE0E-FDCA6284516D} + QuaternionProtocol + + + + + + \ No newline at end of file diff --git a/Transport/TransportStats.cs b/Transport/TransportStats.cs new file mode 100644 index 0000000..9a4a430 --- /dev/null +++ b/Transport/TransportStats.cs @@ -0,0 +1,27 @@ +namespace Transport +{ + public class TransportStats + { + private string _transportName; + + public TransportStats(string transportName) + { + _transportName = transportName; + } + + public int SentKb { get; protected set; } + public int ReceivedKb { get; protected set; } + + public int TotalKb => SentKb + ReceivedKb; + + public void AddBytesSent(int sentInBytes) + { + SentKb += sentInBytes/1024; + } + + public void AddBytesReceived(int receivedInBytes) + { + ReceivedKb += receivedInBytes/1024; + } + } +} \ No newline at end of file diff --git a/Transport/obj/Debug/Transport.csproj.FileListAbsolute.txt b/Transport/obj/Debug/Transport.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..37123b1 --- /dev/null +++ b/Transport/obj/Debug/Transport.csproj.FileListAbsolute.txt @@ -0,0 +1,7 @@ +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Transport\bin\Debug\Transport.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Transport\bin\Debug\Transport.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Transport\bin\Debug\BosonProtocol.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Transport\bin\Debug\BosonProtocol.pdb +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Transport\obj\Debug\Transport.csprojResolveAssemblyReference.cache +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Transport\obj\Debug\Transport.dll +c:\users\goryanin.infosystem\documents\visual studio 2015\Projects\ClientExtensionsBase\Transport\obj\Debug\Transport.pdb diff --git a/UnityClietn/Class1.cs b/UnityClietn/Class1.cs new file mode 100644 index 0000000..0c1c508 --- /dev/null +++ b/UnityClietn/Class1.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace UnityClietn +{ + public class Class1 + { + } +} diff --git a/UnityClietn/Properties/AssemblyInfo.cs b/UnityClietn/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1efac6f --- /dev/null +++ b/UnityClietn/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("UnityClietn")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("UnityClietn")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c55fb9f4-baa3-4430-aea3-feccc765a095")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/UnityClietn/UnityClietn.csproj b/UnityClietn/UnityClietn.csproj new file mode 100644 index 0000000..2f7f9e1 --- /dev/null +++ b/UnityClietn/UnityClietn.csproj @@ -0,0 +1,56 @@ + + + + + Debug + AnyCPU + {C55FB9F4-BAA3-4430-AEA3-FECCC765A095} + Library + Properties + UnityClietn + UnityClietn + v3.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UnityExtension/Properties/AssemblyInfo.cs b/UnityExtension/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6614482 --- /dev/null +++ b/UnityExtension/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("UnityExtension")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("UnityExtension")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("02104d08-4788-42c8-918c-e760e26afb3d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/UnityExtension/UnityExtension.csproj b/UnityExtension/UnityExtension.csproj new file mode 100644 index 0000000..7f89d90 --- /dev/null +++ b/UnityExtension/UnityExtension.csproj @@ -0,0 +1,61 @@ + + + + + Debug + AnyCPU + {02104D08-4788-42C8-918C-E760E26AFB3D} + Library + Properties + UnityExtension + UnityExtension + v3.5 + 512 + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + {6f7bc5f3-910f-411b-adc2-e3572832026e} + ClientExtensionsBase + + + + + \ No newline at end of file diff --git a/UnityExtension/obj/Debug/UnityExtension.csproj.FileListAbsolute.txt b/UnityExtension/obj/Debug/UnityExtension.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..2943661 --- /dev/null +++ b/UnityExtension/obj/Debug/UnityExtension.csproj.FileListAbsolute.txt @@ -0,0 +1,11 @@ +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\bin\Debug\UnityExtension.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\bin\Debug\UnityExtension.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\bin\Debug\ClientExtensionsBase.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\bin\Debug\ClientExtensionsBase.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\obj\Debug\UnityExtension.csprojResolveAssemblyReference.cache +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\obj\Debug\UnityExtension.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\obj\Debug\UnityExtension.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\bin\Debug\Transport.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\bin\Debug\BosonProtocol.dll +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\bin\Debug\Transport.pdb +C:\Users\goryanin.INFOSYSTEM\Documents\Visual Studio 2015\Projects\ClientExtensionsBase\UnityExtension\bin\Debug\BosonProtocol.pdb diff --git a/packages/BenchmarkDotNet.0.9.7/BenchmarkDotNet.0.9.7.nupkg b/packages/BenchmarkDotNet.0.9.7/BenchmarkDotNet.0.9.7.nupkg new file mode 100644 index 0000000..685f80d Binary files /dev/null and b/packages/BenchmarkDotNet.0.9.7/BenchmarkDotNet.0.9.7.nupkg differ diff --git a/packages/BenchmarkDotNet.0.9.7/lib/dnx451/BenchmarkDotNet.xml b/packages/BenchmarkDotNet.0.9.7/lib/dnx451/BenchmarkDotNet.xml new file mode 100644 index 0000000..00bcc2b --- /dev/null +++ b/packages/BenchmarkDotNet.0.9.7/lib/dnx451/BenchmarkDotNet.xml @@ -0,0 +1,464 @@ + + + + BenchmarkDotNet + + + + + This attribute has the same effect as writing [Config("Jobs=Dry")] + + + + + determines if all auto-generated files should be kept or removed after running benchmarks + + + + The events are guaranteed to happen in the following sequence: + Start // When the Benchmark run is started and most importantly BEFORE the process has been launched + ProcessStarted // After the Process (in a "Diagnostic" run) has been launched + AfterBenchmarkHasRun // After a "Warmup" iteration of the Benchmark has run, i.e. we know the [Benchmark] method has been + // executed and JITted, this is important if the Diagnoser needs to know when it can do a Memory Dump. + ProcessStopped // Once the Process (in a "Diagnostic" run) has stopped/completed + Stop // At the end, when the entire Benchmark run has complete + DisplayResults // When the results/output should be displayed + + + + This is an internal interface, it allows Exporters to specify that + they depends on another Exporter (see RPlotExporter for example) + + + + + replaces all invalid file name chars with their number representation + + + + + From http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx + Returns a list of strings no larger than the max length sent in. + + useful function used to wrap string text for reporting. + Text to be wrapped into of List of Strings + Max length you want each line to be. + List of strings + + + + is expensive to call (creates new process) + + + + + The frequency of the timer as the number of ticks per second. + + + + disabled by default to avoid perf hit for auto-generated program that also calls this method + + + + System timer + + + + + Time Stamp Counter + + + + + + High Precision Event Timer + + + + + + This method chooses the best time unit for representing a set of time measurements. + + The list of time measurements in nanoseconds. + Best time unit. + + + + Desired time of execution of an iteration (in ms). + + + + + ProcessorAffinity for the benchmark process. + + + + + + Create a new job as a copy of the original job with specific time of a single iteration + + Original job + Iteration time in Millisecond or Auto + + + + + Desktop CLR + + + + + Desktop CLR hosted on Windows with Dot Net eXecution (DNX) + + + + + Cross-platform CoreCLR runtime + + + + + Adds prefix for each line + + + + + Calculates the Nth percentile from the set of values + + + The implementation is expected to be consitent with the one from Excel. + It's a quite common to export bench output into .csv for further analysis + And it's a good idea to have same results from all tools being used. + + Sequence of the values to be calculated + Value in range 0..100 + Percentile from the set of values + + + + The basic captured statistics for a benchmark. + + + + + Gets the number of operations performed. + + + + + Gets the total number of nanoseconds it took to perform all operations. + + + + + Creates an instance of class. + + + + + The number of operations performed. + The total number of nanoseconds it took to perform all operations. + + + + Parses the benchmark statistics from the plain text line. + + E.g. given the input : + + Target 1: 10 op, 1005842518 ns + + Will extract the number of performed and the + total number of it took to perform them. + + The logger to write any diagnostic messages to. + The line to parse. + An instance of if parsed successfully. Null in case of any trouble. + + + + Gets the number of operations performed per second (ops/sec). + + + + + Gets the average duration of one operation in nanoseconds. + + + + + + + + + + Warmup for idle method (overhead) + + + + + Idle method (overhead) + + + + + Warmup for main benchmark iteration (with overhead) + + + + + Main benchmark iteration (with overhead) + + + + + Target - TargetIdle (without overhead) + + + + + Unknown + + + + + generates project.lock.json that tells compiler where to take dlls and source from + and builds executable and copies all required dll's + + + + + we use custom output path in order to avoid any future problems related to dotnet cli paths changes + + + + + we need our folder to be on the same level as the project that we want to reference + we are limited by xprojs (by default compiles all .cs files in all subfolders, Program.cs could be doubled and fail the build) + and also by nuget internal implementation like looking for global.json file in parent folders + + + + + we can not simply call assemblyName.Version.ToString() because it is different than package version which can contain (and often does) text + we are using the wildcard to get latest version of package/project restored + + + + + returns true if any of the validators has TreatsWarningsAsErrors == true + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + The implementation to use when comparing keys, or null to use the default for the type of the key. + + + + Gets the at the specified index. + + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Gets the keys. + + The keys. + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + diff --git a/packages/BenchmarkDotNet.0.9.7/lib/net40/BenchmarkDotNet.xml b/packages/BenchmarkDotNet.0.9.7/lib/net40/BenchmarkDotNet.xml new file mode 100644 index 0000000..00bcc2b --- /dev/null +++ b/packages/BenchmarkDotNet.0.9.7/lib/net40/BenchmarkDotNet.xml @@ -0,0 +1,464 @@ + + + + BenchmarkDotNet + + + + + This attribute has the same effect as writing [Config("Jobs=Dry")] + + + + + determines if all auto-generated files should be kept or removed after running benchmarks + + + + The events are guaranteed to happen in the following sequence: + Start // When the Benchmark run is started and most importantly BEFORE the process has been launched + ProcessStarted // After the Process (in a "Diagnostic" run) has been launched + AfterBenchmarkHasRun // After a "Warmup" iteration of the Benchmark has run, i.e. we know the [Benchmark] method has been + // executed and JITted, this is important if the Diagnoser needs to know when it can do a Memory Dump. + ProcessStopped // Once the Process (in a "Diagnostic" run) has stopped/completed + Stop // At the end, when the entire Benchmark run has complete + DisplayResults // When the results/output should be displayed + + + + This is an internal interface, it allows Exporters to specify that + they depends on another Exporter (see RPlotExporter for example) + + + + + replaces all invalid file name chars with their number representation + + + + + From http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx + Returns a list of strings no larger than the max length sent in. + + useful function used to wrap string text for reporting. + Text to be wrapped into of List of Strings + Max length you want each line to be. + List of strings + + + + is expensive to call (creates new process) + + + + + The frequency of the timer as the number of ticks per second. + + + + disabled by default to avoid perf hit for auto-generated program that also calls this method + + + + System timer + + + + + Time Stamp Counter + + + + + + High Precision Event Timer + + + + + + This method chooses the best time unit for representing a set of time measurements. + + The list of time measurements in nanoseconds. + Best time unit. + + + + Desired time of execution of an iteration (in ms). + + + + + ProcessorAffinity for the benchmark process. + + + + + + Create a new job as a copy of the original job with specific time of a single iteration + + Original job + Iteration time in Millisecond or Auto + + + + + Desktop CLR + + + + + Desktop CLR hosted on Windows with Dot Net eXecution (DNX) + + + + + Cross-platform CoreCLR runtime + + + + + Adds prefix for each line + + + + + Calculates the Nth percentile from the set of values + + + The implementation is expected to be consitent with the one from Excel. + It's a quite common to export bench output into .csv for further analysis + And it's a good idea to have same results from all tools being used. + + Sequence of the values to be calculated + Value in range 0..100 + Percentile from the set of values + + + + The basic captured statistics for a benchmark. + + + + + Gets the number of operations performed. + + + + + Gets the total number of nanoseconds it took to perform all operations. + + + + + Creates an instance of class. + + + + + The number of operations performed. + The total number of nanoseconds it took to perform all operations. + + + + Parses the benchmark statistics from the plain text line. + + E.g. given the input : + + Target 1: 10 op, 1005842518 ns + + Will extract the number of performed and the + total number of it took to perform them. + + The logger to write any diagnostic messages to. + The line to parse. + An instance of if parsed successfully. Null in case of any trouble. + + + + Gets the number of operations performed per second (ops/sec). + + + + + Gets the average duration of one operation in nanoseconds. + + + + + + + + + + Warmup for idle method (overhead) + + + + + Idle method (overhead) + + + + + Warmup for main benchmark iteration (with overhead) + + + + + Main benchmark iteration (with overhead) + + + + + Target - TargetIdle (without overhead) + + + + + Unknown + + + + + generates project.lock.json that tells compiler where to take dlls and source from + and builds executable and copies all required dll's + + + + + we use custom output path in order to avoid any future problems related to dotnet cli paths changes + + + + + we need our folder to be on the same level as the project that we want to reference + we are limited by xprojs (by default compiles all .cs files in all subfolders, Program.cs could be doubled and fail the build) + and also by nuget internal implementation like looking for global.json file in parent folders + + + + + we can not simply call assemblyName.Version.ToString() because it is different than package version which can contain (and often does) text + we are using the wildcard to get latest version of package/project restored + + + + + returns true if any of the validators has TreatsWarningsAsErrors == true + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + The implementation to use when comparing keys, or null to use the default for the type of the key. + + + + Gets the at the specified index. + + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Gets the keys. + + The keys. + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + 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 new file mode 100644 index 0000000..dcbe26f --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/net20-cf/protobuf-net.xml @@ -0,0 +1,2529 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/net20/protobuf-net.xml new file mode 100644 index 0000000..aa761e6 --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/net20/protobuf-net.xml @@ -0,0 +1,2758 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/net30/protobuf-net.xml new file mode 100644 index 0000000..ccf3c6f --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/net30/protobuf-net.xml @@ -0,0 +1,2879 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/net35-cf/protobuf-net.xml new file mode 100644 index 0000000..dcbe26f --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/net35-cf/protobuf-net.xml @@ -0,0 +1,2529 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/net35/protobuf-net.xml new file mode 100644 index 0000000..ccf3c6f --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/net35/protobuf-net.xml @@ -0,0 +1,2879 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/net40-cf/protobuf-net.xml new file mode 100644 index 0000000..dcbe26f --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/net40-cf/protobuf-net.xml @@ -0,0 +1,2529 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/net40/protobuf-net.xml new file mode 100644 index 0000000..ccf3c6f --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/net40/protobuf-net.xml @@ -0,0 +1,2879 @@ + + + + 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 new file mode 100644 index 0000000..e2507cb --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.XML @@ -0,0 +1,2539 @@ + + + + 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.pri b/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.pri new file mode 100644 index 0000000..03574cc Binary files /dev/null and b/packages/protobuf-net.2.0.0.668/lib/netcore45/protobuf-net.pri 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 new file mode 100644 index 0000000..dcbe26f --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/portable-sl4+net40+wp7+windows8/protobuf-net.xml @@ -0,0 +1,2529 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/sl3-wp/protobuf-net.xml new file mode 100644 index 0000000..e2507cb --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/sl3-wp/protobuf-net.xml @@ -0,0 +1,2539 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/sl4-windowsphone71/protobuf-net.xml new file mode 100644 index 0000000..e2507cb --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/sl4-windowsphone71/protobuf-net.xml @@ -0,0 +1,2539 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/sl4/protobuf-net.xml new file mode 100644 index 0000000..788e379 --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/sl4/protobuf-net.xml @@ -0,0 +1,2585 @@ + + + + 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.xml b/packages/protobuf-net.2.0.0.668/lib/windowsphone8/protobuf-net.xml new file mode 100644 index 0000000..f97baa8 --- /dev/null +++ b/packages/protobuf-net.2.0.0.668/lib/windowsphone8/protobuf-net.xml @@ -0,0 +1,2641 @@ + + + + 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 new file mode 100644 index 0000000..7a6be56 Binary files /dev/null and b/packages/protobuf-net.2.0.0.668/protobuf-net.2.0.0.668.nupkg differ diff --git a/packages/xunit.2.1.0/xunit.2.1.0.nupkg b/packages/xunit.2.1.0/xunit.2.1.0.nupkg new file mode 100644 index 0000000..c7c606b Binary files /dev/null and b/packages/xunit.2.1.0/xunit.2.1.0.nupkg differ diff --git a/packages/xunit.abstractions.2.0.0/lib/net35/xunit.abstractions.xml b/packages/xunit.abstractions.2.0.0/lib/net35/xunit.abstractions.xml new file mode 100644 index 0000000..7dba65f --- /dev/null +++ b/packages/xunit.abstractions.2.0.0/lib/net35/xunit.abstractions.xml @@ -0,0 +1,1087 @@ + + + + xunit.abstractions + + + + + Represents source information about a test case. + + + + + Interface implement by objects that want to support serialization in xUnit.net. + + + + + Called when the object should populate itself with data from the serialization info. + + The info to get the data from + + + + Called when the object should store its data into the serialization info. + + The info to store the data in + + + + Gets or sets the source file name. A null value indicates that the + source file name is not known. + + + + + Gets or sets the source file line. A null value indicates that the + source file line is not known. + + + + + Represents a provider which gives source line information for a test case. Generally + consumed by an implementation of during Find operations. + + + + + Returns the source information for a test case. + + The test case to retrieve information for. + The source information, with null string and int values when the information is not available. + Note: return value should never be null, only the interior data values inside. + + + + Represents a test framework. There are two pieces to test frameworks: discovery and + execution. The two factory methods represent these two pieces. Test frameworks can + implement an empty constructor, or they can implement one that takes + if they want to be able to send diagnostic messages. + + + + + Get a test discoverer. + + The assembly from which to discover the tests. + The test discoverer. + + + + Get a test executor. + + The name of the assembly to run tests from. + The test executor. + + + + Sets the source information provider to be used during discovery. + + + + + Represents an implementation of the discovery part of a test framework. + + + + + Starts the process of finding all tests in an assembly. + + Whether to include source file information, if possible. + The message sink to report results back to. + The options used by the test framework during discovery. + + + + Starts the process of finding all tests in a class. + + The fully qualified type name to find tests in. + Whether to include source file information, if possible. + The message sink to report results back to. + The options used by the test framework during discovery. + + + + Serializes a test case into string form. + + The test case to be serialized. + The serialized representation of the test case. + + + + Gets the target framework that the test assembly is linked against. + + + + + Returns the display name of the test framework that this discoverer is running tests for. + + + + + Represents an instance of that is to be used for + test discovery purposes. + + + + + This interface should not be consumed directly; instead, you should + consume + or . + + + + + Gets an option value. + + The type of the value. + The name of the value. + The value. + + + + Sets an option value. + + The type of the value. + The name of the value. + The value to be set. + + + + Represents an instance of that is to be used for + test execution purposes. + + + + + Represents an implementation of the execution part of a test framework. + + + + + De-serializes a test case. + + The string representation of the test case. + The de-serialized test case. + + + + Starts the process of running all the tests in the assembly. + + The message sink to report results back to. + The options to be used during test discovery. + The options to be used during test execution. + + + + Starts the process of running selected tests in the assembly. + + The test cases to run. + The message sink to report results back to. + The options to be used during test execution. + + + + Base message interface for all messages related to test execution. It includes the list + of test cases that are associated with this execution step. + + + + + This is the base interface for all test messages. A test message is a message that is + used to communicate the status of discovery and execution of tests. + + + + + The test cases that are associated with this message. + + + + + This represents failure information for the test runner. It encapsulates multiple sets + of exceptions so that it can provide inner exception information, including support for + . The parent indices indicate the hierarchy of the exceptions + as extracted during the failure; the 0th exception is always the single parent of the tree, + and will have an index of -1. + + + + + The fully-qualified type name of the exceptions. + + + + + The messages of the exceptions. + + + + + The stack traces of the exceptions. + + + + + The parent exception index for the exceptions; a -1 indicates that + the exception in question has no parent. + + + + + This is the base message for various types of completion that can occur during the + various phases of execution process (e.g., test case, test class, test collection, + and assembly). + + + + + The execution time (in seconds) for this execution. + + + + + The number of failing tests. + + + + + The total number of tests run. + + + + + The number of skipped tests. + + + + + Represents an endpoint for the reception of test messages. + + + + + Reports the presence of a message on the message bus. This method should + never throw exceptions. + + The message from the message bus + Return true to continue running tests, or false to stop. + + + + Base message interface for all messages related to test assemblies. + + + + + The test assembly that is associated with this message. + + + + + Base message interface for all messages related to test cases. + + + + + Base message interface for all messages related to test methods. + + + + + Base message interface for all messages related to test classes. + + + + + Base message interface for all messages related to test collections. + + + + + The test collection that is associated with this message. + + + + + The test class that is associated with this message. + + + + + The test method that is associated with this message. + + + + + The test case that is associated with this message. + + + + + Base message interface for all messages related to tests. + + + + + The test that is associated with this message. + + + + + This is the base interface for all individual test results (e.g., tests which + pass, fail, or are skipped). + + + + + The execution time of the test, in seconds. + + + + + The captured output of the test. + + + + + This message is sent during execution to indicate that the After method of + a has completed executing. + + + + + The fully qualified type name of the . + + + + + This message is sent during execution to indicate that the After method of + a is about to execute. + + + + + The fully qualified type name of the . + + + + + This message is sent during execution to indicate that the Before method of + a has completed executing. + + + + + The fully qualified type name of the . + + + + + This message is sent during execution to indicate that the Before method of + a is about to execute. + + + + + The fully qualified type name of the . + + + + + This message is sent when the test framework wants to report a diagnostic message + to the end user. + + + + + Gets the diagnostic message. + + + + + This message indicates that the discovery process has been completed for + the requested assembly. + + + + + This message indicates that an error has occurred in the execution process. + + + + + This message indicates that an error has occurred in test assembly cleanup. + + + + + This message indicates that the execution process has been completed for + the requested assembly. + + + + + This message indicates that the execution process is about to start for + the requested assembly. + + + + + Gets the local date and time when the test assembly execution began. + + + + + Gets a display string that describes the test execution environment. + + + + + Gets a display string which describes the test framework and version number. + + + + + This message indicates that an error has occurred during test case cleanup. + + + + + This message indicates that a test case had been found during the discovery process. + + + + + This message indicates that a test case has finished executing. + + + + + This message indicates that a test case is about to start executing. + + + + + This message indicates that an error has occurred during test class cleanup. + + + + + This message indicates that an instance of a test class has just been constructed. + Instance (non-static) methods of tests get a new instance of the test class for each + individual test execution; static methods do not get an instance of the test class. + + + + + This message indicates that an instance of a test class is about to be constructed. + Instance (non-static) methods of tests get a new instance of the test class for each + individual test execution; static methods do not get an instance of the test class. + + + + + This message indicates that the method was + just called on the test class for the test case that just finished executing. + + + + + This message indicates that the method is + about to be called on the test class for the test case that just finished executing. + + + + + This message indicates that a test class has finished executing (meaning, all of the + test cases in this test class have finished running). + + + + + This message indicates that a test class is about to begin running. + + + + + This message indicates that an error has occurred during test cleanup. + + + + + This message indicates that an error has occurred during test collection cleanup. + + + + + This message indicates that a test collection has just finished executing (meaning, + all the test classes in the collection has finished). + + + + + This message indicates that a test collection has is about to start executing. + + + + + This message indicates that a test has failed. + + + + + This message indicates that a test has finished executing. + + + + + Gets the time spent executing the test, in seconds. + + + + + The captured output of the test. + + + + + This message indicates that an error has occurred during test method cleanup. + + + + + This message indicates that a test method has finished executing (meaning, all + the test cases that derived from the test method have finished). + + + + + This message indicates that a test method is about to begin executing. + + + + + This message indicates that a line of output was provided for a test. + + + + + Gets the line of output. + + + + + Indicates that a test has passed. + + + + + This message indicates that a test was skipped. + + + + + The reason given for skipping the test. + + + + + This message indicates that a test is about to start executing. + + + + + Represents information about an assembly. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + Gets all the custom attributes for the given assembly. + + The type of the attribute, in assembly-qualified form + The matching attributes that decorate the assembly + + + + Gets a for the given type. + + The fully qualified type name. + The if the type exists, or null if not. + + + + Gets all the types for the assembly. + + Set to true to return all types in the assembly, + or false to return only public types. + The types in the assembly. + + + + Gets the on-disk location of the assembly under test. If the assembly path is not + known (for example, in AST-based runners), you must return null. + + + This is used by the test framework wrappers to find the co-located unit test framework + assembly (f.e., xunit.dll or xunit.execution.dll). AST-based runners will need to directly create + instances of and (using the constructors that + support an explicit path to the test framework DLL) rather than relying on the + use of . + + + + + Gets the assembly name. May return a fully qualified name for assemblies found via + reflection (i.e., "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"), + or may return just assembly name only for assemblies found via source code introspection + (i.e., "mscorlib"). + + + + + Represents information about an attribute. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + Gets the arguments passed to the constructor. + + The constructor arguments, in order + + + + Gets all the custom attributes for the given attribute. + + The type of the attribute to find, in assembly-qualified form + The matching attributes that decorate the attribute + + + + Gets a named-argument initialized value of the attribute. If there is no named argument for the given name + on this attribute, then returns default(TValue). + + The type of the argument + The name of the argument + The argument value + + + + Represents information about a method. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + Gets all the custom attributes for the method that are of the given type. + + The type of the attribute, in assembly qualified form + The matching attributes that decorate the method + + + + Gets the types of the generic arguments for generic methods. + + The argument types. + + + + Gets information about the parameters to the method. + + The method's parameters. + + + + Converts an open generic method into a closed generic method, using the provided type arguments. + + The type arguments to be used in the generic definition. + A new that represents the closed generic method. + + + + Gets a value indicating whether the method is abstract. + + + + + Gets a value indicating whether the method is a generic definition (i.e., an open generic). + + + + + Gets a value indicating whether the method is public. + + + + + Gets a value indicating whether the method is static. + + + + + Gets the name of the method. + + + + + Gets the fully qualified type name of the return type. + + + + + Gets a value which represents the class that this method was + reflected from (i.e., equivalent to MethodInfo.ReflectedType) + + + + + Represents information about a method parameter. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + The name of the parameter. + + + + + Gets the type of the parameter. + + + + + Represents a reflection-backed implementation of . + + + + + Gets the underlying for the assembly. + + + + + Represents a reflection-backed implementation of . + + + + + Gets the instance of the attribute, if available. + + + + + Represents a reflection-backed implementation of . + + + + + Gets the underlying for the method. + + + + + Represents a reflection-backed implementation of . + + + + + Gets the underlying for the parameter. + + + + + Represents a reflection-backed implementation of . + + + + + Represents information about a type. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + Gets all the custom attributes for the given type. + + The type of the attribute, in assembly qualified form + The matching attributes that decorate the type + + + + Gets the generic type arguments for a generic type. + + The list of generic types. + + + + Gets a specific method. + + The name of the method. + Set to true to look for the method in both public and private. + The method. + + + + Gets all the methods in this type. + + Set to true to return all methods in the type, + or false to return only public methods. + + + + Gets the assembly this type is located in. + + + + + Gets the base type of the given type. + + + + + Gets the interfaces implemented by the given type. + + + + + Gets a value indicating whether the type is abstract. + + + + + Gets a value indicating whether the type represents a generic parameter. + + + + + Gets a value indicating whether the type is a generic type. + + + + + Gets a value indicating whether the type is sealed. + + + + + Gets a value indicating whether the type is a value type. + + + + + Gets the fully qualified type name (for non-generic parameters), or the + simple type name (for generic parameters). + + + + + Gets the underlying object. + + + + + Represents serialization support in xUnit.net. + + + + + Adds a value to the serialization. Supported value types include the built-in + intrinsics (string, int, long, float, double, and decimal, including nullable + versions of those), any class which implements ), + or arrays of any supported types. + + The key + The value + The optional type of the value + + + + Gets a value from the serialization. + + The key + The type of the value + The value, if present; null, otherwise + + + + Gets a value from the serialization. + + The key + The value, if present; default(T), otherwise + + + + Represents a single test in the system. A test case typically contains only a single test, + but may contain many if circumstances warrant it (for example, test data for a theory cannot + be pre-enumerated, so the theory yields a single test case with multiple tests). + + + + + Gets the display name of the test. + + + + + Gets the test case this test belongs to. + + + + + Represents a test assembly. + + + + + Gets the assembly that this test assembly belongs to. + + + + + Gets the full path of the configuration file name, if one is present. + May be null if there is no configuration file. + + + + + Represents a single test case in the system. This test case usually represents a single test, but in + the case of dynamically generated data for data driven tests, the test case may actually return + multiple results when run. + + + + + Gets the display name of the test case. + + + + + Gets the display text for the reason a test is being skipped; if the test + is not skipped, returns null. + + + + + Get or sets the source file name and line where the test is defined, if requested (and known). + + + + + Gets the test method this test case belongs to. + + + + + Gets the arguments that will be passed to the test method. + + + + + Gets the trait values associated with this test case. If + there are none, or the framework does not support traits, + this should return an empty dictionary (not null). This + dictionary must be treated as read-only. + + + + + Gets a unique identifier for the test case. + + + The unique identifier for a test case should be able to discriminate + among test cases, even those which are varied invocations against the + same test method (i.e., theories). Ideally, this identifier would remain + stable until such time as the developer changes some fundamental part + of the identity (assembly, class name, test name, or test data); however, + the minimum stability of the identifier must at least extend across + multiple discoveries of the same test in the same (non-recompiled) + assembly. + + + + + Represents a test class. + + + + + Gets the class that this test case is attached to. + + + + + Gets the test collection this test case belongs to. + + + + + Represents a group of test cases. Test collections form the basis of the parallelization in + xUnit.net. Test cases which are in the same test collection will not be run in parallel + against sibling tests, but will run in parallel against tests in other collections. + + + + + Gets the type that the test collection was defined with, if available; may be null + if the test collection didn't have a definition type. + + + + + Gets the display name of the test collection. + + + + + Gets the test assembly this test collection belongs to. + + + + + Gets the test collection ID. Test collection equality is determined by comparing IDs. + + + + + Represents a test method. + + + + + Gets the method associated with this test method. + + + + + Gets the test class that this test method belongs to. + + + + + Represents a class which can be used to provide test output. + + + + + Adds a line of text to the output. + + The message + + + + Formats a line of text and adds it to the output. + + The message format + The format arguments + + + diff --git a/packages/xunit.abstractions.2.0.0/lib/portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.abstractions.xml b/packages/xunit.abstractions.2.0.0/lib/portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.abstractions.xml new file mode 100644 index 0000000..7dba65f --- /dev/null +++ b/packages/xunit.abstractions.2.0.0/lib/portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS/xunit.abstractions.xml @@ -0,0 +1,1087 @@ + + + + xunit.abstractions + + + + + Represents source information about a test case. + + + + + Interface implement by objects that want to support serialization in xUnit.net. + + + + + Called when the object should populate itself with data from the serialization info. + + The info to get the data from + + + + Called when the object should store its data into the serialization info. + + The info to store the data in + + + + Gets or sets the source file name. A null value indicates that the + source file name is not known. + + + + + Gets or sets the source file line. A null value indicates that the + source file line is not known. + + + + + Represents a provider which gives source line information for a test case. Generally + consumed by an implementation of during Find operations. + + + + + Returns the source information for a test case. + + The test case to retrieve information for. + The source information, with null string and int values when the information is not available. + Note: return value should never be null, only the interior data values inside. + + + + Represents a test framework. There are two pieces to test frameworks: discovery and + execution. The two factory methods represent these two pieces. Test frameworks can + implement an empty constructor, or they can implement one that takes + if they want to be able to send diagnostic messages. + + + + + Get a test discoverer. + + The assembly from which to discover the tests. + The test discoverer. + + + + Get a test executor. + + The name of the assembly to run tests from. + The test executor. + + + + Sets the source information provider to be used during discovery. + + + + + Represents an implementation of the discovery part of a test framework. + + + + + Starts the process of finding all tests in an assembly. + + Whether to include source file information, if possible. + The message sink to report results back to. + The options used by the test framework during discovery. + + + + Starts the process of finding all tests in a class. + + The fully qualified type name to find tests in. + Whether to include source file information, if possible. + The message sink to report results back to. + The options used by the test framework during discovery. + + + + Serializes a test case into string form. + + The test case to be serialized. + The serialized representation of the test case. + + + + Gets the target framework that the test assembly is linked against. + + + + + Returns the display name of the test framework that this discoverer is running tests for. + + + + + Represents an instance of that is to be used for + test discovery purposes. + + + + + This interface should not be consumed directly; instead, you should + consume + or . + + + + + Gets an option value. + + The type of the value. + The name of the value. + The value. + + + + Sets an option value. + + The type of the value. + The name of the value. + The value to be set. + + + + Represents an instance of that is to be used for + test execution purposes. + + + + + Represents an implementation of the execution part of a test framework. + + + + + De-serializes a test case. + + The string representation of the test case. + The de-serialized test case. + + + + Starts the process of running all the tests in the assembly. + + The message sink to report results back to. + The options to be used during test discovery. + The options to be used during test execution. + + + + Starts the process of running selected tests in the assembly. + + The test cases to run. + The message sink to report results back to. + The options to be used during test execution. + + + + Base message interface for all messages related to test execution. It includes the list + of test cases that are associated with this execution step. + + + + + This is the base interface for all test messages. A test message is a message that is + used to communicate the status of discovery and execution of tests. + + + + + The test cases that are associated with this message. + + + + + This represents failure information for the test runner. It encapsulates multiple sets + of exceptions so that it can provide inner exception information, including support for + . The parent indices indicate the hierarchy of the exceptions + as extracted during the failure; the 0th exception is always the single parent of the tree, + and will have an index of -1. + + + + + The fully-qualified type name of the exceptions. + + + + + The messages of the exceptions. + + + + + The stack traces of the exceptions. + + + + + The parent exception index for the exceptions; a -1 indicates that + the exception in question has no parent. + + + + + This is the base message for various types of completion that can occur during the + various phases of execution process (e.g., test case, test class, test collection, + and assembly). + + + + + The execution time (in seconds) for this execution. + + + + + The number of failing tests. + + + + + The total number of tests run. + + + + + The number of skipped tests. + + + + + Represents an endpoint for the reception of test messages. + + + + + Reports the presence of a message on the message bus. This method should + never throw exceptions. + + The message from the message bus + Return true to continue running tests, or false to stop. + + + + Base message interface for all messages related to test assemblies. + + + + + The test assembly that is associated with this message. + + + + + Base message interface for all messages related to test cases. + + + + + Base message interface for all messages related to test methods. + + + + + Base message interface for all messages related to test classes. + + + + + Base message interface for all messages related to test collections. + + + + + The test collection that is associated with this message. + + + + + The test class that is associated with this message. + + + + + The test method that is associated with this message. + + + + + The test case that is associated with this message. + + + + + Base message interface for all messages related to tests. + + + + + The test that is associated with this message. + + + + + This is the base interface for all individual test results (e.g., tests which + pass, fail, or are skipped). + + + + + The execution time of the test, in seconds. + + + + + The captured output of the test. + + + + + This message is sent during execution to indicate that the After method of + a has completed executing. + + + + + The fully qualified type name of the . + + + + + This message is sent during execution to indicate that the After method of + a is about to execute. + + + + + The fully qualified type name of the . + + + + + This message is sent during execution to indicate that the Before method of + a has completed executing. + + + + + The fully qualified type name of the . + + + + + This message is sent during execution to indicate that the Before method of + a is about to execute. + + + + + The fully qualified type name of the . + + + + + This message is sent when the test framework wants to report a diagnostic message + to the end user. + + + + + Gets the diagnostic message. + + + + + This message indicates that the discovery process has been completed for + the requested assembly. + + + + + This message indicates that an error has occurred in the execution process. + + + + + This message indicates that an error has occurred in test assembly cleanup. + + + + + This message indicates that the execution process has been completed for + the requested assembly. + + + + + This message indicates that the execution process is about to start for + the requested assembly. + + + + + Gets the local date and time when the test assembly execution began. + + + + + Gets a display string that describes the test execution environment. + + + + + Gets a display string which describes the test framework and version number. + + + + + This message indicates that an error has occurred during test case cleanup. + + + + + This message indicates that a test case had been found during the discovery process. + + + + + This message indicates that a test case has finished executing. + + + + + This message indicates that a test case is about to start executing. + + + + + This message indicates that an error has occurred during test class cleanup. + + + + + This message indicates that an instance of a test class has just been constructed. + Instance (non-static) methods of tests get a new instance of the test class for each + individual test execution; static methods do not get an instance of the test class. + + + + + This message indicates that an instance of a test class is about to be constructed. + Instance (non-static) methods of tests get a new instance of the test class for each + individual test execution; static methods do not get an instance of the test class. + + + + + This message indicates that the method was + just called on the test class for the test case that just finished executing. + + + + + This message indicates that the method is + about to be called on the test class for the test case that just finished executing. + + + + + This message indicates that a test class has finished executing (meaning, all of the + test cases in this test class have finished running). + + + + + This message indicates that a test class is about to begin running. + + + + + This message indicates that an error has occurred during test cleanup. + + + + + This message indicates that an error has occurred during test collection cleanup. + + + + + This message indicates that a test collection has just finished executing (meaning, + all the test classes in the collection has finished). + + + + + This message indicates that a test collection has is about to start executing. + + + + + This message indicates that a test has failed. + + + + + This message indicates that a test has finished executing. + + + + + Gets the time spent executing the test, in seconds. + + + + + The captured output of the test. + + + + + This message indicates that an error has occurred during test method cleanup. + + + + + This message indicates that a test method has finished executing (meaning, all + the test cases that derived from the test method have finished). + + + + + This message indicates that a test method is about to begin executing. + + + + + This message indicates that a line of output was provided for a test. + + + + + Gets the line of output. + + + + + Indicates that a test has passed. + + + + + This message indicates that a test was skipped. + + + + + The reason given for skipping the test. + + + + + This message indicates that a test is about to start executing. + + + + + Represents information about an assembly. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + Gets all the custom attributes for the given assembly. + + The type of the attribute, in assembly-qualified form + The matching attributes that decorate the assembly + + + + Gets a for the given type. + + The fully qualified type name. + The if the type exists, or null if not. + + + + Gets all the types for the assembly. + + Set to true to return all types in the assembly, + or false to return only public types. + The types in the assembly. + + + + Gets the on-disk location of the assembly under test. If the assembly path is not + known (for example, in AST-based runners), you must return null. + + + This is used by the test framework wrappers to find the co-located unit test framework + assembly (f.e., xunit.dll or xunit.execution.dll). AST-based runners will need to directly create + instances of and (using the constructors that + support an explicit path to the test framework DLL) rather than relying on the + use of . + + + + + Gets the assembly name. May return a fully qualified name for assemblies found via + reflection (i.e., "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"), + or may return just assembly name only for assemblies found via source code introspection + (i.e., "mscorlib"). + + + + + Represents information about an attribute. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + Gets the arguments passed to the constructor. + + The constructor arguments, in order + + + + Gets all the custom attributes for the given attribute. + + The type of the attribute to find, in assembly-qualified form + The matching attributes that decorate the attribute + + + + Gets a named-argument initialized value of the attribute. If there is no named argument for the given name + on this attribute, then returns default(TValue). + + The type of the argument + The name of the argument + The argument value + + + + Represents information about a method. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + Gets all the custom attributes for the method that are of the given type. + + The type of the attribute, in assembly qualified form + The matching attributes that decorate the method + + + + Gets the types of the generic arguments for generic methods. + + The argument types. + + + + Gets information about the parameters to the method. + + The method's parameters. + + + + Converts an open generic method into a closed generic method, using the provided type arguments. + + The type arguments to be used in the generic definition. + A new that represents the closed generic method. + + + + Gets a value indicating whether the method is abstract. + + + + + Gets a value indicating whether the method is a generic definition (i.e., an open generic). + + + + + Gets a value indicating whether the method is public. + + + + + Gets a value indicating whether the method is static. + + + + + Gets the name of the method. + + + + + Gets the fully qualified type name of the return type. + + + + + Gets a value which represents the class that this method was + reflected from (i.e., equivalent to MethodInfo.ReflectedType) + + + + + Represents information about a method parameter. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + The name of the parameter. + + + + + Gets the type of the parameter. + + + + + Represents a reflection-backed implementation of . + + + + + Gets the underlying for the assembly. + + + + + Represents a reflection-backed implementation of . + + + + + Gets the instance of the attribute, if available. + + + + + Represents a reflection-backed implementation of . + + + + + Gets the underlying for the method. + + + + + Represents a reflection-backed implementation of . + + + + + Gets the underlying for the parameter. + + + + + Represents a reflection-backed implementation of . + + + + + Represents information about a type. The primary implementation is based on runtime + reflection, but may also be implemented by runner authors to provide non-reflection-based + test discovery (for example, AST-based runners like CodeRush or Resharper). + + + + + Gets all the custom attributes for the given type. + + The type of the attribute, in assembly qualified form + The matching attributes that decorate the type + + + + Gets the generic type arguments for a generic type. + + The list of generic types. + + + + Gets a specific method. + + The name of the method. + Set to true to look for the method in both public and private. + The method. + + + + Gets all the methods in this type. + + Set to true to return all methods in the type, + or false to return only public methods. + + + + Gets the assembly this type is located in. + + + + + Gets the base type of the given type. + + + + + Gets the interfaces implemented by the given type. + + + + + Gets a value indicating whether the type is abstract. + + + + + Gets a value indicating whether the type represents a generic parameter. + + + + + Gets a value indicating whether the type is a generic type. + + + + + Gets a value indicating whether the type is sealed. + + + + + Gets a value indicating whether the type is a value type. + + + + + Gets the fully qualified type name (for non-generic parameters), or the + simple type name (for generic parameters). + + + + + Gets the underlying object. + + + + + Represents serialization support in xUnit.net. + + + + + Adds a value to the serialization. Supported value types include the built-in + intrinsics (string, int, long, float, double, and decimal, including nullable + versions of those), any class which implements ), + or arrays of any supported types. + + The key + The value + The optional type of the value + + + + Gets a value from the serialization. + + The key + The type of the value + The value, if present; null, otherwise + + + + Gets a value from the serialization. + + The key + The value, if present; default(T), otherwise + + + + Represents a single test in the system. A test case typically contains only a single test, + but may contain many if circumstances warrant it (for example, test data for a theory cannot + be pre-enumerated, so the theory yields a single test case with multiple tests). + + + + + Gets the display name of the test. + + + + + Gets the test case this test belongs to. + + + + + Represents a test assembly. + + + + + Gets the assembly that this test assembly belongs to. + + + + + Gets the full path of the configuration file name, if one is present. + May be null if there is no configuration file. + + + + + Represents a single test case in the system. This test case usually represents a single test, but in + the case of dynamically generated data for data driven tests, the test case may actually return + multiple results when run. + + + + + Gets the display name of the test case. + + + + + Gets the display text for the reason a test is being skipped; if the test + is not skipped, returns null. + + + + + Get or sets the source file name and line where the test is defined, if requested (and known). + + + + + Gets the test method this test case belongs to. + + + + + Gets the arguments that will be passed to the test method. + + + + + Gets the trait values associated with this test case. If + there are none, or the framework does not support traits, + this should return an empty dictionary (not null). This + dictionary must be treated as read-only. + + + + + Gets a unique identifier for the test case. + + + The unique identifier for a test case should be able to discriminate + among test cases, even those which are varied invocations against the + same test method (i.e., theories). Ideally, this identifier would remain + stable until such time as the developer changes some fundamental part + of the identity (assembly, class name, test name, or test data); however, + the minimum stability of the identifier must at least extend across + multiple discoveries of the same test in the same (non-recompiled) + assembly. + + + + + Represents a test class. + + + + + Gets the class that this test case is attached to. + + + + + Gets the test collection this test case belongs to. + + + + + Represents a group of test cases. Test collections form the basis of the parallelization in + xUnit.net. Test cases which are in the same test collection will not be run in parallel + against sibling tests, but will run in parallel against tests in other collections. + + + + + Gets the type that the test collection was defined with, if available; may be null + if the test collection didn't have a definition type. + + + + + Gets the display name of the test collection. + + + + + Gets the test assembly this test collection belongs to. + + + + + Gets the test collection ID. Test collection equality is determined by comparing IDs. + + + + + Represents a test method. + + + + + Gets the method associated with this test method. + + + + + Gets the test class that this test method belongs to. + + + + + Represents a class which can be used to provide test output. + + + + + Adds a line of text to the output. + + The message + + + + Formats a line of text and adds it to the output. + + The message format + The format arguments + + + diff --git a/packages/xunit.abstractions.2.0.0/xunit.abstractions.2.0.0.nupkg b/packages/xunit.abstractions.2.0.0/xunit.abstractions.2.0.0.nupkg new file mode 100644 index 0000000..2ee1659 Binary files /dev/null and b/packages/xunit.abstractions.2.0.0/xunit.abstractions.2.0.0.nupkg differ diff --git a/packages/xunit.assert.2.1.0/lib/dotnet/xunit.assert.xml b/packages/xunit.assert.2.1.0/lib/dotnet/xunit.assert.xml new file mode 100644 index 0000000..342e7e7 --- /dev/null +++ b/packages/xunit.assert.2.1.0/lib/dotnet/xunit.assert.xml @@ -0,0 +1,1414 @@ + + + + xunit.assert + + + + + Contains various static methods that are used to verify that conditions are met during the + process of running tests. + + + + + Initializes a new instance of the class. + + + + Do not call this method. + + + Do not call this method. + + + + Verifies that the condition is false. + + The condition to be tested + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + The message to show when the condition is not false + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + The message to show when the condition is not false + Thrown if the condition is not false + + + + Verifies that an expression is true. + + The condition to be inspected + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + The message to be shown when the condition is false + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + The message to be shown when the condition is false + Thrown when the condition is false + + + + Verifies that all items in the collection pass when executed against + action. + + The type of the object to be verified + The collection + The action to test each item against + Thrown when the collection contains at least one non-matching element + + + + Verifies that a collection contains exactly a given number of elements, which meet + the criteria provided by the element inspectors. + + The type of the object to be verified + The collection to be inspected + The element inspectors, which inspect each element in turn. The + total number of element inspectors must exactly match the number of elements in the collection. + + + + Verifies that a collection contains a given object. + + The type of the object to be verified + The object expected to be in the collection + The collection to be inspected + Thrown when the object is not present in the collection + + + + Verifies that a collection contains a given object, using an equality comparer. + + The type of the object to be verified + The object expected to be in the collection + The collection to be inspected + The comparer used to equate objects in the collection with the expected object + Thrown when the object is not present in the collection + + + + Verifies that a collection contains a given object. + + The type of the object to be verified + The collection to be inspected + The filter used to find the item you're ensuring the collection contains + Thrown when the object is not present in the collection + + + + Verifies that a collection does not contain a given object. + + The type of the object to be compared + The object that is expected not to be in the collection + The collection to be inspected + Thrown when the object is present inside the container + + + + Verifies that a collection does not contain a given object, using an equality comparer. + + The type of the object to be compared + The object that is expected not to be in the collection + The collection to be inspected + The comparer used to equate objects in the collection with the expected object + Thrown when the object is present inside the container + + + + Verifies that a collection does not contain a given object. + + The type of the object to be compared + The collection to be inspected + The filter used to find the item you're ensuring the collection does not contain + Thrown when the object is present inside the container + + + + Verifies that a collection is empty. + + The collection to be inspected + Thrown when the collection is null + Thrown when the collection is not empty + + + + Verifies that two sequences are equivalent, using a default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two sequences are equivalent, using a custom equatable comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + The comparer used to compare the two objects + Thrown when the objects are not equal + + + + Verifies that a collection is not empty. + + The collection to be inspected + Thrown when a null collection is passed + Thrown when the collection is empty + + + + Verifies that two sequences are not equivalent, using a default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that two sequences are not equivalent, using a custom equality comparer. + + The type of the objects to be compared + The expected object + The actual object + The comparer used to compare the two objects + Thrown when the objects are equal + + + + Verifies that the given collection contains only a single + element of the given type. + + The collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given value. The collection may or may not + contain other values. + + The collection. + The value to find in the collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given type. + + The collection type. + The collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given type which matches the given predicate. The + collection may or may not contain other values which do not + match the given predicate. + + The collection type. + The collection. + The item matching predicate. + The single item in the filtered collection. + Thrown when the filtered collection does + not contain exactly one element. + + + + Verifies that two objects are equal, using a default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two objects are equal, using a custom equatable comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + The comparer used to compare the two objects + Thrown when the objects are not equal + + + + Verifies that two values are equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are not equal + + + + Verifies that two values are equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are not equal + + + + Verifies that two objects are strictly equal, using the type's default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two objects are not equal, using a default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that two objects are not equal, using a custom equality comparer. + + The type of the objects to be compared + The expected object + The actual object + The comparer used to examine the objects + Thrown when the objects are equal + + + + Verifies that two values are not equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are equal + + + + Verifies that two values are not equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are equal + + + + Verifies that two objects are strictly not equal, using the type's default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Records any exception which is thrown by the given code. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Records any exception which is thrown by the given code that has + a return value. Generally used for testing property accessors. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Records any exception which is thrown by the given task. + + The task which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Verifies that two objects are not the same instance. + + The expected object instance + The actual object instance + Thrown when the objects are the same instance + + + + Verifies that two objects are the same instance. + + The expected object instance + The actual object instance + Thrown when the objects are not the same instance + + + + Verifies that an object reference is not null. + + The object to be validated + Thrown when the object is not null + + + + Verifies that an object reference is null. + + The object to be inspected + Thrown when the object reference is not null + + + + Verifies that the provided object raised INotifyPropertyChanged.PropertyChanged + as a result of executing the given test code. + + The object which should raise the notification + The property name for which the notification should be raised + The test code which should cause the notification to be raised + Thrown when the notification is not raised + + + + Verifies that a value is within a given range. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + Thrown when the value is not in the given range + + + + Verifies that a value is within a given range, using a comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + The comparer used to evaluate the value's range + Thrown when the value is not in the given range + + + + Verifies that a value is not within a given range, using the default comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + Thrown when the value is in the given range + + + + Verifies that a value is not within a given range, using a comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + The comparer used to evaluate the value's range + Thrown when the value is in the given range + + + + Verifies that a set is a proper subset of another set. + + The type of the object to be verified + The expected superset + The set expected to be a proper subset + Thrown when the actual set is not a proper subset of the expected set + + + + Verifies that a set is a proper superset of another set. + + The type of the object to be verified + The expected subset + The set expected to be a proper superset + Thrown when the actual set is not a proper superset of the expected set + + + + Verifies that a set is a subset of another set. + + The type of the object to be verified + The expected superset + The set expected to be a subset + Thrown when the actual set is not a subset of the expected set + + + + Verifies that a set is a superset of another set. + + The type of the object to be verified + The expected subset + The set expected to be a superset + Thrown when the actual set is not a superset of the expected set + + + + Verifies that a string contains a given sub-string, using the current culture. + + The sub-string expected to be in the string + The string to be inspected + Thrown when the sub-string is not present inside the string + + + + Verifies that a string contains a given sub-string, using the given comparison type. + + The sub-string expected to be in the string + The string to be inspected + The type of string comparison to perform + Thrown when the sub-string is not present inside the string + + + + Verifies that a string does not contain a given sub-string, using the current culture. + + The sub-string which is expected not to be in the string + The string to be inspected + Thrown when the sub-string is present inside the string + + + + Verifies that a string does not contain a given sub-string, using the current culture. + + The sub-string which is expected not to be in the string + The string to be inspected + The type of string comparison to perform + Thrown when the sub-string is present inside the given string + + + + Verifies that a string starts with a given string, using the current culture. + + The string expected to be at the start of the string + The string to be inspected + Thrown when the string does not start with the expected string + + + + Verifies that a string starts with a given string, using the given comparison type. + + The string expected to be at the start of the string + The string to be inspected + The type of string comparison to perform + Thrown when the string does not start with the expected string + + + + Verifies that a string ends with a given string, using the current culture. + + The string expected to be at the end of the string + The string to be inspected + Thrown when the string does not end with the expected string + + + + Verifies that a string ends with a given string, using the given comparison type. + + The string expected to be at the end of the string + The string to be inspected + The type of string comparison to perform + Thrown when the string does not end with the expected string + + + + Verifies that a string matches a regular expression. + + The regex pattern expected to match + The string to be inspected + Thrown when the string does not match the regex pattern + + + + Verifies that a string matches a regular expression. + + The regex expected to match + The string to be inspected + Thrown when the string does not match the regex + + + + Verifies that a string does not match a regular expression. + + The regex pattern expected not to match + The string to be inspected + Thrown when the string matches the regex pattern + + + + Verifies that a string does not match a regular expression. + + The regex expected not to match + The string to be inspected + Thrown when the string matches the regex + + + + Verifies that two strings are equivalent. + + The expected string value. + The actual string value. + Thrown when the strings are not equivalent. + + + + Verifies that two strings are equivalent. + + The expected string value. + The actual string value. + If set to true, ignores cases differences. The invariant culture is used. + If set to true, treats \r\n, \r, and \n as equivalent. + If set to true, treats spaces and tabs (in any non-zero quantity) as equivalent. + Thrown when the strings are not equivalent. + + + + Verifies that an object is of the given type or a derived type. + + The type the object should be + The object to be evaluated + The object, casted to type T when successful + Thrown when the object is not the given type + + + + Verifies that an object is of the given type or a derived type. + + The type the object should be + The object to be evaluated + Thrown when the object is not the given type + + + + Verifies that an object is not exactly the given type. + + The type the object should not be + The object to be evaluated + Thrown when the object is the given type + + + + Verifies that an object is not exactly the given type. + + The type the object should not be + The object to be evaluated + Thrown when the object is the given type + + + + Verifies that an object is exactly the given type (and not a derived type). + + The type the object should be + The object to be evaluated + The object, casted to type T when successful + Thrown when the object is not the given type + + + + Verifies that an object is exactly the given type (and not a derived type). + + The type the object should be + The object to be evaluated + Thrown when the object is not the given type + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net range assertions. + + The type that is being compared. + + + + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for exceptions that have actual and expected values + + + + + Creates a new instance of the class. + + The expected value + The actual value + The user message to be shown + The title to use for the expected value (defaults to "Expected") + The title to use for the actual value (defaults to "Actual") + + + + Gets the actual value. + + + + + Gets the title used for the actual value. + + + + + Gets the expected value. + + + + + Gets the title used for the expected value. + + + + + Gets a message that describes the current exception. Includes the expected and actual values. + + The error message that explains the reason for the exception, or an empty string(""). + 1 + + + + Exception thrown when the collection did not contain exactly the given number element. + + + + + Initializes a new instance of the class. + + The expected number of items in the collection. + The actual number of items in the collection. + + + + Exception thrown when Assert.Collection fails. + + + + + Creates a new instance of the class. + + The expected number of items in the collection. + The actual number of items in the collection. + The index of the position where the first comparison failure occurred. + The exception that was thrown during the comparison failure. + + + + The actual number of items in the collection. + + + + + The expected number of items in the collection. + + + + + The index of the position where the first comparison failure occurred, or -1 if + comparisions did not occur (because the actual and expected counts differed). + + + + + + + + + + + Exception thrown when an All assertion has one or more items fail an assertion. + + + + + Creates a new instance of the class. + + The total number of items that were in the collection. + The list of errors that occurred during the test pass. + + + + The errors that occurred during execution of the test. + + + + + + + + Exception thrown when a collection unexpectedly does not contain the expected value. + + + + + Creates a new instance of the class. + + The expected object value + The actual value + + + + Exception thrown when a collection unexpectedly contains the expected value. + + + + + Creates a new instance of the class. + + The expected object value + The actual value + + + + Exception thrown when a string unexpectedly matches a regular expression. + + + + + Creates a new instance of the class. + + The regular expression pattern expected not to match + The actual value + + + + Exception thrown when a collection is unexpectedly not empty. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a string does not end with the expected value. + + + + + Creates a new instance of the class. + + The expected string value + The actual value + + + + Exception thrown when two values are unexpectedly not equal. + + + + + Creates a new instance of the class. + + The expected object value + The actual object value + + + + Creates a new instance of the class for string comparisons. + + The expected string value + The actual string value + The first index in the expected string where the strings differ + The first index in the actual string where the strings differ + + + + Gets the index into the actual value where the values first differed. + Returns -1 if the difference index points were not provided. + + + + + Gets the index into the expected value where the values first differed. + Returns -1 if the difference index points were not provided. + + + + + + + + Exception thrown when a value is unexpectedly true. + + + + + Creates a new instance of the class. + + The user message to be display, or null for the default message + The actual value + + + + Exception thrown when a value is unexpectedly not in the given range. + + + + + Creates a new instance of the class. + + The actual object value + The low value of the range + The high value of the range + + + + Gets the actual object value + + + + + Gets the high value of the range + + + + + Gets the low value of the range + + + + + Gets a message that describes the current exception. + + The error message that explains the reason for the exception, or an empty string(""). + + + + Exception thrown when the value is unexpectedly not of the given type or a derived type. + + + + + Creates a new instance of the class. + + The expected type + The actual object value + + + + Exception thrown when the value is unexpectedly of the exact given type. + + + + + Creates a new instance of the class. + + The expected type + The actual object value + + + + Exception thrown when the value is unexpectedly not of the exact given type. + + + + + Creates a new instance of the class. + + The expected type name + The actual type name + + + + Exception thrown when a string does not match a regular expression. + + + + + Creates a new instance of the class. + + The expected regular expression pattern + The actual value + + + + Exception thrown when a collection is unexpectedly empty. + + + + + Creates a new instance of the class. + + + + + Exception thrown when two values are unexpectedly equal. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a value is unexpectedly in the given range. + + + + + Creates a new instance of the class. + + The actual object value + The low value of the range + The high value of the range + + + + Gets the actual object value + + + + + Gets the high value of the range + + + + + Gets the low value of the range + + + + + Gets a message that describes the current exception. + + The error message that explains the reason for the exception, or an empty string(""). + + + + Exception thrown when an object is unexpectedly null. + + + + + Creates a new instance of the class. + + + + + Exception thrown when two values are unexpected the same instance. + + + + + Creates a new instance of the class. + + + + + Exception thrown when an object reference is unexpectedly not null. + + + + + Creates a new instance of the class. + + + + + + Exception to be thrown from theory execution when the number of + parameter values does not the test method signature. + + + + + Exception thrown when a set is not a proper subset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a set is not a proper superset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when code unexpectedly fails change a property. + + + + + Creates a new instance of the class. Call this constructor + when no exception was thrown. + + The name of the property that was expected to be changed. + + + + Exception thrown when two object references are unexpectedly not the same instance. + + + + + Creates a new instance of the class. + + The expected object reference + The actual object reference + + + + Exception thrown when the collection did not contain exactly one element. + + + + + Initializes a new instance of the class. + + The numbers of items in the collection. + + + + Exception thrown when a string does not start with the expected value. + + + + + Creates a new instance of the class. + + The expected string value + The actual value + + + + Exception thrown when a set is not a subset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a set is not a superset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when code unexpectedly fails to throw an exception. + + + + + Creates a new instance of the class. Call this constructor + when no exception was thrown. + + The type of the exception that was expected + + + + Creates a new instance of the class. Call this constructor + when an exception of the wrong type was thrown. + + The type of the exception that was expected + The actual exception that was thrown + + + + THIS CONSTRUCTOR IS FOR UNIT TESTING PURPOSES ONLY. + + + + + Gets a string representation of the frames on the call stack at the time the current exception was thrown. + + A string that describes the contents of the call stack, with the most recent method call appearing first. + + + + Exception thrown when a value is unexpectedly false. + + + + + Creates a new instance of the class. + + The user message to be displayed, or null for the default message + The actual value + + + + The base assert exception class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The user message to be displayed + + + + Initializes a new instance of the class. + + The user message to be displayed + The inner exception + + + + Initializes a new instance of the class. + + The user message to be displayed + The stack trace to be displayed + + + + Gets a string representation of the frames on the call stack at the time the current exception was thrown. + + A string that describes the contents of the call stack, with the most recent method call appearing first. + + + + Gets the user message + + + + + + + diff --git a/packages/xunit.assert.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.assert.xml b/packages/xunit.assert.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.assert.xml new file mode 100644 index 0000000..342e7e7 --- /dev/null +++ b/packages/xunit.assert.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.assert.xml @@ -0,0 +1,1414 @@ + + + + xunit.assert + + + + + Contains various static methods that are used to verify that conditions are met during the + process of running tests. + + + + + Initializes a new instance of the class. + + + + Do not call this method. + + + Do not call this method. + + + + Verifies that the condition is false. + + The condition to be tested + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + The message to show when the condition is not false + Thrown if the condition is not false + + + + Verifies that the condition is false. + + The condition to be tested + The message to show when the condition is not false + Thrown if the condition is not false + + + + Verifies that an expression is true. + + The condition to be inspected + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + The message to be shown when the condition is false + Thrown when the condition is false + + + + Verifies that an expression is true. + + The condition to be inspected + The message to be shown when the condition is false + Thrown when the condition is false + + + + Verifies that all items in the collection pass when executed against + action. + + The type of the object to be verified + The collection + The action to test each item against + Thrown when the collection contains at least one non-matching element + + + + Verifies that a collection contains exactly a given number of elements, which meet + the criteria provided by the element inspectors. + + The type of the object to be verified + The collection to be inspected + The element inspectors, which inspect each element in turn. The + total number of element inspectors must exactly match the number of elements in the collection. + + + + Verifies that a collection contains a given object. + + The type of the object to be verified + The object expected to be in the collection + The collection to be inspected + Thrown when the object is not present in the collection + + + + Verifies that a collection contains a given object, using an equality comparer. + + The type of the object to be verified + The object expected to be in the collection + The collection to be inspected + The comparer used to equate objects in the collection with the expected object + Thrown when the object is not present in the collection + + + + Verifies that a collection contains a given object. + + The type of the object to be verified + The collection to be inspected + The filter used to find the item you're ensuring the collection contains + Thrown when the object is not present in the collection + + + + Verifies that a collection does not contain a given object. + + The type of the object to be compared + The object that is expected not to be in the collection + The collection to be inspected + Thrown when the object is present inside the container + + + + Verifies that a collection does not contain a given object, using an equality comparer. + + The type of the object to be compared + The object that is expected not to be in the collection + The collection to be inspected + The comparer used to equate objects in the collection with the expected object + Thrown when the object is present inside the container + + + + Verifies that a collection does not contain a given object. + + The type of the object to be compared + The collection to be inspected + The filter used to find the item you're ensuring the collection does not contain + Thrown when the object is present inside the container + + + + Verifies that a collection is empty. + + The collection to be inspected + Thrown when the collection is null + Thrown when the collection is not empty + + + + Verifies that two sequences are equivalent, using a default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two sequences are equivalent, using a custom equatable comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + The comparer used to compare the two objects + Thrown when the objects are not equal + + + + Verifies that a collection is not empty. + + The collection to be inspected + Thrown when a null collection is passed + Thrown when the collection is empty + + + + Verifies that two sequences are not equivalent, using a default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that two sequences are not equivalent, using a custom equality comparer. + + The type of the objects to be compared + The expected object + The actual object + The comparer used to compare the two objects + Thrown when the objects are equal + + + + Verifies that the given collection contains only a single + element of the given type. + + The collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given value. The collection may or may not + contain other values. + + The collection. + The value to find in the collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given type. + + The collection type. + The collection. + The single item in the collection. + Thrown when the collection does not contain + exactly one element. + + + + Verifies that the given collection contains only a single + element of the given type which matches the given predicate. The + collection may or may not contain other values which do not + match the given predicate. + + The collection type. + The collection. + The item matching predicate. + The single item in the filtered collection. + Thrown when the filtered collection does + not contain exactly one element. + + + + Verifies that two objects are equal, using a default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two objects are equal, using a custom equatable comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + The comparer used to compare the two objects + Thrown when the objects are not equal + + + + Verifies that two values are equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are not equal + + + + Verifies that two values are equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are not equal + + + + Verifies that two objects are strictly equal, using the type's default comparer. + + The type of the objects to be compared + The expected value + The value to be compared against + Thrown when the objects are not equal + + + + Verifies that two objects are not equal, using a default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that two objects are not equal, using a custom equality comparer. + + The type of the objects to be compared + The expected object + The actual object + The comparer used to examine the objects + Thrown when the objects are equal + + + + Verifies that two values are not equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are equal + + + + Verifies that two values are not equal, within the number of decimal + places given by . + + The expected value + The value to be compared against + The number of decimal places (valid values: 0-15) + Thrown when the values are equal + + + + Verifies that two objects are strictly not equal, using the type's default comparer. + + The type of the objects to be compared + The expected object + The actual object + Thrown when the objects are equal + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception or a derived exception type is thrown. + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + Generally used to test property accessors. + + The type of the exception expected to be thrown + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type). + + The type of the exception expected to be thrown + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the code to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Verifies that the exact exception is thrown (and not a derived exception type), where the exception + derives from and has the given parameter name. + + The parameter name that is expected to be in the exception + A delegate to the task to be tested + The exception that was thrown, when successful + Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown + + + + + + + Records any exception which is thrown by the given code. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Records any exception which is thrown by the given code that has + a return value. Generally used for testing property accessors. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Records any exception which is thrown by the given task. + + The task which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Verifies that two objects are not the same instance. + + The expected object instance + The actual object instance + Thrown when the objects are the same instance + + + + Verifies that two objects are the same instance. + + The expected object instance + The actual object instance + Thrown when the objects are not the same instance + + + + Verifies that an object reference is not null. + + The object to be validated + Thrown when the object is not null + + + + Verifies that an object reference is null. + + The object to be inspected + Thrown when the object reference is not null + + + + Verifies that the provided object raised INotifyPropertyChanged.PropertyChanged + as a result of executing the given test code. + + The object which should raise the notification + The property name for which the notification should be raised + The test code which should cause the notification to be raised + Thrown when the notification is not raised + + + + Verifies that a value is within a given range. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + Thrown when the value is not in the given range + + + + Verifies that a value is within a given range, using a comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + The comparer used to evaluate the value's range + Thrown when the value is not in the given range + + + + Verifies that a value is not within a given range, using the default comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + Thrown when the value is in the given range + + + + Verifies that a value is not within a given range, using a comparer. + + The type of the value to be compared + The actual value to be evaluated + The (inclusive) low value of the range + The (inclusive) high value of the range + The comparer used to evaluate the value's range + Thrown when the value is in the given range + + + + Verifies that a set is a proper subset of another set. + + The type of the object to be verified + The expected superset + The set expected to be a proper subset + Thrown when the actual set is not a proper subset of the expected set + + + + Verifies that a set is a proper superset of another set. + + The type of the object to be verified + The expected subset + The set expected to be a proper superset + Thrown when the actual set is not a proper superset of the expected set + + + + Verifies that a set is a subset of another set. + + The type of the object to be verified + The expected superset + The set expected to be a subset + Thrown when the actual set is not a subset of the expected set + + + + Verifies that a set is a superset of another set. + + The type of the object to be verified + The expected subset + The set expected to be a superset + Thrown when the actual set is not a superset of the expected set + + + + Verifies that a string contains a given sub-string, using the current culture. + + The sub-string expected to be in the string + The string to be inspected + Thrown when the sub-string is not present inside the string + + + + Verifies that a string contains a given sub-string, using the given comparison type. + + The sub-string expected to be in the string + The string to be inspected + The type of string comparison to perform + Thrown when the sub-string is not present inside the string + + + + Verifies that a string does not contain a given sub-string, using the current culture. + + The sub-string which is expected not to be in the string + The string to be inspected + Thrown when the sub-string is present inside the string + + + + Verifies that a string does not contain a given sub-string, using the current culture. + + The sub-string which is expected not to be in the string + The string to be inspected + The type of string comparison to perform + Thrown when the sub-string is present inside the given string + + + + Verifies that a string starts with a given string, using the current culture. + + The string expected to be at the start of the string + The string to be inspected + Thrown when the string does not start with the expected string + + + + Verifies that a string starts with a given string, using the given comparison type. + + The string expected to be at the start of the string + The string to be inspected + The type of string comparison to perform + Thrown when the string does not start with the expected string + + + + Verifies that a string ends with a given string, using the current culture. + + The string expected to be at the end of the string + The string to be inspected + Thrown when the string does not end with the expected string + + + + Verifies that a string ends with a given string, using the given comparison type. + + The string expected to be at the end of the string + The string to be inspected + The type of string comparison to perform + Thrown when the string does not end with the expected string + + + + Verifies that a string matches a regular expression. + + The regex pattern expected to match + The string to be inspected + Thrown when the string does not match the regex pattern + + + + Verifies that a string matches a regular expression. + + The regex expected to match + The string to be inspected + Thrown when the string does not match the regex + + + + Verifies that a string does not match a regular expression. + + The regex pattern expected not to match + The string to be inspected + Thrown when the string matches the regex pattern + + + + Verifies that a string does not match a regular expression. + + The regex expected not to match + The string to be inspected + Thrown when the string matches the regex + + + + Verifies that two strings are equivalent. + + The expected string value. + The actual string value. + Thrown when the strings are not equivalent. + + + + Verifies that two strings are equivalent. + + The expected string value. + The actual string value. + If set to true, ignores cases differences. The invariant culture is used. + If set to true, treats \r\n, \r, and \n as equivalent. + If set to true, treats spaces and tabs (in any non-zero quantity) as equivalent. + Thrown when the strings are not equivalent. + + + + Verifies that an object is of the given type or a derived type. + + The type the object should be + The object to be evaluated + The object, casted to type T when successful + Thrown when the object is not the given type + + + + Verifies that an object is of the given type or a derived type. + + The type the object should be + The object to be evaluated + Thrown when the object is not the given type + + + + Verifies that an object is not exactly the given type. + + The type the object should not be + The object to be evaluated + Thrown when the object is the given type + + + + Verifies that an object is not exactly the given type. + + The type the object should not be + The object to be evaluated + Thrown when the object is the given type + + + + Verifies that an object is exactly the given type (and not a derived type). + + The type the object should be + The object to be evaluated + The object, casted to type T when successful + Thrown when the object is not the given type + + + + Verifies that an object is exactly the given type (and not a derived type). + + The type the object should be + The object to be evaluated + Thrown when the object is not the given type + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net range assertions. + + The type that is being compared. + + + + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for exceptions that have actual and expected values + + + + + Creates a new instance of the class. + + The expected value + The actual value + The user message to be shown + The title to use for the expected value (defaults to "Expected") + The title to use for the actual value (defaults to "Actual") + + + + Gets the actual value. + + + + + Gets the title used for the actual value. + + + + + Gets the expected value. + + + + + Gets the title used for the expected value. + + + + + Gets a message that describes the current exception. Includes the expected and actual values. + + The error message that explains the reason for the exception, or an empty string(""). + 1 + + + + Exception thrown when the collection did not contain exactly the given number element. + + + + + Initializes a new instance of the class. + + The expected number of items in the collection. + The actual number of items in the collection. + + + + Exception thrown when Assert.Collection fails. + + + + + Creates a new instance of the class. + + The expected number of items in the collection. + The actual number of items in the collection. + The index of the position where the first comparison failure occurred. + The exception that was thrown during the comparison failure. + + + + The actual number of items in the collection. + + + + + The expected number of items in the collection. + + + + + The index of the position where the first comparison failure occurred, or -1 if + comparisions did not occur (because the actual and expected counts differed). + + + + + + + + + + + Exception thrown when an All assertion has one or more items fail an assertion. + + + + + Creates a new instance of the class. + + The total number of items that were in the collection. + The list of errors that occurred during the test pass. + + + + The errors that occurred during execution of the test. + + + + + + + + Exception thrown when a collection unexpectedly does not contain the expected value. + + + + + Creates a new instance of the class. + + The expected object value + The actual value + + + + Exception thrown when a collection unexpectedly contains the expected value. + + + + + Creates a new instance of the class. + + The expected object value + The actual value + + + + Exception thrown when a string unexpectedly matches a regular expression. + + + + + Creates a new instance of the class. + + The regular expression pattern expected not to match + The actual value + + + + Exception thrown when a collection is unexpectedly not empty. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a string does not end with the expected value. + + + + + Creates a new instance of the class. + + The expected string value + The actual value + + + + Exception thrown when two values are unexpectedly not equal. + + + + + Creates a new instance of the class. + + The expected object value + The actual object value + + + + Creates a new instance of the class for string comparisons. + + The expected string value + The actual string value + The first index in the expected string where the strings differ + The first index in the actual string where the strings differ + + + + Gets the index into the actual value where the values first differed. + Returns -1 if the difference index points were not provided. + + + + + Gets the index into the expected value where the values first differed. + Returns -1 if the difference index points were not provided. + + + + + + + + Exception thrown when a value is unexpectedly true. + + + + + Creates a new instance of the class. + + The user message to be display, or null for the default message + The actual value + + + + Exception thrown when a value is unexpectedly not in the given range. + + + + + Creates a new instance of the class. + + The actual object value + The low value of the range + The high value of the range + + + + Gets the actual object value + + + + + Gets the high value of the range + + + + + Gets the low value of the range + + + + + Gets a message that describes the current exception. + + The error message that explains the reason for the exception, or an empty string(""). + + + + Exception thrown when the value is unexpectedly not of the given type or a derived type. + + + + + Creates a new instance of the class. + + The expected type + The actual object value + + + + Exception thrown when the value is unexpectedly of the exact given type. + + + + + Creates a new instance of the class. + + The expected type + The actual object value + + + + Exception thrown when the value is unexpectedly not of the exact given type. + + + + + Creates a new instance of the class. + + The expected type name + The actual type name + + + + Exception thrown when a string does not match a regular expression. + + + + + Creates a new instance of the class. + + The expected regular expression pattern + The actual value + + + + Exception thrown when a collection is unexpectedly empty. + + + + + Creates a new instance of the class. + + + + + Exception thrown when two values are unexpectedly equal. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a value is unexpectedly in the given range. + + + + + Creates a new instance of the class. + + The actual object value + The low value of the range + The high value of the range + + + + Gets the actual object value + + + + + Gets the high value of the range + + + + + Gets the low value of the range + + + + + Gets a message that describes the current exception. + + The error message that explains the reason for the exception, or an empty string(""). + + + + Exception thrown when an object is unexpectedly null. + + + + + Creates a new instance of the class. + + + + + Exception thrown when two values are unexpected the same instance. + + + + + Creates a new instance of the class. + + + + + Exception thrown when an object reference is unexpectedly not null. + + + + + Creates a new instance of the class. + + + + + + Exception to be thrown from theory execution when the number of + parameter values does not the test method signature. + + + + + Exception thrown when a set is not a proper subset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a set is not a proper superset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when code unexpectedly fails change a property. + + + + + Creates a new instance of the class. Call this constructor + when no exception was thrown. + + The name of the property that was expected to be changed. + + + + Exception thrown when two object references are unexpectedly not the same instance. + + + + + Creates a new instance of the class. + + The expected object reference + The actual object reference + + + + Exception thrown when the collection did not contain exactly one element. + + + + + Initializes a new instance of the class. + + The numbers of items in the collection. + + + + Exception thrown when a string does not start with the expected value. + + + + + Creates a new instance of the class. + + The expected string value + The actual value + + + + Exception thrown when a set is not a subset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when a set is not a superset of another set. + + + + + Creates a new instance of the class. + + + + + Exception thrown when code unexpectedly fails to throw an exception. + + + + + Creates a new instance of the class. Call this constructor + when no exception was thrown. + + The type of the exception that was expected + + + + Creates a new instance of the class. Call this constructor + when an exception of the wrong type was thrown. + + The type of the exception that was expected + The actual exception that was thrown + + + + THIS CONSTRUCTOR IS FOR UNIT TESTING PURPOSES ONLY. + + + + + Gets a string representation of the frames on the call stack at the time the current exception was thrown. + + A string that describes the contents of the call stack, with the most recent method call appearing first. + + + + Exception thrown when a value is unexpectedly false. + + + + + Creates a new instance of the class. + + The user message to be displayed, or null for the default message + The actual value + + + + The base assert exception class + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The user message to be displayed + + + + Initializes a new instance of the class. + + The user message to be displayed + The inner exception + + + + Initializes a new instance of the class. + + The user message to be displayed + The stack trace to be displayed + + + + Gets a string representation of the frames on the call stack at the time the current exception was thrown. + + A string that describes the contents of the call stack, with the most recent method call appearing first. + + + + Gets the user message + + + + + + + diff --git a/packages/xunit.assert.2.1.0/xunit.assert.2.1.0.nupkg b/packages/xunit.assert.2.1.0/xunit.assert.2.1.0.nupkg new file mode 100644 index 0000000..eb627db Binary files /dev/null and b/packages/xunit.assert.2.1.0/xunit.assert.2.1.0.nupkg differ diff --git a/packages/xunit.core.2.1.0/build/dnx451/_._ b/packages/xunit.core.2.1.0/build/dnx451/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.core.2.1.0/build/monoandroid/_._ b/packages/xunit.core.2.1.0/build/monoandroid/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.core.2.1.0/build/monotouch/_._ b/packages/xunit.core.2.1.0/build/monotouch/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.core.2.1.0/build/net45/_._ b/packages/xunit.core.2.1.0/build/net45/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.core.2.1.0/build/portable-net45+win8+wp8+wpa81/xunit.core.props b/packages/xunit.core.2.1.0/build/portable-net45+win8+wp8+wpa81/xunit.core.props new file mode 100644 index 0000000..a00a545 --- /dev/null +++ b/packages/xunit.core.2.1.0/build/portable-net45+win8+wp8+wpa81/xunit.core.props @@ -0,0 +1,10 @@ + + + + + xunit.execution.desktop.dll + PreserveNewest + False + + + \ No newline at end of file diff --git a/packages/xunit.core.2.1.0/build/win8/_._ b/packages/xunit.core.2.1.0/build/win8/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.core.2.1.0/build/win81/xunit.core.props b/packages/xunit.core.2.1.0/build/win81/xunit.core.props new file mode 100644 index 0000000..a00a545 --- /dev/null +++ b/packages/xunit.core.2.1.0/build/win81/xunit.core.props @@ -0,0 +1,10 @@ + + + + + xunit.execution.desktop.dll + PreserveNewest + False + + + \ No newline at end of file diff --git a/packages/xunit.core.2.1.0/build/wp8/_._ b/packages/xunit.core.2.1.0/build/wp8/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.core.2.1.0/build/wpa81/xunit.core.props b/packages/xunit.core.2.1.0/build/wpa81/xunit.core.props new file mode 100644 index 0000000..a00a545 --- /dev/null +++ b/packages/xunit.core.2.1.0/build/wpa81/xunit.core.props @@ -0,0 +1,10 @@ + + + + + xunit.execution.desktop.dll + PreserveNewest + False + + + \ No newline at end of file diff --git a/packages/xunit.core.2.1.0/build/xamarinios/_._ b/packages/xunit.core.2.1.0/build/xamarinios/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.core.2.1.0/xunit.core.2.1.0.nupkg b/packages/xunit.core.2.1.0/xunit.core.2.1.0.nupkg new file mode 100644 index 0000000..b646888 Binary files /dev/null and b/packages/xunit.core.2.1.0/xunit.core.2.1.0.nupkg differ diff --git a/packages/xunit.extensibility.core.2.1.0/lib/dotnet/xunit.core.dll.tdnet b/packages/xunit.extensibility.core.2.1.0/lib/dotnet/xunit.core.dll.tdnet new file mode 100644 index 0000000..4d8afc8 --- /dev/null +++ b/packages/xunit.extensibility.core.2.1.0/lib/dotnet/xunit.core.dll.tdnet @@ -0,0 +1,5 @@ + + xUnit.net {0}.{1}.{2} build {3} + xunit.runner.tdnet.dll + Xunit.Runner.TdNet.TdNetRunner + \ No newline at end of file diff --git a/packages/xunit.extensibility.core.2.1.0/lib/dotnet/xunit.core.xml b/packages/xunit.extensibility.core.2.1.0/lib/dotnet/xunit.core.xml new file mode 100644 index 0000000..8bd3ce5 --- /dev/null +++ b/packages/xunit.extensibility.core.2.1.0/lib/dotnet/xunit.core.xml @@ -0,0 +1,1001 @@ + + + + xunit.core + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Indicates the default display name format for test methods. + + + + + Use a fully qualified name (namespace + class + method) + + + + + Use just the method name (without class) + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base attribute which indicates a test method interception (allows code to be run before and + after the test is run). + + + + + This method is called after the test method is executed. + + The method under test + + + + This method is called before the test method is executed. + + The method under test + + + + Abstract attribute which represents a data source for a data theory. + Data source providers derive from this attribute and implement GetData + to return the data for the theory. + + + + + Returns the data to be used to test the theory. + + The method that is being tested + One or more sets of theory data. Each invocation of the test method + is represented by a single object array. + + + + Implementation of for discovering . + + + + + + + + Default implementation of . Uses reflection to find the + data associated with ; may return null when called + without reflection-based abstraction implementations. + + + + + + + + + + + An attribute used to decorate classes which derive from , + to indicate how data elements should be discovered. + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.DataDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + Aggregates exceptions. Intended to run one or more code blocks, and collect the + exceptions thrown by those code blocks. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class that + contains the exception list of its parent. + + The parent aggregator to copy exceptions from. + + + + Returns true if the aggregator has at least one exception inside it. + + + + + Adds an exception to the aggregator. + + The exception to be added. + + + + Adds exceptions from another aggregator into this aggregator. + + The aggregator whose exceptions should be copied. + + + + Clears the aggregator. + + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Returns an exception that represents the exceptions thrown by the code + passed to the or method. + + Returns null if no exceptions were thrown; returns the + exact exception is a single exception was thrown; returns + if more than one exception was thrown. + + + + This class is responsible for discovering the data available in an implementation + of . The discovery process may not always have access + to reflection (i.e., running in Resharper), so the discoverer must make a best + effort to return data, but may return null when there is not enough information + available (for example, if reflection is required to answer the question). + + + + + Returns the data to be used to test the theory. + + + This will be called during + discovery, at which point the may or may not + be backed by reflection (i.e., implementing ). + If the data is not available because reflection is required, then you may return + null to inform xUnit that the quantity of data is unknown at this point. + When the tests are run, if you returned back null during discovery, then this method + will be called again to retrieve the data, this time guaranteed to provide + an implementation of . At this time, you + must return the actual data, and returning null is not legal. + + The data attribute being discovered + The method that is being tested/discovered + The theory data (or null during discovery, if not enough + information is available to enumerate the data) + + + + Returns true if the data attribute supports enumeration during + discovery; false otherwise. Data attributes with expensive computational + costs and/or randomized data sets should return false. + + + + + Used by discovery, execution, and extensibility code to send messages to the runner. + + + + + Queues a message to be sent to the runner. + + The message to be sent to the runner + + Returns true if discovery/execution should continue; false, otherwise. + The return value may be safely ignored by components which are not directly responsible + for discovery or execution, and this is intended to communicate to those sub-systems that + that they should short circuit and stop their work as quickly as is reasonable. + + + + + Implementation of used to discover the data + provided by . + + + + + + + + + + + A class implements this interface to participate in ordering tests + for the test runner. Test case orderers are applied using the + , which can be applied at + the assembly, test collection, and test class level. + + + + + Orders test cases for execution. + + The test cases to be ordered. + The test cases in the order to be run. + + + + Marker interface that must be implemented by test framework attributes, so + that the test framework attribute discoverer can find them. + + + + + Interface to be implemented by classes which are used to discover the test framework. + + + + + Gets the type that implements to be used to discover + and run tests. + + The test framework attribute that decorated the assembly + The test framework type + + + + Marker interface used by attributes which provide trait data. + + + + + This interface is implemented by discoverers that provide trait values to + xUnit.net v2 tests. + + + + + Gets the trait values from the trait attribute. + + The trait attribute containing the trait values. + The trait values. + + + + Interface to be implemented by classes which are used to discover tests cases attached + to test methods that are attributed with (or a subclass). + + + + + Discover test cases from a test method. + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + Represents a single test case from xUnit.net v2. + + + + + Gets the method to be run. Differs from . in that + any generic argument types will have been closed based on the arguments. + + + + + Executes the test case, returning 0 or more result messages through the message sink. + + The message sink used to send diagnostic messages to. + The message bus to report results to. + The arguments to pass to the constructor. + The error aggregator to use for catching exception. + The cancellation token source that indicates whether cancellation has been requested. + Returns the summary of the test case run. + + + + This interface is intended to be implemented by components which generate test collections. + End users specify the desired test collection factory by applying + at the assembly level. Classes which implement this interface must have a constructor + that takes and . + + + + + Gets the display name for the test collection factory. This information is shown to the end + user as part of the description of the test environment. + + + + + Gets the test collection for a given test class. + + The test class. + The test collection. + + + + Marks an assembly as a platform specific assembly for use with xUnit.net. Type references from + such assemblies are allowed to use a special suffix ("My.Assembly.{Platform}"), which will + automatically be translated into the correct platform-specific name ("My.Assembly.desktop", + "My.Assembly.win8", etc.). This affects both extensibility points which require specifying + a string-based type name and assembly, as well as serialization. + + In v2.1 and later, the supported platform target names include: + + "desktop" (for desktop and PCL tests), + "dotnet" (everything else). + + In v2.0, the following names were also supported: + + "iOS-Universal" (for Xamarin test projects targeting iOS), + "MonoAndroid" (for Xamarin MonoAndroid tests), + "MonoTouch" (for Xamarin MonoTouch tests), + "universal" (for Windows Phone 8.1 and Windows 8.1 tests), + "win8" (for Windows 8 tests), + "wp8" (for Windows Phone 8 Silverlight tests). + + For backward compatibility reasons, the v2.1 runners will support tests linked against + the v2.0 execution libraries. + + Note that file names may be case sensitive (when running on platforms with case sensitive + file systems like Linux), so ensure that your assembly file name casing is consistent, and + that you use the suffixes here with the exact case shown. + + + + + Represents the statistical summary from a run of one or more tests. + + + + + The total number of tests run. + + + + + The number of failed tests. + + + + + The number of skipped tests. + + + + + The total time taken to run the tests, in seconds. + + + + + Adds a run summary's totals into this run summary. + + The run summary to be added. + + + + Decorates an implementation of that is used to + determine which test framework is used to discover and run tests. + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.DataDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + An attribute used to decorate classes which derive from , + to indicate how test cases should be discovered. + + + + + Initializes an instance of the class. + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.FactDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + The implementation of which returns the trait values + for . + + + + + + + + An attribute used to decorate classes which implement , + to indicate how trait values should be discovered. The discoverer type must implement + . + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.TraitDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + Provides a data source for a data theory, with the data coming from a class + which must implement IEnumerable<object[]>. + + + + + Initializes a new instance of the class. + + The class that provides the data. + + + + Gets the type of the class that provides the data. + + + + + + + + Used to declare a specific test collection for a test class. + + + + + Initializes a new instance of the class. + + The test collection name. + + + + Defines the built-in behavior types for collections in xUnit.net. + + + + + By default, generates a collection per assembly, and any test classes that are not + decorated with will be placed into the assembly-level + collection. + + + + + By default, generates a collection per test class for any test classes that are not + decorated with . + + + + + Used to declare a the default test collection behavior for the assembly. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The collection behavior for the assembly. + + + + Initializes a new instance of the class. + + The type name of the test collection factory (that implements ). + The assembly that exists in. + + + + Determines whether tests in this assembly are run in parallel. + + + + + Determines how many tests can run in parallel with each other. If set to 0, the system will + use . If set to a negative number, then there will + be no limit to the number of threads. + + + + + Used to declare a test collection container class. The container class gives + developers a place to attach interfaces like and + that will be applied to all tests classes + that are members of the test collection. + + + + + Initializes a new instance of the class. + + The test collection name. + + + + Attribute that is applied to a method to indicate that it is a fact that should be run + by the test runner. It can also be extended to support a customized definition of a + test method. + + + + + Gets the name of the test to be used when the test is skipped. Defaults to + null, which will cause the fully qualified test name to be used. + + + + + Marks the test so that it will not be run, and gets or sets the skip reason + + + + + Used to provide asynchronous lifetime functionality. Currently supported: + - Test classes + - Classes used in + - Classes used in . + + + + + Called immediately after the class has been created, before it is used. + + + + + Called when an object is no longer needed. Called just before + if the class also implements that. + + + + + Used to decorate xUnit.net test classes and collections to indicate a test which has + per-test-class fixture data. An instance of the fixture data is initialized just before + the first test in the class is run, and if it implements IDisposable, is disposed + after the last test in the class is run. To gain access to the fixture data from + inside the test, a constructor argument should be added to the test class which + exactly matches the . Class fixtures must have a + single parameterless constructor, and may take collection fixture types as constructor + arguments. + + The type of the fixture. + + If asynchronous setup of is required + it should implement the interface. + + + + + Used to decorate xUnit.net test classes and collections to indicate a test which has + per-test-collection fixture data. An instance of the fixture data is initialized just before + the first test in the collection is run, and if it implements IDisposable, is disposed + after the last test in the collection is run. To gain access to the fixture data from + inside the test, a constructor argument should be added to the test class which + exactly matches the . + + The type of the fixture. + + If asynchronous setup of is required + it should implement the interface. + + + + + Provides a data source for a data theory, with the data coming from inline values. + + + + + Initializes a new instance of the class. + + The data values to pass to the theory. + + + + + + + A class implements this interface to participate in ordering tests + for the test runner. Test collection orderers are applied using the + , which can be applied at + the assembly level. + + + + + Orders test collections for execution. + + The test collections to be ordered. + The test collections in the order to be run. + + + + Provides a data source for a data theory, with the data coming from one of the following sources: + 1. A static property + 2. A static field + 3. A static method (with parameters) + The member must return something compatible with IEnumerable<object[]> with the test data. + + + + + Initializes a new instance of the class. + + The name of the public static member on the test class that will provide the test data + The parameters for the member (only supported for methods; ignored for everything else) + + + + + + + Provides a base class for attributes that will provide member data. The member data must return + something compatible with . + + + + + Initializes a new instance of the class. + + The name of the public static member on the test class that will provide the test data + The parameters for the member (only supported for methods; ignored for everything else) + + + + Returns true if the data attribute wants to skip enumerating data during discovery. + This will cause the theory to yield a single test case for all data, and the data discovery + will be during test execution instead of discovery. + + + + + Gets the member name. + + + + + Gets or sets the type to retrieve the member from. If not set, then the property will be + retrieved from the unit test class. + + + + + Gets or sets the parameters passed to the member. Only supported for static methods. + + + + + + + + Converts an item yielded by the data member to an object array, for return from . + + The method that is being tested. + An item yielded from the data member. + An suitable for return from . + + + + + + + + + + + + + Allows the user to record actions for a test. + + + + + Records any exception which is thrown by the given code. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Records any exception which is thrown by the given code that has + a return value. Generally used for testing property accessors. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Records any exception which is thrown by the given task. + + The task which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Used to decorate an assembly to allow the use a custom . + + + + + Initializes a new instance of the class. + + The type name of the orderer class (that implements ). + The assembly that exists in. + + + + Used to decorate an assembly, test collection, or test class to allow + the use a custom . + + + + + Initializes a new instance of the class. + + The type name of the orderer class (that implements ). + The assembly that exists in. + + + + Used to decorate an assembly to allow the use a custom . + + + + + Initializes an instance of . + + The fully qualified type name of the test framework + (f.e., 'Xunit.Sdk.XunitTestFramework') + The name of the assembly that the test framework type + is located in, without file extension (f.e., 'xunit.execution') + + + + Marks a test method as being a data theory. Data theories are tests which are fed + various bits of data from a data source, mapping to parameters on the test method. + If the data source contains multiple rows, then the test method is executed + multiple times (once with each data row). Data is provided by attributes which + derive from (notably, and + ). + + + + + Provides data for theories based on collection initialization syntax. + + + + + Adds a row to the theory. + + The values to be added. + + + + + + + + + + Represents a set of data for a theory with a single parameter. Data can + be added to the data set using the collection initializer syntax. + + The parameter type. + + + + Adds data to the theory data set. + + The data value. + + + + Represents a set of data for a theory with 2 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + The fourth parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + The fourth data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + The fourth parameter type. + The fifth parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + The fourth data value. + The fifth data value. + + + + Attribute used to decorate a test method with arbitrary name/value pairs ("traits"). + + + + + Creates a new instance of the class. + + The trait name + The trait value + + + diff --git a/packages/xunit.extensibility.core.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.core.dll.tdnet b/packages/xunit.extensibility.core.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.core.dll.tdnet new file mode 100644 index 0000000..4d8afc8 --- /dev/null +++ b/packages/xunit.extensibility.core.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.core.dll.tdnet @@ -0,0 +1,5 @@ + + xUnit.net {0}.{1}.{2} build {3} + xunit.runner.tdnet.dll + Xunit.Runner.TdNet.TdNetRunner + \ No newline at end of file diff --git a/packages/xunit.extensibility.core.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.core.xml b/packages/xunit.extensibility.core.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.core.xml new file mode 100644 index 0000000..8bd3ce5 --- /dev/null +++ b/packages/xunit.extensibility.core.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.core.xml @@ -0,0 +1,1001 @@ + + + + xunit.core + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Indicates the default display name format for test methods. + + + + + Use a fully qualified name (namespace + class + method) + + + + + Use just the method name (without class) + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base attribute which indicates a test method interception (allows code to be run before and + after the test is run). + + + + + This method is called after the test method is executed. + + The method under test + + + + This method is called before the test method is executed. + + The method under test + + + + Abstract attribute which represents a data source for a data theory. + Data source providers derive from this attribute and implement GetData + to return the data for the theory. + + + + + Returns the data to be used to test the theory. + + The method that is being tested + One or more sets of theory data. Each invocation of the test method + is represented by a single object array. + + + + Implementation of for discovering . + + + + + + + + Default implementation of . Uses reflection to find the + data associated with ; may return null when called + without reflection-based abstraction implementations. + + + + + + + + + + + An attribute used to decorate classes which derive from , + to indicate how data elements should be discovered. + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.DataDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + Aggregates exceptions. Intended to run one or more code blocks, and collect the + exceptions thrown by those code blocks. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class that + contains the exception list of its parent. + + The parent aggregator to copy exceptions from. + + + + Returns true if the aggregator has at least one exception inside it. + + + + + Adds an exception to the aggregator. + + The exception to be added. + + + + Adds exceptions from another aggregator into this aggregator. + + The aggregator whose exceptions should be copied. + + + + Clears the aggregator. + + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Runs the code, catching the exception that is thrown and adding it to + the aggregate. + + The code to be run. + + + + Returns an exception that represents the exceptions thrown by the code + passed to the or method. + + Returns null if no exceptions were thrown; returns the + exact exception is a single exception was thrown; returns + if more than one exception was thrown. + + + + This class is responsible for discovering the data available in an implementation + of . The discovery process may not always have access + to reflection (i.e., running in Resharper), so the discoverer must make a best + effort to return data, but may return null when there is not enough information + available (for example, if reflection is required to answer the question). + + + + + Returns the data to be used to test the theory. + + + This will be called during + discovery, at which point the may or may not + be backed by reflection (i.e., implementing ). + If the data is not available because reflection is required, then you may return + null to inform xUnit that the quantity of data is unknown at this point. + When the tests are run, if you returned back null during discovery, then this method + will be called again to retrieve the data, this time guaranteed to provide + an implementation of . At this time, you + must return the actual data, and returning null is not legal. + + The data attribute being discovered + The method that is being tested/discovered + The theory data (or null during discovery, if not enough + information is available to enumerate the data) + + + + Returns true if the data attribute supports enumeration during + discovery; false otherwise. Data attributes with expensive computational + costs and/or randomized data sets should return false. + + + + + Used by discovery, execution, and extensibility code to send messages to the runner. + + + + + Queues a message to be sent to the runner. + + The message to be sent to the runner + + Returns true if discovery/execution should continue; false, otherwise. + The return value may be safely ignored by components which are not directly responsible + for discovery or execution, and this is intended to communicate to those sub-systems that + that they should short circuit and stop their work as quickly as is reasonable. + + + + + Implementation of used to discover the data + provided by . + + + + + + + + + + + A class implements this interface to participate in ordering tests + for the test runner. Test case orderers are applied using the + , which can be applied at + the assembly, test collection, and test class level. + + + + + Orders test cases for execution. + + The test cases to be ordered. + The test cases in the order to be run. + + + + Marker interface that must be implemented by test framework attributes, so + that the test framework attribute discoverer can find them. + + + + + Interface to be implemented by classes which are used to discover the test framework. + + + + + Gets the type that implements to be used to discover + and run tests. + + The test framework attribute that decorated the assembly + The test framework type + + + + Marker interface used by attributes which provide trait data. + + + + + This interface is implemented by discoverers that provide trait values to + xUnit.net v2 tests. + + + + + Gets the trait values from the trait attribute. + + The trait attribute containing the trait values. + The trait values. + + + + Interface to be implemented by classes which are used to discover tests cases attached + to test methods that are attributed with (or a subclass). + + + + + Discover test cases from a test method. + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + Represents a single test case from xUnit.net v2. + + + + + Gets the method to be run. Differs from . in that + any generic argument types will have been closed based on the arguments. + + + + + Executes the test case, returning 0 or more result messages through the message sink. + + The message sink used to send diagnostic messages to. + The message bus to report results to. + The arguments to pass to the constructor. + The error aggregator to use for catching exception. + The cancellation token source that indicates whether cancellation has been requested. + Returns the summary of the test case run. + + + + This interface is intended to be implemented by components which generate test collections. + End users specify the desired test collection factory by applying + at the assembly level. Classes which implement this interface must have a constructor + that takes and . + + + + + Gets the display name for the test collection factory. This information is shown to the end + user as part of the description of the test environment. + + + + + Gets the test collection for a given test class. + + The test class. + The test collection. + + + + Marks an assembly as a platform specific assembly for use with xUnit.net. Type references from + such assemblies are allowed to use a special suffix ("My.Assembly.{Platform}"), which will + automatically be translated into the correct platform-specific name ("My.Assembly.desktop", + "My.Assembly.win8", etc.). This affects both extensibility points which require specifying + a string-based type name and assembly, as well as serialization. + + In v2.1 and later, the supported platform target names include: + + "desktop" (for desktop and PCL tests), + "dotnet" (everything else). + + In v2.0, the following names were also supported: + + "iOS-Universal" (for Xamarin test projects targeting iOS), + "MonoAndroid" (for Xamarin MonoAndroid tests), + "MonoTouch" (for Xamarin MonoTouch tests), + "universal" (for Windows Phone 8.1 and Windows 8.1 tests), + "win8" (for Windows 8 tests), + "wp8" (for Windows Phone 8 Silverlight tests). + + For backward compatibility reasons, the v2.1 runners will support tests linked against + the v2.0 execution libraries. + + Note that file names may be case sensitive (when running on platforms with case sensitive + file systems like Linux), so ensure that your assembly file name casing is consistent, and + that you use the suffixes here with the exact case shown. + + + + + Represents the statistical summary from a run of one or more tests. + + + + + The total number of tests run. + + + + + The number of failed tests. + + + + + The number of skipped tests. + + + + + The total time taken to run the tests, in seconds. + + + + + Adds a run summary's totals into this run summary. + + The run summary to be added. + + + + Decorates an implementation of that is used to + determine which test framework is used to discover and run tests. + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.DataDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + An attribute used to decorate classes which derive from , + to indicate how test cases should be discovered. + + + + + Initializes an instance of the class. + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.FactDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + The implementation of which returns the trait values + for . + + + + + + + + An attribute used to decorate classes which implement , + to indicate how trait values should be discovered. The discoverer type must implement + . + + + + + Initializes an instance of . + + The fully qualified type name of the discoverer + (f.e., 'Xunit.Sdk.TraitDiscoverer') + The name of the assembly that the discoverer type + is located in, without file extension (f.e., 'xunit.execution') + + + + Provides a data source for a data theory, with the data coming from a class + which must implement IEnumerable<object[]>. + + + + + Initializes a new instance of the class. + + The class that provides the data. + + + + Gets the type of the class that provides the data. + + + + + + + + Used to declare a specific test collection for a test class. + + + + + Initializes a new instance of the class. + + The test collection name. + + + + Defines the built-in behavior types for collections in xUnit.net. + + + + + By default, generates a collection per assembly, and any test classes that are not + decorated with will be placed into the assembly-level + collection. + + + + + By default, generates a collection per test class for any test classes that are not + decorated with . + + + + + Used to declare a the default test collection behavior for the assembly. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The collection behavior for the assembly. + + + + Initializes a new instance of the class. + + The type name of the test collection factory (that implements ). + The assembly that exists in. + + + + Determines whether tests in this assembly are run in parallel. + + + + + Determines how many tests can run in parallel with each other. If set to 0, the system will + use . If set to a negative number, then there will + be no limit to the number of threads. + + + + + Used to declare a test collection container class. The container class gives + developers a place to attach interfaces like and + that will be applied to all tests classes + that are members of the test collection. + + + + + Initializes a new instance of the class. + + The test collection name. + + + + Attribute that is applied to a method to indicate that it is a fact that should be run + by the test runner. It can also be extended to support a customized definition of a + test method. + + + + + Gets the name of the test to be used when the test is skipped. Defaults to + null, which will cause the fully qualified test name to be used. + + + + + Marks the test so that it will not be run, and gets or sets the skip reason + + + + + Used to provide asynchronous lifetime functionality. Currently supported: + - Test classes + - Classes used in + - Classes used in . + + + + + Called immediately after the class has been created, before it is used. + + + + + Called when an object is no longer needed. Called just before + if the class also implements that. + + + + + Used to decorate xUnit.net test classes and collections to indicate a test which has + per-test-class fixture data. An instance of the fixture data is initialized just before + the first test in the class is run, and if it implements IDisposable, is disposed + after the last test in the class is run. To gain access to the fixture data from + inside the test, a constructor argument should be added to the test class which + exactly matches the . Class fixtures must have a + single parameterless constructor, and may take collection fixture types as constructor + arguments. + + The type of the fixture. + + If asynchronous setup of is required + it should implement the interface. + + + + + Used to decorate xUnit.net test classes and collections to indicate a test which has + per-test-collection fixture data. An instance of the fixture data is initialized just before + the first test in the collection is run, and if it implements IDisposable, is disposed + after the last test in the collection is run. To gain access to the fixture data from + inside the test, a constructor argument should be added to the test class which + exactly matches the . + + The type of the fixture. + + If asynchronous setup of is required + it should implement the interface. + + + + + Provides a data source for a data theory, with the data coming from inline values. + + + + + Initializes a new instance of the class. + + The data values to pass to the theory. + + + + + + + A class implements this interface to participate in ordering tests + for the test runner. Test collection orderers are applied using the + , which can be applied at + the assembly level. + + + + + Orders test collections for execution. + + The test collections to be ordered. + The test collections in the order to be run. + + + + Provides a data source for a data theory, with the data coming from one of the following sources: + 1. A static property + 2. A static field + 3. A static method (with parameters) + The member must return something compatible with IEnumerable<object[]> with the test data. + + + + + Initializes a new instance of the class. + + The name of the public static member on the test class that will provide the test data + The parameters for the member (only supported for methods; ignored for everything else) + + + + + + + Provides a base class for attributes that will provide member data. The member data must return + something compatible with . + + + + + Initializes a new instance of the class. + + The name of the public static member on the test class that will provide the test data + The parameters for the member (only supported for methods; ignored for everything else) + + + + Returns true if the data attribute wants to skip enumerating data during discovery. + This will cause the theory to yield a single test case for all data, and the data discovery + will be during test execution instead of discovery. + + + + + Gets the member name. + + + + + Gets or sets the type to retrieve the member from. If not set, then the property will be + retrieved from the unit test class. + + + + + Gets or sets the parameters passed to the member. Only supported for static methods. + + + + + + + + Converts an item yielded by the data member to an object array, for return from . + + The method that is being tested. + An item yielded from the data member. + An suitable for return from . + + + + + + + + + + + + + Allows the user to record actions for a test. + + + + + Records any exception which is thrown by the given code. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + Records any exception which is thrown by the given code that has + a return value. Generally used for testing property accessors. + + The code which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Records any exception which is thrown by the given task. + + The task which may thrown an exception. + Returns the exception that was thrown by the code; null, otherwise. + + + + + + + Used to decorate an assembly to allow the use a custom . + + + + + Initializes a new instance of the class. + + The type name of the orderer class (that implements ). + The assembly that exists in. + + + + Used to decorate an assembly, test collection, or test class to allow + the use a custom . + + + + + Initializes a new instance of the class. + + The type name of the orderer class (that implements ). + The assembly that exists in. + + + + Used to decorate an assembly to allow the use a custom . + + + + + Initializes an instance of . + + The fully qualified type name of the test framework + (f.e., 'Xunit.Sdk.XunitTestFramework') + The name of the assembly that the test framework type + is located in, without file extension (f.e., 'xunit.execution') + + + + Marks a test method as being a data theory. Data theories are tests which are fed + various bits of data from a data source, mapping to parameters on the test method. + If the data source contains multiple rows, then the test method is executed + multiple times (once with each data row). Data is provided by attributes which + derive from (notably, and + ). + + + + + Provides data for theories based on collection initialization syntax. + + + + + Adds a row to the theory. + + The values to be added. + + + + + + + + + + Represents a set of data for a theory with a single parameter. Data can + be added to the data set using the collection initializer syntax. + + The parameter type. + + + + Adds data to the theory data set. + + The data value. + + + + Represents a set of data for a theory with 2 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + The fourth parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + The fourth data value. + + + + Represents a set of data for a theory with 3 parameters. Data can + be added to the data set using the collection initializer syntax. + + The first parameter type. + The second parameter type. + The third parameter type. + The fourth parameter type. + The fifth parameter type. + + + + Adds data to the theory data set. + + The first data value. + The second data value. + The third data value. + The fourth data value. + The fifth data value. + + + + Attribute used to decorate a test method with arbitrary name/value pairs ("traits"). + + + + + Creates a new instance of the class. + + The trait name + The trait value + + + diff --git a/packages/xunit.extensibility.core.2.1.0/xunit.extensibility.core.2.1.0.nupkg b/packages/xunit.extensibility.core.2.1.0/xunit.extensibility.core.2.1.0.nupkg new file mode 100644 index 0000000..2c8eacd Binary files /dev/null and b/packages/xunit.extensibility.core.2.1.0/xunit.extensibility.core.2.1.0.nupkg differ diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/dnx451/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/dnx451/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/dnx451/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/dotnet/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/dotnet/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/dotnet/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/monoandroid/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/monoandroid/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/monoandroid/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/monotouch/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/monotouch/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/monotouch/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/net45/xunit.execution.desktop.xml b/packages/xunit.extensibility.execution.2.1.0/lib/net45/xunit.execution.desktop.xml new file mode 100644 index 0000000..3d0ebb8 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/net45/xunit.execution.desktop.xml @@ -0,0 +1,4163 @@ + + + + xunit.execution.desktop + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/portable-net45+win8+wp8+wpa81/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/win8/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/win8/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/win8/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/wp8/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/wp8/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/wp8/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/wpa81/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/wpa81/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/wpa81/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/lib/xamarinios/xunit.execution.dotnet.xml b/packages/xunit.extensibility.execution.2.1.0/lib/xamarinios/xunit.execution.dotnet.xml new file mode 100644 index 0000000..d819501 --- /dev/null +++ b/packages/xunit.extensibility.execution.2.1.0/lib/xamarinios/xunit.execution.dotnet.xml @@ -0,0 +1,4157 @@ + + + + xunit.execution.dotnet + + + + + Rethrows an exception object without losing the existing stack trace information + + The exception to re-throw. + + For more information on this technique, see + http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. + The remote_stack_trace string is here to support Mono. + + + + + Unwraps an exception to remove any wrappers, like . + + The exception to unwrap. + The unwrapped exception. + + + + Utility classes for dealing with Exception objects. + + + + + Combines multiple levels of messages into a single message. + + The failure information from which to get the messages. + The combined string. + + + + Combines multiple levels of stack traces into a single stack trace. + + The failure information from which to get the stack traces. + The combined string. + + + + Unwraps exceptions and their inner exceptions. + + The exception to be converted. + The failure information. + + + + An implementation of that ignores all messages. + + + + + + + + Serializes and de-serializes objects + + + + + De-serializes an object. + + The type of the object + The object's serialized value + The de-serialized object + + + + Serializes an object. + + The value to serialize + The serialized value + + + Gets whether the specified is serializable with . + The object to test for serializability. + true if the object can be serialized; otherwise, false. + + + + Converts an assembly qualified type name into a object. + + The assembly qualified type name. + The instance of the , if available; null, otherwise. + + + + Converts an assembly name + type name into a object. + + The assembly name. + The type name. + The instance of the , if available; null, otherwise. + + + + Gets an assembly qualified type name for serialization, with special dispensation for types which + originate in the execution assembly. + + + + + Retrieves a substring from the string, with whitespace trimmed on both ends. + + The string. + The starting index. + The length. + + A substring starting no earlier than startIndex and ending no later + than startIndex + length. + + + + + Default implementation of . + + + + + + + + + + + + + + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. + + + + + Dispatches the message to the given callback, if it's of the correct type. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + Dispatches the message to the given callback, if it's of the correct type. + The callback is provided with both the message and this instance of the visitor. + + The message type + The message + The callback + The result of the callback, if called; true, otherwise + + + + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering/executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue discovering tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + Called when an instance of is sent to the message sink. + + The message. + Return true to continue executing tests; false otherwise. + + + + An implementation of that provides several Visit methods that + can provide access to specific message types without the burden of casting. It also records + when it sees a completion message, and sets the event appropriately. + + The type of the completion message. + + + + Initializes a new instance of the class. + + + + + This event is triggered when the completion message has been seen. + + + + + + + + + + + Formats arguments for display in theories. + + + + + Format the value for presentation. + + The value to be formatted. + The formatted value. + + + + Default implementation of used by the xUnit.net equality assertions. + + The type that is being compared. + + + + Initializes a new instance of the class. + + Set to true to skip type equality checks. + The inner comparer to be used when the compared objects are enumerable. + + + + + + + + + + A class that wraps to create . + + The type that is being compared. + + + + Initializes a new instance of the class. + + The comparer that is being adapted. + + + + + + + + + + Base class for all long-lived objects that may cross over an AppDomain. + + + + + Creates a new instance of the type. + + + + + Disconnects all remote objects. + + + + + This implementation of allows the developer to track the count + of outstanding "async void" operations, and wait for them all to complete. + + + + + Initializes a new instance of the class. + + The existing synchronization context (may be null). + + + + + + + + + + + + + + + + Returns a task which is signaled when all outstanding operations are complete. + + + + + Default implementation of . Orders tests in + an unpredictable but stable order, so that repeated test runs of the + identical test assembly run tests in the same order. + + + + + Initializes a new instance of the class. + + Message sink to report diagnostic messages to + + + + + + + Default implementation of . Orders tests in + an unpredictable and unstable order, so that repeated test runs of the + identical test assembly run test collections in a random order. + + + + + + + + Tracks disposable objects, and disposes them in the reverse order they were added to + the tracker. + + + + + Add an object to be disposed. + + The object to be disposed. + + + + + + + Represents a caching factory for the types used for extensibility throughout the system. + + + + + Disposes the instances that are contained in the cache. + + + + + Gets an instance of the given type, casting it to , using the provided + constructor arguments. There is a single instance of a given type that is cached and reused, + so classes retrieved from this factory must be stateless and thread-safe. + + The interface type. + The message sink used to send diagnostic messages + The implementation type. + The constructor arguments. Since diagnostic message sinks are optional, + the code first looks for a type that takes the given arguments plus the message sink, and only + falls back to the message sink-less constructor if none was found. + The instance of the type. + + + + Gets a data discoverer. + + The message sink used to send diagnostic messages + The discoverer type + + + + Gets a data discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The data discoverer attribute + The data discoverer, if the type is loadable; null, otherwise. + + + + Gets a test case orderer. + + The message sink used to send diagnostic messages + The test case orderer type + + + + Gets a test case orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test case orderer attribute. + The test case orderer, if the type is loadable; null, otherwise. + + + + Gets a test collection orderer. + + The message sink used to send diagnostic messages + The test collection orderer type + + + + Gets a test collection orderer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test collection orderer attribute. + The test collection orderer, if the type is loadable; null, otherwise. + + + + Gets a test framework discoverer. + + The message sink used to send diagnostic messages + The test framework type discoverer type + + + + Gets a test framework discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The test framework discoverer attribute + + + + Gets a trait discoverer. + + The message sink used to send diagnostic messages + The trait discoverer type + + + + Gets a trait discoverer, as specified in a reflected . + + The message sink used to send diagnostic messages + The trait discoverer attribute. + The trait discoverer, if the type is loadable; null, otherwise. + + + + Gets an xUnit.net v2 test discoverer. + + The message sink used to send diagnostic messages + The test case discoverer type + + + + Gets an xUnit.net v2 test collection factory. + + The message sink used to send diagnostic messages + The test collection factory type + The test assembly under test + + + + Gets an xUnit.net v2 test collection factory, as specified in a reflected . + + The message sink used to send diagnostic messages + The collection behavior attribute. + The test assembly. + The collection factory. + + + + Implementation of that creates a single + default test collection for the assembly, and places any tests classes without + the into it. + + + + + Initializes a new instance of the class. + + The assembly. + The message sink used to send diagnostic messages + + + + + + + + + + Implementation of which creates a new test + collection for each test class that isn't decorated with . + + + + + Initializes a new instance of the class. + + The assembly info. + The message sink used to send diagnostic messages + + + + + + + + + + A simple implementation of that can be used to report an error + rather than running a test. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method. + The error message to report for the test. + + + + Gets the error message that will be display when the test is run. + + + + + + + + + + + + + + Measures and aggregates execution time of one or more actions. + + + + + Returns the total time aggregated across all the actions. + + + + + Executes an action and aggregates its run time into the total. + + The action to measure. + + + + Executes an asynchronous action and aggregates its run time into the total. + + The action to measure. + + + + Aggregates a time span into the total time. + + The time to add. + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a single for the given test method. + + The discovery options to be used. + The test method. + The attribute that decorates the test method. + + + + + Discover test cases from a test method. By default, inspects the test method's argument list + to ensure it's empty, and if not, returns a single ; + otherwise, it returns the result of calling . + + The discovery options to be used. + The test method the test cases belong to. + The fact attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of to support . + + + + + Initializes a new instance of the class. + + The test case that the lambda represents. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + A base class that provides default behavior when running tests in an assembly. It groups the tests + by test collection, and then runs the individual test collections. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the user's requested execution options. + + + + + Gets or sets the message sink to report diagnostic messages to. + + + + + Gets or sets the message sink to report run status to. + + + + + Gets or sets the assembly that contains the tests to be run. + + + + + Gets or sets the test case orderer that will be used to decide how to order the tests. + + + + + Gets or sets the test collection orderer that will be used to decide how to order the test collections. + + + + + Gets or sets the test cases to be run. + + + + + + + + Override this to provide the display name for the test framework (f.e., "xUnit.net 2.0"). + This value is placed into . + + + + + Override this to provide the environment information (f.e., "32-bit .NET 4.0"). This value is + placed into . + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Creates the message bus to be used for test execution. By default, it inspects + the options for the + flag, and if present, creates a message bus that ensures all messages are delivered + on the same thread. + + The message bus. + + + + Orders the test collections using the . + + Test collections (and the associated test cases) in run order + + + + Runs the tests in the test assembly. + + Returns summary information about the tests that were run. + + + + Runs the list of test collections. By default, groups the tests by collection and runs them synchronously. + + The message bus to report run status to. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test collection. + + The message bus to report run status to. + The test collection that is being run. + The test cases to be run. + The task cancellation token source, used to cancel the test run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running test cases. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test case to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case to be run. + + + + + This method is called just after is sent, but before any test collections are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test case. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + Returns summary information about the tests that were run. + + + + A base class that provides default behavior when running tests in a test class. It groups the tests + by test method, and then runs the individual test methods. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the tests to be run. + + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test class to be run. + + + + + Creates the arguments for the test class constructor. Attempts to resolve each parameter + individually, and adds an error when the constructor arguments cannot all be provided. + If the class is static, does not look for constructor, since one will not be needed. + + The test class constructor arguments. + + + + Gets the message to be used when the constructor is missing arguments. + + + + + This method is called just after is sent, but before any test methods are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test class. + + Returns summary information about the tests that were run. + + + + Runs the list of test methods. By default, orders the tests, groups them by method and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test method. + + The test method that contains the test cases. + The CLR method that contains the tests to be run. + The test cases to be run. + The constructor arguments that will be used to create the test class. + Returns summary information about the tests that were run. + + + + Selects the constructor to be used for the test class. By default, chooses the parameterless + constructor. Override to change the constructor selection logic. + + The constructor to be used for creating the test class. + + + + Tries to supply a test class constructor argument. By default, always fails. Override to + change the argument lookup logic. + + The constructor that will be used to create the test class. + The parameter index. + The parameter information. + The argument value that should be used for the parameter. + Returns true if the argument was supplied; false, otherwise. + + + + A base class that provides default behavior when running tests in a test collection. It groups the tests + by test class, and then runs the individual test classes. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test case orderer that will be used to decide how to order the test. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test collection that contains the tests to be run. + + + + + This method is called just after is sent, but before any test classes are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test collection. + + Returns summary information about the tests that were run. + + + + Runs the list of test classes. By default, groups the tests by class and runs them synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run the tests in an individual test class. + + The test class to be run. + The CLR class that contains the tests to be run. + The test cases to be run. + Returns summary information about the tests that were run. + + + + A base class that provides default behavior to invoke a test method. This includes + support for async test methods (both "async Task" and "async void") as well as + creation and disposal of the test class. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + Gets or sets the object which measures execution time. + + + + + Creates the test class, unless the test method is static or there have already been errors. Note that + this method times the creation of the test class (using ). It is also responsible for + sending the and + messages, so if you override this method without calling the base, you are responsible for all of this behavior. + This method should NEVER throw; any exceptions should be placed into the . + + The class instance, if appropriate; null, otherwise + + + + This method is called just after the test method has finished executing. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before the test method is invoked. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method calls the test method via reflection. This is an available override point + if you need to do some other form of invocation of the actual test method. + + The instance of the test class + The return value from the test method invocation + + + + Creates the test class (if necessary), and invokes the test method. + + Returns the time (in seconds) spent creating the test class, running + the test, and disposing of the test class. + + + + Invokes the test method on the given test class instance. This method sets up support for "async void" + test methods, ensures that the test method has the correct number of arguments, then calls + to do the actual method invocation. It ensure that any async test method is fully completed before returning, and + returns the measured clock time that the invocation took. + + The test class instance + Returns the time taken to invoke the test method + + + + A base class that provides default behavior when running tests in a test method. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test method under test. + The CLR class that contains the test method. + The CLR method that contains the tests to be run. + The test cases to be run. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the CLR class that contains the test method. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the CLR method that contains the tests to be run. + + + + + Gets or sets the test cases to be run. + + + + + Gets or sets the test method that contains the test cases. + + + + + This method is called just after is sent, but before any test cases are run. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the tests in the test method. + + Returns summary information about the tests that were run. + + + + Runs the list of test cases. By default, it runs the cases in order, synchronously. + + Returns summary information about the tests that were run. + + + + Override this method to run an individual test case. + + The test case to be run. + Returns summary information about the test case run. + + + + A base class that provides default behavior when running a test. This includes support + for skipping tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets or sets the exception aggregator used to run code and collect exceptions. + + + + + Gets or sets the task cancellation token source, used to cancel the test run. + + + + + Gets or sets the constructor arguments used to construct the test class. + + + + + Gets or sets the display name of the invoked test. + + + + + Gets or sets the message bus to report run status to. + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the test to be run. + + + + + Gets the test case to be run. + + + + + Gets or sets the runtime type of the class that contains the test method. + + + + + Gets or sets the runtime method of the method that contains the test. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + This method is called just after is sent, but before the test class is created. + This method should NEVER throw; any exceptions should be placed into the . + + + + + This method is called just before is sent. + This method should NEVER throw; any exceptions should be placed into the . + + + + + Runs the test. + + Returns summary information about the test that was run. + + + + Override this method to invoke the test. + + The exception aggregator used to run code and collect exceptions. + Returns a tuple which includes the execution time (in seconds) spent running the + test method, and any output that was returned by the test. + + + + The test assembly runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The assembly that contains the tests to be run. + The test cases to be run. + The message sink to report diagnostic messages to. + The message sink to report run status to. + The user's requested execution options. + + + + + + + + + + + + + Gets the synchronization context used when potentially running tests in parallel. + If is greater than 0, it creates + and uses an instance of . + + The maximum number of parallel threads. + + + + Ensures the assembly runner is initialized (sets up the collection behavior, + parallelization options, and test orderers from their assembly attributes). + + + + + + + + + + + + + + + + + The test case runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The arguments to be passed to the test method. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s that will be used for this test case. + + + + + Gets or sets the arguments passed to the test class constructor + + + + + Gets or sets the display name of the test case + + + + + Gets or sets the skip reason for the test, if set. + + + + + Gets or sets the runtime type for the test class that the test method belongs to. + + + + + Gets of sets the runtime method for the test method that the test case belongs to. + + + + + Gets or sets the arguments to pass to the test method when it's being invoked. + + + + + + + + The test class runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test class to be run. + The test class that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The mapping of collection fixture types to fixtures. + + + + Gets the fixture mappings that were created during . + + + + + Creates the instance of a class fixture type to be used by the test class. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + + + + + + + + + + + + + + + + + + + The test collection runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test collection that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages + The message bus to report run status to. + The test case orderer that will be used to decide how to order the test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the fixture mappings that were created during . + + + + + + + + + + + Creates the instance of a collection fixture type to be used by the test collection. If the fixture can be created, + it should be placed into the dictionary; if it cannot, then the method + should record the error by calling Aggregator.Add. + + The type of the fixture to be created + + + + Gives an opportunity to override test case orderer. By default, this method gets the + orderer from the collection definition. If this function returns null, the + test case orderer passed into the constructor will be used. + + + + + + + + The test invoker for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The list of s for this test invocation. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test invocation. + + + + + + + + + + + The test method runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test method to be run. + The test class that contains the test method. + The test method that contains the tests to be run. + The test cases to be run. + The message sink used to send diagnostic messages to. + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + The constructor arguments for the test class. + + + + + + + The test runner for xUnit.net v2 tests. + + + + + Initializes a new instance of the class. + + The test that this invocation belongs to. + The message bus to report run status to. + The test class that the test method belongs to. + The arguments to be passed to the test class constructor. + The test method that will be invoked. + The arguments to be passed to the test method. + The skip reason, if the test is to be skipped. + The list of s for this test. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + Gets the list of s for this test. + + + + + + + + Override this method to invoke the test method. + + The exception aggregator used to run code and collect exceptions. + Returns the execution time (in seconds) spent running the test method. + + + + The test case runner for xUnit.net v2 theories (which could not be pre-enumerated; + pre-enumerated test cases use ). + + + + + Initializes a new instance of the class. + + The test case to be run. + The display name of the test case. + The skip reason, if the test is to be skipped. + The arguments to be passed to the test class constructor. + The message sink used to send diagnostic messages + The message bus to report run status to. + The exception aggregator used to run code and collect exceptions. + The task cancellation token source, used to cancel the test run. + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly. + The optional configuration filename (defaults to the + configuration file of the current app domain if not provided) + The version number of the assembly (defaults to "0.0.0.0") + + + + + + + + + + Gets or sets the assembly version. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test collection the class belongs to + The test class + + + + + + + + + + + + + + + + An implementation of for . + Compares the fully qualified names of the types. + + + + + The singleton instance of the comparer. + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test assembly the collection belongs to + The optional type which contains the collection definition + The display name for the test collection + + + + + + + + + + + + + + + + + + + + + + An implementation of for . + Compares the IDs of the test collections. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A helper class that gets the list of test collection definitions for a given assembly. + Reports any misconfigurations of the test assembly via the diagnostic message sink. + + + + + Gets the test collection definitions for the given assembly. + + The assembly. + The message sink used to send diagnostic messages + A list of mappings from test collection name to test collection definitions (as + + + + A default implementation of that tracks objects to be + disposed when the framework is disposed. The discoverer and executor are automatically + tracked for disposal, since those interfaces mandate an implementation of . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Gets the message sink used to send diagnostic messages. + + + + + Gets the disposal tracker for the test framework. + + + + + + + + + + + Override this method to provide the implementation of . + + The assembly that is being discovered. + Returns the test framework discoverer. + + + + Override this method to provide the implementation of . + + The assembly that is being executed. + Returns the test framework executor. + + + + + + + + + + A base implementation of that supports test filtering + and runs the discovery process on a thread pool thread. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + + + + Gets the assembly that's being discovered. + + + + + Gets the message sink used to report diagnostic messages. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Get the source code information provider used during discovery. + + + + + + + + + + + Implement this method to create a test class for the given CLR type. + + The CLR type. + The test class. + + + + + + + + + + + + + Core implementation to discover unit tests in a given test class. + + The test class. + Set to true to attempt to include source information. + The message sink to send discovery messages to. + The options used by the test framework during discovery. + Returns true if discovery should continue; false otherwise. + + + + Determines if a type should be used for discovery. Can be used to filter out types that + are not desirable. The default implementation filters out abstract (non-static) classes. + + The type. + Returns true if the type can contain tests; false, otherwise. + + + + Reports a discovered test case to the message bus, after updating the source code information + (if desired). + + + + + + + + + + + + A reusable implementation of which contains the basic behavior + for running tests. + + The type of the test case used by the test framework. Must + derive from . + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the assembly information of the assembly under test. + + + + + Gets the message sink to send diagnostic messages to. + + + + + Gets the disposal tracker for the test framework discoverer. + + + + + Gets the source information provider. + + + + + Override to create a test framework discoverer that can be used to discover + tests when the user asks to run all test. + + The test framework discoverer + + + + + + + + + + + + + + + + Override to run test cases. + + The test cases to be run. + The message sink to report run status to. + The user's requested execution options. + + + + This class proxies for the real implementation of , based on + whether the user has overridden the choice via . If + no attribute is found, defaults to . + + + + + Initializes a new instance of the class. + + The test assembly (expected to implement ). + The source information provider (expected to implement ). + The diagnostic message sink (expected to implement ). + + + + Gets the test framework that's being wrapped by the proxy. + + + + + + + + + + + + + + + + + INTERNAL CLASS. DO NOT USE. + + + + + + + + + + + + + + The default implementation of . + + + + + + + + Initializes a new instance of the class. + + The test class + The test method + + + + + + + + + + + + + + + + An implementation of for . + Compares the names of the methods. + + + + + The singleton instance of the comparer. + + + + + + + + + + + A base class implementation of which is based on test cases being + related directly to test methods. + + + + + Used for de-serialization. + + + + + Initializes a new instance of the class. + + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Returns the base display name for a test ("TestClassName.MethodName"). + + + + + Returns the default method display to use (when not customized). + + + + + + + + + + + Gets the generic types that were used to close the generic test method, if + applicable; null, if the test method was not an open generic. + + + + + + + + + + + + + + + + + + + + + + + + + + Call to ensure the object is fully initialized(). + + + + + Gets the unique ID for the test case. + + + + Converts an array of bytes to its hexadecimal value as a string. + The bytes. + A string containing the hexademical representation of the provided bytes. + + + Gets a hexademical digit character from the 4-bit value. + A value in the range [0, 15]. + A character in the range ['0','9'] or ['a','f']. + + + + Called when initializing the test cases, either after constructor or de-serialization. + Override this method to add additional initialization-time work. + + + + + + + + + + + Default implementation of . + + + + + Gets the output provided by the test. + + + + + Initialize the test output helper with information about a test case. + + + + + Resets the test output helper to its uninitialized state. + + + + + + + + + + + Implementation of that supports finding test cases + on methods decorated with . + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + Creates a test case for a single row of data. By default, returns an instance of + with the data row inside of it. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The row of data for this test case. + The test case + + + + Creates a test case for a skipped theory. By default, returns an instance of + (which inherently discovers the skip reason via the fact attribute). + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The skip reason that decorates . + The test case + + + + Creates a test case for the entire theory. This is used when one or more of the theory data items + are not serializable, or if the user has requested to skip theory pre-enumeration. By default, + returns an instance of , which performs the data discovery at runtime. + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + The test case + + + + Discover test cases from a test method. + + + This method performs the following steps: + - If the theory attribute is marked with Skip, returns the single test case from ; + - If pre-enumeration is off, or any of the test data is non serializable, returns the single test case from ; + - If there is no theory data, returns a single test case of with the error in it; + - Otherwise, it returns one test case per data row, created by calling . + + The discovery options to be used. + The test method the test cases belong to. + The theory attribute attached to the test method. + Returns zero or more test cases represented by the test method. + + + + An implementation of for xUnit v2. + + + + + Initializes a new instance of the class. + + The test case this test belongs to. + The display name for this test. + + + + + + + Gets the xUnit v2 test case. + + + + + + + + Default implementation of for xUnit v2 that supports tests decorated with + both and . + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The test method this test case belongs to. + The arguments for the test method. + + + + Gets the display name for the test case. Calls + with the given base display name (which is itself either derived from , + falling back to . + + The fact attribute the decorated the test case. + The base display name from . + The display name for the test case. + + + + Gets the skip reason for the test case. By default, pulls the skip reason from the + property. + + The fact attribute the decorated the test case. + The skip reason, if skipped; null, otherwise. + + + + + + + + + + The implementation of that supports discovery and + execution of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + + + + + + + + + + The implementation of that supports discovery + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Gets the display name of the xUnit.net v2 test framework. + + + + + Initializes a new instance of the class. + + The test assembly. + The source information provider. + The message sink used to send diagnostic messages + The test collection factory used to look up test collections. + + + + Gets the test collection factory that makes test collections. + + + + + + + + Finds the tests on a test method. + + The test method. + Set to true to indicate that source information should be included. + The message bus to report discovery messages to. + The options used by the test framework during discovery. + Return true to continue test discovery, false, otherwise. + + + + + + + Gets the test case discover instance for the given discoverer type. The instances are cached + and reused, since they should not be stateful. + + The discoverer type. + Returns the test case discoverer instance. + + + + The implementation of that supports execution + of unit tests linked against xunit.core.dll, using xunit.execution.dll. + + + + + Initializes a new instance of the class. + + Name of the test assembly. + The source line number information provider. + The message sink to report diagnostic messages to. + + + + Gets the test assembly that contains the test. + + + + + + + + + + + Represents a test case which runs multiple tests for theory data, either because the + data was not enumerable or because the data was not serializable. + + + + + + + + Initializes a new instance of the class. + + The message sink used to send diagnostic messages + Default method display to use (when not customized). + The method under test. + + + + + + + An implementation of which runs work on custom threads + rather than in the thread pool, and limits the number of in-flight actions. + + + + + Initializes a new instance of the class. + + The maximum number of tasks to run at any one time. + + + + Gets a flag indicating whether maximum concurrency is supported. + + + + + + + + + + + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The message bus to delegate to. + The callback to send messages to. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. + + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + + + + + + + Implementation of that delegates to another implementation of + while calling into a callback for each message. In addition, + it issues a event when a message of the type + is seen. + + The type of the T final message. + + + + Initializes a new instance of the class. + + The inner message sink. + The callback. + + + + The final message that was seen that caused to be triggered. + + + + + An event that is triggered when a message of type is seen. + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + Initializes a new instance of the class. + + The assembly to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The attribute to be wrapped. + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The method to be wrapped. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The parameter to be wrapped. + + + + + + + + + + + + + Reflection-based implementation of . + + + + + Initializes a new instance of the class. + + The type to wrap. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrapper to implement types from xunit.abstractions.dll using reflection. + + + + + Converts arguments into their target types. Can be particularly useful when pulling attribute + constructor arguments, whose types may not strictly match the parameter types. + + The arguments to be converted. + The target types for the conversion. + The converted arguments. + + + + Converts an into an . + + The assembly to wrap. + The wrapper + + + + Converts an into an using reflection. + + The attribute to wrap. + The wrapper + + + + Converts a into an using reflection. + + The method to wrap + The wrapper + + + + Converts a into an using reflection. + + THe parameter to wrap + The wrapper + + + + Converts a into an using reflection. + + The type to wrap + The wrapper + + + + This is an internal class, and is not intended to be called from end-user code. + + + + + + + + + + + + + + Represents an exception that happened during the process of a test class. This typically + means there were problems identifying the correct test class constructor, or problems + creating the fixture data for the test class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + The implementation of that supports attributes + of type . + + + + + + + + A helper class to retrieve the traits from a method. + + + + + Get the traits from a method. + + The method to get the traits for. + A list of traits that are defined on the method. + + + + Extension methods for . + + + + + Formulates the extended portion of the display name for a test method. For tests with no arguments, this will + return just the base name; for tests with arguments, attempts to format the arguments and appends the argument + list to the test name. + + The test method + The base part of the display name + The test method arguments + The test method's generic types + The full display name for the test method + + + + Resolves a generic type for a test method. The test parameters (and associated parameter infos) are + used to determine the best matching generic type for the test method that can be satisfied by all + the generic parameters and their values. + + The generic type to be resolved + The parameter values being passed to the test method + The parameter infos for the test method + The best matching generic type + + + + Resolves all the generic types for a test method. The test parameters are used to determine + the best matching generic types for the test method that can be satisfied by all + the generic parameters and their values. + + The test method + The parameter values being passed to the test method + The best matching generic types + + + base implementation of MD4 family style digest as outlined in + "Handbook of Applied Cryptography", pages 344 - 347. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. + + It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 + is the "endianness" of the word processing! + + + + + + + Copy constructor. This will copy the state of the provided + message digest. + + + + + + + + + + + + reset the chaining variables + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of and . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message to send + + + + Initializes a new instance of the class. + + The format of the message to send + The arguments used to format the message + + + + + + + Default implementation of . + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + + + + Default implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets the substitution token used as assembly name suffix to indicate that the assembly is + a generalized reference to the platform-specific assembly. + + + + + A mirror class of the CLR's class. + + + + + Initializes a new instance of the class. + + The data to copy into the serialization info + + + + + + + + + + + + + Returns BASE64 encoded string that represents the entirety of the data. + + + + + Returns a triple for a key/value pair of data in a complex object + + The triple to be serialized + The serialized version of the triple + + + + Returns the triple values out of a serialized triple. + + The serialized triple + The de-serialized triple + + + + De-serializes a value that was serialized with . + + The type of the object to de-serialize into + The serialized value + The de-serialized object + + + + Serializes an object. + + The value to be serialized + The serialized object + + + + Represents a triple of information used when serializing complex types: the property name, + the value to be serialized, and the value's type. + + + + + Gets the triple's key + + + + + Gets the triple's value + + + + + Gets the triple's value type + + + + + Initializes a new instance of the class. + + The triple's key + The triple's value + The triple's value type + + + + Guard class, used for guard clauses and argument validation + + + + + + + + + + + + + + Methods which help bridge and contain the differences between Type and TypeInfo. + + + + + This class represents utility methods needed to supplement the + reflection capabilities provided by the CLR + + + + + Creates an instance of the test class for the given test case. Sends the + and messages as appropriate. + + The test + The type of the test class + The constructor arguments for the test class + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + + Disposes the test class instance. Sends the and + messages as appropriate. + + The test + The test class instance to be disposed + The message bus used to send the test messages + The timer used to measure the time taken for construction + The cancellation token source + + + + Gets methods in the target type that match the protection level of the supplied method + + The type + The method + The reflection method informations that match + + + + Gets all the custom attributes for the given assembly. + + The assembly + The type of the attribute + The matching attributes that decorate the assembly + + + + Gets all the custom attributes for the given attribute. + + The attribute + The type of the attribute to find + The matching attributes that decorate the attribute + + + + Gets all the custom attributes for the method that are of the given type. + + The method + The type of the attribute + The matching attributes that decorate the method + + + + Gets all the custom attributes for the given type. + + The type + The type of the attribute + The matching attributes that decorate the type + + + + Converts an into a , if possible (for example, this + will not work when the test method is based on source code rather than binaries). + + The method to convert + The runtime method, if available; null, otherwise + + + + Converts an into a , if possible (for example, this + will not work when the test class is based on source code rather than binaries). + + The type to convert + The runtime type, if available, null, otherwise + + + + Extension methods for reading and . + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not present, + returns the default value (false). + + + + + Gets a flag that determines the default display name format for test methods. + + + + + Gets a flag that determines the default display name format for test methods. If the flag is not present, + returns the default value (). + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. + + + + + Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the + discovery system will return a test case for each row of test data; they are disabled, then the + discovery system will return a single test case for the theory. If the flag is not present, + returns the default value (true). + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + + Gets a flag that determines whether diagnostic messages will be emitted. + + + + + Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not + present, returns the default value (false). + + + + + Gets a flag to disable parallelization. + + + + + Gets a flag to disable parallelization. If the flag is not present, returns the + default value (false). + + + + + Gets the maximum number of threads to use when running tests in parallel. + + + + + Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), + the value of is used; if set to a value less + than 0, does not limit the number of threads. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + + + + + Gets a flag that determines whether xUnit.net should report test results synchronously. + If the flag is not set, returns the default value (false). + + + + diff --git a/packages/xunit.extensibility.execution.2.1.0/xunit.extensibility.execution.2.1.0.nupkg b/packages/xunit.extensibility.execution.2.1.0/xunit.extensibility.execution.2.1.0.nupkg new file mode 100644 index 0000000..14a3ee8 Binary files /dev/null and b/packages/xunit.extensibility.execution.2.1.0/xunit.extensibility.execution.2.1.0.nupkg differ diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/monoandroid/_._ b/packages/xunit.runner.visualstudio.2.1.0/build/monoandroid/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/monotouch/_._ b/packages/xunit.runner.visualstudio.2.1.0/build/monotouch/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/net20/xunit.runner.visualstudio.props b/packages/xunit.runner.visualstudio.2.1.0/build/net20/xunit.runner.visualstudio.props new file mode 100644 index 0000000..51f564a --- /dev/null +++ b/packages/xunit.runner.visualstudio.2.1.0/build/net20/xunit.runner.visualstudio.props @@ -0,0 +1,20 @@ + + + + + xunit.runner.visualstudio.testadapter.dll + PreserveNewest + False + + + xunit.runner.utility.desktop.dll + PreserveNewest + False + + + xunit.abstractions.dll + PreserveNewest + False + + + \ No newline at end of file diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/portable-net45+win8+wp8+wpa81/xunit.runner.visualstudio.props b/packages/xunit.runner.visualstudio.2.1.0/build/portable-net45+win8+wp8+wpa81/xunit.runner.visualstudio.props new file mode 100644 index 0000000..12a4b0c --- /dev/null +++ b/packages/xunit.runner.visualstudio.2.1.0/build/portable-net45+win8+wp8+wpa81/xunit.runner.visualstudio.props @@ -0,0 +1,15 @@ + + + + + xunit.runner.visualstudio.testadapter.dll + PreserveNewest + False + + + xunit.runner.utility.desktop.dll + PreserveNewest + False + + + \ No newline at end of file diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.props b/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.props new file mode 100644 index 0000000..12a4b0c --- /dev/null +++ b/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.props @@ -0,0 +1,15 @@ + + + + + xunit.runner.visualstudio.testadapter.dll + PreserveNewest + False + + + xunit.runner.utility.desktop.dll + PreserveNewest + False + + + \ No newline at end of file diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.targets b/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.targets new file mode 100644 index 0000000..7a67c02 --- /dev/null +++ b/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.targets @@ -0,0 +1,20 @@ + + + + + + xunit.runner.visualstudio.uwp.dll + + + xunit.runner.visualstudio.uwp.pri + + + xunit.runner.utility.dotnet.dll + + + + + + + + diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.uwp.pri b/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.uwp.pri new file mode 100644 index 0000000..13fd4ca Binary files /dev/null and b/packages/xunit.runner.visualstudio.2.1.0/build/uap10.0/xunit.runner.visualstudio.uwp.pri differ diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/win8/_._ b/packages/xunit.runner.visualstudio.2.1.0/build/win8/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.props b/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.props new file mode 100644 index 0000000..12a4b0c --- /dev/null +++ b/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.props @@ -0,0 +1,15 @@ + + + + + xunit.runner.visualstudio.testadapter.dll + PreserveNewest + False + + + xunit.runner.utility.desktop.dll + PreserveNewest + False + + + \ No newline at end of file diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.targets b/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.targets new file mode 100644 index 0000000..72269f1 --- /dev/null +++ b/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.targets @@ -0,0 +1,20 @@ + + + + + + xunit.runner.visualstudio.win81.dll + + + xunit.runner.visualstudio.win81.pri + + + xunit.runner.utility.dotnet.dll + + + + + + + + diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.win81.pri b/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.win81.pri new file mode 100644 index 0000000..a7751ae Binary files /dev/null and b/packages/xunit.runner.visualstudio.2.1.0/build/win81/xunit.runner.visualstudio.win81.pri differ diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/wp8/_._ b/packages/xunit.runner.visualstudio.2.1.0/build/wp8/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.props b/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.props new file mode 100644 index 0000000..12a4b0c --- /dev/null +++ b/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.props @@ -0,0 +1,15 @@ + + + + + xunit.runner.visualstudio.testadapter.dll + PreserveNewest + False + + + xunit.runner.utility.desktop.dll + PreserveNewest + False + + + \ No newline at end of file diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.targets b/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.targets new file mode 100644 index 0000000..01865e0 --- /dev/null +++ b/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.targets @@ -0,0 +1,20 @@ + + + + + + xunit.runner.visualstudio.wpa81.dll + + + xunit.runner.visualstudio.wpa81.pri + + + xunit.runner.utility.dotnet.dll + + + + + + + + diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.wpa81.pri b/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.wpa81.pri new file mode 100644 index 0000000..41fab58 Binary files /dev/null and b/packages/xunit.runner.visualstudio.2.1.0/build/wpa81/xunit.runner.visualstudio.wpa81.pri differ diff --git a/packages/xunit.runner.visualstudio.2.1.0/build/xamarinios/_._ b/packages/xunit.runner.visualstudio.2.1.0/build/xamarinios/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/xunit.runner.visualstudio.2.1.0/xunit.runner.visualstudio.2.1.0.nupkg b/packages/xunit.runner.visualstudio.2.1.0/xunit.runner.visualstudio.2.1.0.nupkg new file mode 100644 index 0000000..919bfc7 Binary files /dev/null and b/packages/xunit.runner.visualstudio.2.1.0/xunit.runner.visualstudio.2.1.0.nupkg differ