diff --git a/ModeliRpc/CapnConvert/CapnConvert.vcxitems b/ModeliRpc/CapnConvert/CapnConvert.vcxitems new file mode 100644 index 0000000000000000000000000000000000000000..04f589fa6999776e3740421b5adba233177adc99 --- /dev/null +++ b/ModeliRpc/CapnConvert/CapnConvert.vcxitems @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Label="Globals"> + <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> + <HasSharedItems>true</HasSharedItems> + <ItemsProjectGuid>{085c4931-4962-4fbf-b2cc-e436ffedc310}</ItemsProjectGuid> + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories> + </ClCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ProjectCapability Include="SourceItemsFromImports" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/ModeliRpc/ModeliRpc.sln b/ModeliRpc/ModeliRpc.sln new file mode 100644 index 0000000000000000000000000000000000000000..bbfe37dc7fd54be18d820cfe2c43bb0dbdde43ac --- /dev/null +++ b/ModeliRpc/ModeliRpc.sln @@ -0,0 +1,41 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2003 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModeliRpcCLR", "ModeliRpcCLR\ModeliRpcCLR.vcxproj", "{A8187A41-1D24-438F-9B5D-0F7BF270130E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModeliRpcNative", "ModeliRpcNative\ModeliRpcNative.vcxproj", "{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x64.ActiveCfg = Debug|x64 + {A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x64.Build.0 = Debug|x64 + {A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x86.ActiveCfg = Debug|Win32 + {A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x86.Build.0 = Debug|Win32 + {A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x64.ActiveCfg = Release|x64 + {A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x64.Build.0 = Release|x64 + {A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x86.ActiveCfg = Release|Win32 + {A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x86.Build.0 = Release|Win32 + {171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x64.ActiveCfg = Debug|x64 + {171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x64.Build.0 = Debug|x64 + {171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x86.ActiveCfg = Debug|Win32 + {171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x86.Build.0 = Debug|Win32 + {171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x64.ActiveCfg = Release|x64 + {171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x64.Build.0 = Release|x64 + {171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x86.ActiveCfg = Release|Win32 + {171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E1F47424-6A4D-43F9-982C-D5C9154CA77F} + EndGlobalSection +EndGlobal diff --git a/ModeliRpc/ModeliRpcCLR/AssemblyInfo.cpp b/ModeliRpc/ModeliRpcCLR/AssemblyInfo.cpp new file mode 100644 index 0000000000000000000000000000000000000000..dbcb8d2a442816e3d170f7c0d989dd85c7305bc5 --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/AssemblyInfo.cpp @@ -0,0 +1,38 @@ +#include "stdafx.h" + +using namespace System; +using namespace System::Reflection; +using namespace System::Runtime::CompilerServices; +using namespace System::Runtime::InteropServices; +using namespace System::Security::Permissions; + +// +// 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:AssemblyTitleAttribute(L"ModeliRpcCLR")]; +[assembly:AssemblyDescriptionAttribute(L"")]; +[assembly:AssemblyConfigurationAttribute(L"")]; +[assembly:AssemblyCompanyAttribute(L"")]; +[assembly:AssemblyProductAttribute(L"ModeliRpcCLR")]; +[assembly:AssemblyCopyrightAttribute(L"Copyright (c) 2017")]; +[assembly:AssemblyTrademarkAttribute(L"")]; +[assembly:AssemblyCultureAttribute(L"")]; + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the value or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly:AssemblyVersionAttribute("1.0.*")]; + +[assembly:ComVisible(false)]; + +[assembly:CLSCompliantAttribute(true)]; \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcCLR/ModeliRpc.cpp b/ModeliRpc/ModeliRpcCLR/ModeliRpc.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c8329dd6912d1df86793e5aaafc1e7f1afc48476 --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/ModeliRpc.cpp @@ -0,0 +1,67 @@ +#include "stdafx.h" +#include "ModeliRpc.h" +#include "msclr/marshal_cppstd.h" + +using namespace msclr::interop; +using namespace System::Runtime::InteropServices; + +namespace ModeliRpcImpl +{ + ModeliRpcImpl::ModeliRpcImpl(String^ address, int port) + { + // Managed callbacks + _newValues = gcnew NewValuesDelegate(this, &ModeliRpcImpl::onNewValues); + _log = gcnew LogDelegate(this, &ModeliRpcImpl::onLog); + // Load the unmanged instance + HINSTANCE _rpcDll = LoadLibrary("ModeliRpcNative.dll"); + if (!_rpcDll) + { + throw gcnew Exception("Unable to load ModeliRpcNative.dll!"); + } + createRpcFrontendType createRpcFrontend = reinterpret_cast<createRpcFrontendType>(GetProcAddress(_rpcDll, "create_klass")); + if (!createRpcFrontend) + { + FreeLibrary(_rpcDll); + throw gcnew Exception("Unable to load createRpcFrontend from DLL!"); + } + _rpcFrontend = createRpcFrontend(); + // Register callbacks + _rpcFrontend->registerCallbacks( + static_cast<NewValuesCallback>(Marshal::GetFunctionPointerForDelegate(_newValues).ToPointer()), + static_cast<LogCallback>(Marshal::GetFunctionPointerForDelegate(_log).ToPointer())); + // Connect + _rpcFrontend->connect(marshal_as<std::string>(address), port); + + } + + ModeliRpcImpl::~ModeliRpcImpl() + { + // Call the finalizer + this->!ModeliRpcImpl(); + } + ModeliRpcImpl::!ModeliRpcImpl() + { + // Clear all unmanaged resources + if (_rpcFrontend) + { + _rpcFrontend->destroy(); + } + if (_rpcDll) + { + FreeLibrary(_rpcDll); + } + } + + void ModeliRpcImpl::onNewValues(double timestamp, ValuesStruct values) + { + throw gcnew System::NotImplementedException(); + } + + void ModeliRpcImpl::onLog(std::string instanceName, fmi2Status status, std::string message) + { + throw gcnew System::NotImplementedException(); + } + + + +} \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcCLR/ModeliRpc.h b/ModeliRpc/ModeliRpcCLR/ModeliRpc.h new file mode 100644 index 0000000000000000000000000000000000000000..c7a1f9d5c4625a38128a85726c1a3420a43d0679 --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/ModeliRpc.h @@ -0,0 +1,43 @@ +#pragma once +#include"../ModeliRpcNative/IRpcFrontend.h" +#include <string> +#ifndef VC_EXTRALEAN +#define VC_EXTRALEAN +#endif +#include <windows.h> + +using namespace System; + +typedef IRpcFrontend* (*createRpcFrontendType)(); + +namespace capnp +{ + class EzRpcClient; +} + +namespace ModeliRpcImpl +{ + ref class ModeliRpcImpl + { + private: + // Unmanaged rpc interface + IRpcFrontend* _rpcFrontend; + // The native project exports a dll to hide the rpc framework + HMODULE _rpcDll; + + // Delegates for callbacks + delegate void NewValuesDelegate(double timestamp, ValuesStruct values); + delegate void LogDelegate(std::string instanceName, fmi2Status status, std::string message); + NewValuesDelegate^ _newValues; + LogDelegate^ _log; + + // Functions for the delegates + void onNewValues(double timestamp, ValuesStruct values); + void onLog(std::string instanceName, fmi2Status status, std::string message); + + public: + ModeliRpcImpl(String^ address, int port); + ~ModeliRpcImpl(); // Destructor (IDisposable) + !ModeliRpcImpl(); // Finalizer + }; +} \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj b/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..ab51d943bee78e7bf6991321d8f58104df52e0bc --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <VCProjectVersion>15.0</VCProjectVersion> + <ProjectGuid>{A8187A41-1D24-438F-9B5D-0F7BF270130E}</ProjectGuid> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <Keyword>ManagedCProj</Keyword> + <RootNamespace>ModeliRpcCLR</RootNamespace> + <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <CLRSupport>true</CLRSupport> + <CharacterSet>NotSet</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <CLRSupport>true</CLRSupport> + <CharacterSet>NotSet</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <CLRSupport>true</CLRSupport> + <CharacterSet>NotSet</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <CLRSupport>true</CLRSupport> + <CharacterSet>NotSet</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared" /> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeader>Use</PrecompiledHeader> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories> + </AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeader>Use</PrecompiledHeader> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories> + </AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeader>Use</PrecompiledHeader> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories> + </AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeader>Use</PrecompiledHeader> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories> + </AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="ModeliRpc.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="Stdafx.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="AssemblyInfo.cpp" /> + <ClCompile Include="ModeliRpc.cpp" /> + <ClCompile Include="Stdafx.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="app.rc" /> + </ItemGroup> + <ItemGroup> + <Image Include="app.ico" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\ModeliRpcNative\ModeliRpcNative.vcxproj"> + <Project>{171ed599-c0c6-4342-8328-e7abe7f7feaa}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj.filters b/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..1a04e777243f92a1a9f00dd44c161294c7f27a82 --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj.filters @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="Stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ModeliRpc.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="AssemblyInfo.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ModeliRpc.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="app.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <Image Include="app.ico"> + <Filter>Resource Files</Filter> + </Image> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcCLR/ReadMe.txt b/ModeliRpc/ModeliRpcCLR/ReadMe.txt new file mode 100644 index 0000000000000000000000000000000000000000..608f7492c1aeeceb2cb280fdae260b6475b58a99 --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/ReadMe.txt @@ -0,0 +1,38 @@ +======================================================================== + DYNAMIC LINK LIBRARY : ModeliRpcCLR Project Overview +======================================================================== + +AppWizard has created this ModeliRpcCLR DLL for you. + +This file contains a summary of what you will find in each of the files that +make up your ModeliRpcCLR application. + +ModeliRpcCLR.vcxproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +ModeliRpcCLR.vcxproj.filters + This is the filters file for VC++ projects generated using an Application Wizard. + It contains information about the association between the files in your project + and the filters. This association is used in the IDE to show grouping of files with + similar extensions under a specific node (for e.g. ".cpp" files are associated with the + "Source Files" filter). + +ModeliRpcCLR.cpp + This is the main DLL source file. + +ModeliRpcCLR.h + This file contains a class declaration. + +AssemblyInfo.cpp + Contains custom attributes for modifying assembly metadata. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/ModeliRpc/ModeliRpcCLR/Stdafx.cpp b/ModeliRpc/ModeliRpcCLR/Stdafx.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ddd6528df2ed0a3e59344cd29e08750570da3c66 --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/Stdafx.cpp @@ -0,0 +1,5 @@ +// stdafx.cpp : source file that includes just the standard includes +// ModeliRpcCLR.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" diff --git a/ModeliRpc/ModeliRpcCLR/Stdafx.h b/ModeliRpc/ModeliRpcCLR/Stdafx.h new file mode 100644 index 0000000000000000000000000000000000000000..3cc4c24ef9fa8b939c60763a015898bc45a84009 --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/Stdafx.h @@ -0,0 +1,7 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, +// but are changed infrequently + +#pragma once + + diff --git a/ModeliRpc/ModeliRpcCLR/app.ico b/ModeliRpc/ModeliRpcCLR/app.ico new file mode 100644 index 0000000000000000000000000000000000000000..789d7ccbb56ed92f1bb005054ec7e67257ddc37e Binary files /dev/null and b/ModeliRpc/ModeliRpcCLR/app.ico differ diff --git a/ModeliRpc/ModeliRpcCLR/app.rc b/ModeliRpc/ModeliRpcCLR/app.rc new file mode 100644 index 0000000000000000000000000000000000000000..63ac7d2d9151530cfa80831a78bc496f8bcf237e Binary files /dev/null and b/ModeliRpc/ModeliRpcCLR/app.rc differ diff --git a/ModeliRpc/ModeliRpcCLR/resource.h b/ModeliRpc/ModeliRpcCLR/resource.h new file mode 100644 index 0000000000000000000000000000000000000000..d5ac7c42aa08621a84006d54a017215e11edf05d --- /dev/null +++ b/ModeliRpc/ModeliRpcCLR/resource.h @@ -0,0 +1,3 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by app.rc diff --git a/ModeliRpc/ModeliRpcNative/CapnConverter.cpp b/ModeliRpc/ModeliRpcNative/CapnConverter.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fa6ef93968accdbc4f8282fca7a28b6b4817e808 --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/CapnConverter.cpp @@ -0,0 +1,142 @@ +#include "stdafx.h" +#include "CapnConverter.h" +#include "capnp/message.h" + +CapnConverter::CapnConverter() +{ +} + + +CapnConverter::~CapnConverter() +{ +} + +ValuesStruct CapnConverter::convertValues(Values::Reader reader) +{ + // Read the data into std types + std::string instanceName = reader.getInstanceName(); + + // int + std::vector<uint32_t> intVrs; + for (auto element : reader.getIntegerValueRefs()) + { + intVrs.push_back(element); + } + std::vector<int32_t> intValues; + for (auto element : reader.getIntegerValues()) + { + intValues.push_back(element); + } + // real + std::vector<uint32_t> realVrs; + for (auto element : reader.getRealValueRefs()) + { + realVrs.push_back(element); + } + std::vector<double> realValues; + for (auto element : reader.getRealValues()) + { + realValues.push_back(element); + } + // bool + std::vector<uint32_t> boolVrs; + for (auto element : reader.getBoolValueRefs()) + { + boolVrs.push_back(element); + } + std::vector<bool> boolValues; + for (auto element : reader.getBoolValues()) + { + boolValues.push_back(element); + } + // string + std::vector<uint32_t> stringVrs; + for (auto element : reader.getStringValueRefs()) + { + stringVrs.push_back(element); + } + std::vector<std::string> stringValues; + for (auto textReader : reader.getStringValues()) + { + // std copy does not work because we have to convert the textreader implicity + stringValues.push_back(textReader); + } + // assemble + return ValuesStruct{ + instanceName, + intVrs, + intValues, + realVrs, + realValues, + boolVrs, + boolValues, + stringVrs, + stringValues + }; +} + +Values::Builder CapnConverter::convertValues(ValuesStruct values) +{ + capnp::MallocMessageBuilder builder; + auto retVal = builder.initRoot<Values>(); + retVal.setInstanceName(values.instanceName); + + // int + auto intVrs = retVal.initIntegerValueRefs(values.integerValueRefs.size()); + for (int i = 0; i < intVrs.size(); i++) + { + intVrs.set(i, values.integerValueRefs[i]); + } + auto intValues = retVal.initIntegerValues(values.integerValues.size()); + for (int i = 0; i < intValues.size(); i++) + { + intValues.set(i, values.integerValues[i]); + } + // real + auto realVrs = retVal.initRealValueRefs(values.realValueRefs.size()); + for (int i = 0; i < realVrs.size(); i++) + { + realVrs.set(i, values.realValueRefs[i]); + } + auto realValues = retVal.initRealValues(values.realValues.size()); + for (int i = 0; i < realValues.size(); i++) + { + realValues.set(i, values.realValues[i]); + } + // bool + auto boolVrs = retVal.initBoolValueRefs(values.boolValueRefs.size()); + for (int i = 0; i < boolVrs.size(); i++) + { + boolVrs.set(i, values.boolValueRefs[i]); + } + auto boolValues = retVal.initBoolValues(values.boolValues.size()); + for (int i = 0; i < boolValues.size(); i++) + { + boolValues.set(i, values.boolValues[i]); + } + // string + auto stringVrs = retVal.initStringValueRefs(values.stringValueRefs.size()); + for (int i = 0; i < stringVrs.size(); i++) + { + stringVrs.set(i, values.stringValueRefs[i]); + } + auto stringValues = retVal.initStringValues(values.stringValues.size()); + for (int i = 0; i < stringValues.size(); i++) + { + stringValues.set(i, values.stringValues[i]); + } + return retVal; +} + +ModeliBackend::ChannelLink::Builder CapnConverter::convertChannelLink(ChannelLink channelLink) +{ + capnp::MallocMessageBuilder builder; + auto retVal = builder.initRoot<ModeliBackend::ChannelLink>(); + retVal.setMasterInstanceName(channelLink.masterInstanceName); + retVal.setSlaveInstanceName(channelLink.slaveInstanceName); + retVal.setMasterValueRef(channelLink.masterValueRef); + retVal.setSlaveValueRef(channelLink.slaveValueRef); + retVal.setFactor(channelLink.factor); + retVal.setOffset(channelLink.offset); + return retVal; +} diff --git a/ModeliRpc/ModeliRpcNative/CapnConverter.h b/ModeliRpc/ModeliRpcNative/CapnConverter.h new file mode 100644 index 0000000000000000000000000000000000000000..e186717f7f6f660da544ac180c4e2ab98200bf7d --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/CapnConverter.h @@ -0,0 +1,18 @@ +#pragma once +#include <string> +#include <vector> +#include "ModeliRpc.capnp.h" +#include "IRpcFrontend.h" + +/// Several helper methods to convert our capn protocol +class CapnConverter +{ +public: + CapnConverter(); + ~CapnConverter(); + + static ValuesStruct convertValues(Values::Reader reader); + static Values::Builder convertValues(ValuesStruct values); + static ModeliBackend::ChannelLink::Builder convertChannelLink(ChannelLink channelLink); +}; + diff --git a/ModeliRpc/ModeliRpcNative/IRpcFrontend.h b/ModeliRpc/ModeliRpcNative/IRpcFrontend.h new file mode 100644 index 0000000000000000000000000000000000000000..df53ffd9d1e43f0e631035ac23e829bb0a7612f3 --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/IRpcFrontend.h @@ -0,0 +1,63 @@ +#pragma once +#include <string> +#include <vector> + +enum fmi2Status +{ + fmi2OK, + fmi2Warning, + fmi2Discard, + fmi2Error, + fmi2Fatal, + fmi2Pending +}; + +// Struct that will be used for the NewValues callback +struct ValuesStruct +{ + std::string instanceName; + std::vector<uint32_t> integerValueRefs; + std::vector<int32_t> integerValues; + std::vector<uint32_t> realValueRefs; + std::vector<double> realValues; + std::vector<uint32_t> boolValueRefs; + std::vector<bool> boolValues; + std::vector<uint32_t> stringValueRefs; + std::vector<std::string> stringValues; +}; + +// Definition of a channel link +struct ChannelLink +{ + std::string masterInstanceName; + std::string slaveInstanceName; + uint32_t masterValueRef; + uint32_t slaveValueRef; + double factor; + double offset; +}; + +// Callback definitions shall be easy to marshall +typedef void(__stdcall *NewValuesCallback)(double timestamp, ValuesStruct values); +typedef void(__stdcall *LogCallback)(std::string instanceName, int status, std::string message); + + +/// This interface hides the rpc (framework) implementation. +/// We can compile a pure native library and do not have to worry about CLI compiler errors. +class IRpcFrontend +{ +public: + virtual void destroy() = 0; + virtual void connect(std::string address, int port) = 0; + virtual void registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback) = 0; + virtual fmi2Status play() = 0; + virtual void pause() = 0; + virtual fmi2Status stop() = 0; + virtual bool addFmu(std::string instanceName, std::vector<unsigned char> fmuFile) = 0; + virtual bool removeFmu(std::string instanceName) = 0; + virtual bool addChannelLink(ChannelLink channelLink) = 0; + virtual bool removeChannelink(ChannelLink channelLink) = 0; + virtual fmi2Status setValues(ValuesStruct values) = 0; +}; +// Factory signature +extern "C" __declspec(dllexport) IRpcFrontend* createRpcFrontend(); \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d456bc21f38694f954b56dc2ec2ab337be30ae35 --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp @@ -0,0 +1,27 @@ +#include "stdafx.h" +#include "ModeliFrontendImpl.h" +#include "CapnConverter.h" + + +ModeliFrontendImpl::ModeliFrontendImpl(NewValuesCallback newValuesCallback, LogCallback logCallback) : + _newValuesCallback(newValuesCallback), _logCallback(logCallback) +{ +} + +ModeliFrontendImpl::~ModeliFrontendImpl() +{ +} + +kj::Promise<void> ModeliFrontendImpl::newValues(NewValuesContext context) +{ + _newValuesCallback(context.getParams().getTimestamp(), CapnConverter::convertValues(context.getParams().getValues())); + // Return to client + return kj::READY_NOW; +} + +kj::Promise<void> ModeliFrontendImpl::log(LogContext context) +{ + _logCallback(context.getParams().getInstanceName(), context.getParams().getStatus(), context.getParams().getMessage()); + // Return to client + return kj::READY_NOW; +} diff --git a/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h new file mode 100644 index 0000000000000000000000000000000000000000..94a3c313b44a2bc1b611308c22167accda77969d --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h @@ -0,0 +1,21 @@ +#pragma +#include "ModeliRpc.capnp.h" +#include "IRpcFrontend.h" +#include <string> +#include <vector> + + +/// This class serves as a forwarder of the callbacks. +class ModeliFrontendImpl final : public ModeliFrontend::Server +{ +private: + NewValuesCallback _newValuesCallback; + LogCallback _logCallback; +public: + ModeliFrontendImpl(NewValuesCallback newValuesCallback, LogCallback logCallback); + ~ModeliFrontendImpl(); + + // Overrides of the ModeliFrontend::Server interface + kj::Promise<void> newValues(NewValuesContext context) override; + kj::Promise<void> log(LogContext context) override; +}; diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ new file mode 100644 index 0000000000000000000000000000000000000000..d483ef74e12d2169ef8db07cb90562a6c405f022 --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ @@ -0,0 +1,2015 @@ +// Generated by Cap'n Proto compiler, DO NOT EDIT +// source: ModeliRpc.capnp + +#include "ModeliRpc.capnp.h" + +namespace capnp { +namespace schemas { +static const ::capnp::_::AlignedData<131> b_c189361aa8d3ec0a = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 10, 236, 211, 168, 26, 54, 137, 193, + 16, 0, 0, 0, 3, 0, 0, 0, + 165, 163, 90, 206, 176, 102, 17, 181, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 242, 0, 0, 0, + 33, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 45, 0, 0, 0, 135, 2, 0, 0, + 221, 1, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 0, 0, 0, + 4, 0, 0, 0, 1, 0, 1, 0, + 84, 43, 232, 178, 87, 193, 8, 174, + 1, 0, 0, 0, 98, 0, 0, 0, + 67, 104, 97, 110, 110, 101, 108, 76, + 105, 110, 107, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 3, 0, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 5, 56, 43, 188, 82, 153, 97, 235, + 47, 7, 46, 236, 44, 131, 92, 147, + 49, 1, 0, 0, 42, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 37, 1, 0, 0, 7, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 254, 246, 209, 214, 117, 135, 213, 146, + 88, 61, 155, 234, 21, 143, 231, 220, + 25, 1, 0, 0, 74, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 17, 1, 0, 0, 7, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, + 62, 4, 3, 50, 160, 227, 99, 146, + 93, 181, 195, 175, 214, 105, 123, 142, + 5, 1, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 249, 0, 0, 0, 7, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 214, 231, 151, 231, 56, 111, 46, 131, + 78, 71, 200, 119, 21, 194, 180, 201, + 237, 0, 0, 0, 42, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 225, 0, 0, 0, 7, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, + 24, 58, 213, 67, 42, 183, 62, 206, + 255, 190, 93, 229, 238, 75, 112, 148, + 213, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 201, 0, 0, 0, 7, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0, + 159, 204, 110, 218, 169, 177, 82, 163, + 219, 213, 116, 86, 27, 175, 202, 134, + 189, 0, 0, 0, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 181, 0, 0, 0, 7, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, + 103, 126, 58, 227, 215, 186, 36, 255, + 22, 199, 152, 43, 178, 255, 212, 138, + 169, 0, 0, 0, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 161, 0, 0, 0, 7, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, + 11, 111, 14, 62, 127, 221, 158, 135, + 202, 134, 214, 251, 109, 26, 175, 152, + 149, 0, 0, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 0, 0, 7, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 45, 233, 149, 52, 53, 158, 225, 128, + 60, 226, 78, 51, 53, 87, 35, 233, + 133, 0, 0, 0, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 125, 0, 0, 0, 7, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, + 162, 164, 186, 153, 85, 94, 47, 195, + 234, 153, 155, 234, 247, 207, 135, 176, + 113, 0, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 109, 0, 0, 0, 7, 0, 0, 0, + 112, 108, 97, 121, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 112, 108, 97, 121, 70, 97, 115, 116, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 112, 97, 117, 115, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 115, 116, 111, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 97, 100, 100, 70, 109, 117, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 114, 101, 109, 111, 118, 101, 70, 109, + 117, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 97, 100, 100, 67, 104, 97, 110, 110, + 101, 108, 76, 105, 110, 107, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 114, 101, 109, 111, 118, 101, 67, 104, + 97, 110, 110, 101, 108, 76, 105, 110, + 107, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 115, 101, 116, 86, 97, 108, 117, 101, + 115, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 114, 101, 103, 105, 115, 116, 101, 114, + 70, 114, 111, 110, 116, 101, 110, 100, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, 1, 0, } +}; +::capnp::word const* const bp_c189361aa8d3ec0a = b_c189361aa8d3ec0a.words; +#if !CAPNP_LITE +static const ::capnp::_::RawSchema* const d_c189361aa8d3ec0a[] = { + &s_80e19e353495e92d, + &s_832e6f38e797e7d6, + &s_86caaf1b5674d5db, + &s_879edd7f3e0e6f0b, + &s_8ad4ffb22b98c716, + &s_8e7b69d6afc3b55d, + &s_9263e3a03203043e, + &s_92d58775d6d1f6fe, + &s_935c832cec2e072f, + &s_94704beee55dbeff, + &s_98af1a6dfbd686ca, + &s_a352b1a9da6ecc9f, + &s_b087cff7ea9b99ea, + &s_c32f5e5599baa4a2, + &s_c9b4c21577c8474e, + &s_ce3eb72a43d53a18, + &s_dce78f15ea9b3d58, + &s_e9235735334ee23c, + &s_eb619952bc2b3805, + &s_ff24bad7e33a7e67, +}; +static const uint16_t m_c189361aa8d3ec0a[] = {6, 4, 2, 0, 1, 9, 7, 5, 8, 3}; +const ::capnp::_::RawSchema s_c189361aa8d3ec0a = { + 0xc189361aa8d3ec0a, b_c189361aa8d3ec0a.words, 131, d_c189361aa8d3ec0a, m_c189361aa8d3ec0a, + 20, 10, nullptr, nullptr, nullptr, { &s_c189361aa8d3ec0a, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<116> b_ae08c157b2e82b54 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 84, 43, 232, 178, 87, 193, 8, 174, + 30, 0, 0, 0, 1, 0, 3, 0, + 10, 236, 211, 168, 26, 54, 137, 193, + 2, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 82, 1, 0, 0, + 41, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 37, 0, 0, 0, 87, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 67, 104, + 97, 110, 110, 101, 108, 76, 105, 110, + 107, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, + 24, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 153, 0, 0, 0, 154, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 0, 0, 3, 0, 1, 0, + 168, 0, 0, 0, 2, 0, 1, 0, + 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 165, 0, 0, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 168, 0, 0, 0, 3, 0, 1, 0, + 180, 0, 0, 0, 2, 0, 1, 0, + 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 177, 0, 0, 0, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 176, 0, 0, 0, 3, 0, 1, 0, + 188, 0, 0, 0, 2, 0, 1, 0, + 3, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 185, 0, 0, 0, 114, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 184, 0, 0, 0, 3, 0, 1, 0, + 196, 0, 0, 0, 2, 0, 1, 0, + 4, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 193, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 188, 0, 0, 0, 3, 0, 1, 0, + 200, 0, 0, 0, 2, 0, 1, 0, + 5, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 1, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 197, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 0, 3, 0, 1, 0, + 204, 0, 0, 0, 2, 0, 1, 0, + 109, 97, 115, 116, 101, 114, 73, 110, + 115, 116, 97, 110, 99, 101, 78, 97, + 109, 101, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 115, 108, 97, 118, 101, 73, 110, 115, + 116, 97, 110, 99, 101, 78, 97, 109, + 101, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 109, 97, 115, 116, 101, 114, 86, 97, + 108, 117, 101, 82, 101, 102, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 115, 108, 97, 118, 101, 86, 97, 108, + 117, 101, 82, 101, 102, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 102, 97, 99, 116, 111, 114, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 111, 102, 102, 115, 101, 116, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_ae08c157b2e82b54 = b_ae08c157b2e82b54.words; +#if !CAPNP_LITE +static const uint16_t m_ae08c157b2e82b54[] = {4, 0, 2, 5, 1, 3}; +static const uint16_t i_ae08c157b2e82b54[] = {0, 1, 2, 3, 4, 5}; +const ::capnp::_::RawSchema s_ae08c157b2e82b54 = { + 0xae08c157b2e82b54, b_ae08c157b2e82b54.words, 116, nullptr, m_ae08c157b2e82b54, + 0, 6, i_ae08c157b2e82b54, nullptr, nullptr, { &s_ae08c157b2e82b54, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<18> b_eb619952bc2b3805 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 5, 56, 43, 188, 82, 153, 97, 235, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 82, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 112, 108, + 97, 121, 36, 80, 97, 114, 97, 109, + 115, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_eb619952bc2b3805 = b_eb619952bc2b3805.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_eb619952bc2b3805 = { + 0xeb619952bc2b3805, b_eb619952bc2b3805.words, 18, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_eb619952bc2b3805, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<34> b_935c832cec2e072f = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 47, 7, 46, 236, 44, 131, 92, 147, + 30, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 90, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 112, 108, + 97, 121, 36, 82, 101, 115, 117, 108, + 116, 115, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 114, 101, 115, 117, 108, 116, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_935c832cec2e072f = b_935c832cec2e072f.words; +#if !CAPNP_LITE +static const uint16_t m_935c832cec2e072f[] = {0}; +static const uint16_t i_935c832cec2e072f[] = {0}; +const ::capnp::_::RawSchema s_935c832cec2e072f = { + 0x935c832cec2e072f, b_935c832cec2e072f.words, 34, nullptr, m_935c832cec2e072f, + 0, 1, i_935c832cec2e072f, nullptr, nullptr, { &s_935c832cec2e072f, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<18> b_92d58775d6d1f6fe = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 254, 246, 209, 214, 117, 135, 213, 146, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 114, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 112, 108, + 97, 121, 70, 97, 115, 116, 36, 80, + 97, 114, 97, 109, 115, 0, 0, 0, } +}; +::capnp::word const* const bp_92d58775d6d1f6fe = b_92d58775d6d1f6fe.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_92d58775d6d1f6fe = { + 0x92d58775d6d1f6fe, b_92d58775d6d1f6fe.words, 18, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_92d58775d6d1f6fe, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<34> b_dce78f15ea9b3d58 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 88, 61, 155, 234, 21, 143, 231, 220, + 30, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 122, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 112, 108, + 97, 121, 70, 97, 115, 116, 36, 82, + 101, 115, 117, 108, 116, 115, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 114, 101, 115, 117, 108, 116, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_dce78f15ea9b3d58 = b_dce78f15ea9b3d58.words; +#if !CAPNP_LITE +static const uint16_t m_dce78f15ea9b3d58[] = {0}; +static const uint16_t i_dce78f15ea9b3d58[] = {0}; +const ::capnp::_::RawSchema s_dce78f15ea9b3d58 = { + 0xdce78f15ea9b3d58, b_dce78f15ea9b3d58.words, 34, nullptr, m_dce78f15ea9b3d58, + 0, 1, i_dce78f15ea9b3d58, nullptr, nullptr, { &s_dce78f15ea9b3d58, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<18> b_9263e3a03203043e = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 62, 4, 3, 50, 160, 227, 99, 146, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 90, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 112, 97, + 117, 115, 101, 36, 80, 97, 114, 97, + 109, 115, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_9263e3a03203043e = b_9263e3a03203043e.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_9263e3a03203043e = { + 0x9263e3a03203043e, b_9263e3a03203043e.words, 18, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_9263e3a03203043e, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<18> b_8e7b69d6afc3b55d = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 93, 181, 195, 175, 214, 105, 123, 142, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 98, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 112, 97, + 117, 115, 101, 36, 82, 101, 115, 117, + 108, 116, 115, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_8e7b69d6afc3b55d = b_8e7b69d6afc3b55d.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_8e7b69d6afc3b55d = { + 0x8e7b69d6afc3b55d, b_8e7b69d6afc3b55d.words, 18, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_8e7b69d6afc3b55d, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<18> b_832e6f38e797e7d6 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 214, 231, 151, 231, 56, 111, 46, 131, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 82, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 115, 116, + 111, 112, 36, 80, 97, 114, 97, 109, + 115, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_832e6f38e797e7d6 = b_832e6f38e797e7d6.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_832e6f38e797e7d6 = { + 0x832e6f38e797e7d6, b_832e6f38e797e7d6.words, 18, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_832e6f38e797e7d6, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<34> b_c9b4c21577c8474e = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 78, 71, 200, 119, 21, 194, 180, 201, + 30, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 90, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 115, 116, + 111, 112, 36, 82, 101, 115, 117, 108, + 116, 115, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 114, 101, 115, 117, 108, 116, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_c9b4c21577c8474e = b_c9b4c21577c8474e.words; +#if !CAPNP_LITE +static const uint16_t m_c9b4c21577c8474e[] = {0}; +static const uint16_t i_c9b4c21577c8474e[] = {0}; +const ::capnp::_::RawSchema s_c9b4c21577c8474e = { + 0xc9b4c21577c8474e, b_c9b4c21577c8474e.words, 34, nullptr, m_c9b4c21577c8474e, + 0, 1, i_c9b4c21577c8474e, nullptr, nullptr, { &s_c9b4c21577c8474e, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<50> b_ce3eb72a43d53a18 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 24, 58, 213, 67, 42, 183, 62, 206, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 98, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 97, 100, + 100, 70, 109, 117, 36, 80, 97, 114, + 97, 109, 115, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 41, 0, 0, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 3, 0, 1, 0, + 52, 0, 0, 0, 2, 0, 1, 0, + 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 0, 0, 3, 0, 1, 0, + 56, 0, 0, 0, 2, 0, 1, 0, + 105, 110, 115, 116, 97, 110, 99, 101, + 78, 97, 109, 101, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 102, 109, 117, 70, 105, 108, 101, 0, + 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_ce3eb72a43d53a18 = b_ce3eb72a43d53a18.words; +#if !CAPNP_LITE +static const uint16_t m_ce3eb72a43d53a18[] = {1, 0}; +static const uint16_t i_ce3eb72a43d53a18[] = {0, 1}; +const ::capnp::_::RawSchema s_ce3eb72a43d53a18 = { + 0xce3eb72a43d53a18, b_ce3eb72a43d53a18.words, 50, nullptr, m_ce3eb72a43d53a18, + 0, 2, i_ce3eb72a43d53a18, nullptr, nullptr, { &s_ce3eb72a43d53a18, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<34> b_94704beee55dbeff = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 255, 190, 93, 229, 238, 75, 112, 148, + 30, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 106, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 97, 100, + 100, 70, 109, 117, 36, 82, 101, 115, + 117, 108, 116, 115, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 114, 101, 115, 117, 108, 116, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_94704beee55dbeff = b_94704beee55dbeff.words; +#if !CAPNP_LITE +static const uint16_t m_94704beee55dbeff[] = {0}; +static const uint16_t i_94704beee55dbeff[] = {0}; +const ::capnp::_::RawSchema s_94704beee55dbeff = { + 0x94704beee55dbeff, b_94704beee55dbeff.words, 34, nullptr, m_94704beee55dbeff, + 0, 1, i_94704beee55dbeff, nullptr, nullptr, { &s_94704beee55dbeff, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<35> b_a352b1a9da6ecc9f = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 159, 204, 110, 218, 169, 177, 82, 163, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 122, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 114, 101, + 109, 111, 118, 101, 70, 109, 117, 36, + 80, 97, 114, 97, 109, 115, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 3, 0, 1, 0, + 24, 0, 0, 0, 2, 0, 1, 0, + 105, 110, 115, 116, 97, 110, 99, 101, + 78, 97, 109, 101, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_a352b1a9da6ecc9f = b_a352b1a9da6ecc9f.words; +#if !CAPNP_LITE +static const uint16_t m_a352b1a9da6ecc9f[] = {0}; +static const uint16_t i_a352b1a9da6ecc9f[] = {0}; +const ::capnp::_::RawSchema s_a352b1a9da6ecc9f = { + 0xa352b1a9da6ecc9f, b_a352b1a9da6ecc9f.words, 35, nullptr, m_a352b1a9da6ecc9f, + 0, 1, i_a352b1a9da6ecc9f, nullptr, nullptr, { &s_a352b1a9da6ecc9f, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<34> b_86caaf1b5674d5db = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 219, 213, 116, 86, 27, 175, 202, 134, + 30, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 130, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 114, 101, + 109, 111, 118, 101, 70, 109, 117, 36, + 82, 101, 115, 117, 108, 116, 115, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 114, 101, 115, 117, 108, 116, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_86caaf1b5674d5db = b_86caaf1b5674d5db.words; +#if !CAPNP_LITE +static const uint16_t m_86caaf1b5674d5db[] = {0}; +static const uint16_t i_86caaf1b5674d5db[] = {0}; +const ::capnp::_::RawSchema s_86caaf1b5674d5db = { + 0x86caaf1b5674d5db, b_86caaf1b5674d5db.words, 34, nullptr, m_86caaf1b5674d5db, + 0, 1, i_86caaf1b5674d5db, nullptr, nullptr, { &s_86caaf1b5674d5db, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<36> b_ff24bad7e33a7e67 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 103, 126, 58, 227, 215, 186, 36, 255, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 162, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 37, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 97, 100, + 100, 67, 104, 97, 110, 110, 101, 108, + 76, 105, 110, 107, 36, 80, 97, 114, + 97, 109, 115, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 98, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 3, 0, 1, 0, + 24, 0, 0, 0, 2, 0, 1, 0, + 99, 104, 97, 110, 110, 101, 108, 76, + 105, 110, 107, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 84, 43, 232, 178, 87, 193, 8, 174, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_ff24bad7e33a7e67 = b_ff24bad7e33a7e67.words; +#if !CAPNP_LITE +static const ::capnp::_::RawSchema* const d_ff24bad7e33a7e67[] = { + &s_ae08c157b2e82b54, +}; +static const uint16_t m_ff24bad7e33a7e67[] = {0}; +static const uint16_t i_ff24bad7e33a7e67[] = {0}; +const ::capnp::_::RawSchema s_ff24bad7e33a7e67 = { + 0xff24bad7e33a7e67, b_ff24bad7e33a7e67.words, 36, d_ff24bad7e33a7e67, m_ff24bad7e33a7e67, + 1, 1, i_ff24bad7e33a7e67, nullptr, nullptr, { &s_ff24bad7e33a7e67, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<35> b_8ad4ffb22b98c716 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 22, 199, 152, 43, 178, 255, 212, 138, + 30, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 170, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 37, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 97, 100, + 100, 67, 104, 97, 110, 110, 101, 108, + 76, 105, 110, 107, 36, 82, 101, 115, + 117, 108, 116, 115, 0, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 114, 101, 115, 117, 108, 116, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_8ad4ffb22b98c716 = b_8ad4ffb22b98c716.words; +#if !CAPNP_LITE +static const uint16_t m_8ad4ffb22b98c716[] = {0}; +static const uint16_t i_8ad4ffb22b98c716[] = {0}; +const ::capnp::_::RawSchema s_8ad4ffb22b98c716 = { + 0x8ad4ffb22b98c716, b_8ad4ffb22b98c716.words, 35, nullptr, m_8ad4ffb22b98c716, + 0, 1, i_8ad4ffb22b98c716, nullptr, nullptr, { &s_8ad4ffb22b98c716, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<36> b_879edd7f3e0e6f0b = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 11, 111, 14, 62, 127, 221, 158, 135, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 186, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 37, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 114, 101, + 109, 111, 118, 101, 67, 104, 97, 110, + 110, 101, 108, 76, 105, 110, 107, 36, + 80, 97, 114, 97, 109, 115, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 98, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 3, 0, 1, 0, + 24, 0, 0, 0, 2, 0, 1, 0, + 99, 104, 97, 110, 110, 101, 108, 76, + 105, 110, 107, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 84, 43, 232, 178, 87, 193, 8, 174, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_879edd7f3e0e6f0b = b_879edd7f3e0e6f0b.words; +#if !CAPNP_LITE +static const ::capnp::_::RawSchema* const d_879edd7f3e0e6f0b[] = { + &s_ae08c157b2e82b54, +}; +static const uint16_t m_879edd7f3e0e6f0b[] = {0}; +static const uint16_t i_879edd7f3e0e6f0b[] = {0}; +const ::capnp::_::RawSchema s_879edd7f3e0e6f0b = { + 0x879edd7f3e0e6f0b, b_879edd7f3e0e6f0b.words, 36, d_879edd7f3e0e6f0b, m_879edd7f3e0e6f0b, + 1, 1, i_879edd7f3e0e6f0b, nullptr, nullptr, { &s_879edd7f3e0e6f0b, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<35> b_98af1a6dfbd686ca = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 202, 134, 214, 251, 109, 26, 175, 152, + 30, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 194, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 37, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 114, 101, + 109, 111, 118, 101, 67, 104, 97, 110, + 110, 101, 108, 76, 105, 110, 107, 36, + 82, 101, 115, 117, 108, 116, 115, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 114, 101, 115, 117, 108, 116, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_98af1a6dfbd686ca = b_98af1a6dfbd686ca.words; +#if !CAPNP_LITE +static const uint16_t m_98af1a6dfbd686ca[] = {0}; +static const uint16_t i_98af1a6dfbd686ca[] = {0}; +const ::capnp::_::RawSchema s_98af1a6dfbd686ca = { + 0x98af1a6dfbd686ca, b_98af1a6dfbd686ca.words, 35, nullptr, m_98af1a6dfbd686ca, + 0, 1, i_98af1a6dfbd686ca, nullptr, nullptr, { &s_98af1a6dfbd686ca, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<34> b_80e19e353495e92d = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 45, 233, 149, 52, 53, 158, 225, 128, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 122, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 115, 101, + 116, 86, 97, 108, 117, 101, 115, 36, + 80, 97, 114, 97, 109, 115, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 118, 97, 108, 117, 101, 115, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 165, 137, 134, 10, 148, 1, 49, 164, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_80e19e353495e92d = b_80e19e353495e92d.words; +#if !CAPNP_LITE +static const ::capnp::_::RawSchema* const d_80e19e353495e92d[] = { + &s_a43101940a8689a5, +}; +static const uint16_t m_80e19e353495e92d[] = {0}; +static const uint16_t i_80e19e353495e92d[] = {0}; +const ::capnp::_::RawSchema s_80e19e353495e92d = { + 0x80e19e353495e92d, b_80e19e353495e92d.words, 34, d_80e19e353495e92d, m_80e19e353495e92d, + 1, 1, i_80e19e353495e92d, nullptr, nullptr, { &s_80e19e353495e92d, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<34> b_e9235735334ee23c = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 60, 226, 78, 51, 53, 87, 35, 233, + 30, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 130, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 115, 101, + 116, 86, 97, 108, 117, 101, 115, 36, + 82, 101, 115, 117, 108, 116, 115, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 3, 0, 1, 0, + 20, 0, 0, 0, 2, 0, 1, 0, + 114, 101, 115, 117, 108, 116, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_e9235735334ee23c = b_e9235735334ee23c.words; +#if !CAPNP_LITE +static const uint16_t m_e9235735334ee23c[] = {0}; +static const uint16_t i_e9235735334ee23c[] = {0}; +const ::capnp::_::RawSchema s_e9235735334ee23c = { + 0xe9235735334ee23c, b_e9235735334ee23c.words, 34, nullptr, m_e9235735334ee23c, + 0, 1, i_e9235735334ee23c, nullptr, nullptr, { &s_e9235735334ee23c, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<36> b_c32f5e5599baa4a2 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 162, 164, 186, 153, 85, 94, 47, 195, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 178, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 37, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 114, 101, + 103, 105, 115, 116, 101, 114, 70, 114, + 111, 110, 116, 101, 110, 100, 36, 80, + 97, 114, 97, 109, 115, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 74, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 3, 0, 1, 0, + 24, 0, 0, 0, 2, 0, 1, 0, + 102, 114, 111, 110, 116, 101, 110, 100, + 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, + 244, 122, 161, 110, 145, 80, 69, 204, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_c32f5e5599baa4a2 = b_c32f5e5599baa4a2.words; +#if !CAPNP_LITE +static const ::capnp::_::RawSchema* const d_c32f5e5599baa4a2[] = { + &s_cc4550916ea17af4, +}; +static const uint16_t m_c32f5e5599baa4a2[] = {0}; +static const uint16_t i_c32f5e5599baa4a2[] = {0}; +const ::capnp::_::RawSchema s_c32f5e5599baa4a2 = { + 0xc32f5e5599baa4a2, b_c32f5e5599baa4a2.words, 36, d_c32f5e5599baa4a2, m_c32f5e5599baa4a2, + 1, 1, i_c32f5e5599baa4a2, nullptr, nullptr, { &s_c32f5e5599baa4a2, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<19> b_b087cff7ea9b99ea = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 234, 153, 155, 234, 247, 207, 135, 176, + 30, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 186, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 66, 97, + 99, 107, 101, 110, 100, 46, 114, 101, + 103, 105, 115, 116, 101, 114, 70, 114, + 111, 110, 116, 101, 110, 100, 36, 82, + 101, 115, 117, 108, 116, 115, 0, 0, } +}; +::capnp::word const* const bp_b087cff7ea9b99ea = b_b087cff7ea9b99ea.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_b087cff7ea9b99ea = { + 0xb087cff7ea9b99ea, b_b087cff7ea9b99ea.words, 19, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_b087cff7ea9b99ea, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<40> b_cc4550916ea17af4 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 244, 122, 161, 110, 145, 80, 69, 204, + 16, 0, 0, 0, 3, 0, 0, 0, + 165, 163, 90, 206, 176, 102, 17, 181, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 250, 0, 0, 0, + 33, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 135, 0, 0, 0, + 113, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 70, 114, + 111, 110, 116, 101, 110, 100, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, + 8, 0, 0, 0, 3, 0, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 97, 131, 38, 152, 135, 44, 130, 137, + 196, 70, 234, 233, 228, 203, 200, 222, + 49, 0, 0, 0, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 41, 0, 0, 0, 7, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 131, 104, 219, 16, 14, 240, 39, 162, + 92, 122, 223, 109, 28, 150, 140, 236, + 29, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 7, 0, 0, 0, + 110, 101, 119, 86, 97, 108, 117, 101, + 115, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 108, 111, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 1, 0, 1, 0, } +}; +::capnp::word const* const bp_cc4550916ea17af4 = b_cc4550916ea17af4.words; +#if !CAPNP_LITE +static const ::capnp::_::RawSchema* const d_cc4550916ea17af4[] = { + &s_89822c8798268361, + &s_a227f00e10db6883, + &s_dec8cbe4e9ea46c4, + &s_ec8c961c6ddf7a5c, +}; +static const uint16_t m_cc4550916ea17af4[] = {1, 0}; +const ::capnp::_::RawSchema s_cc4550916ea17af4 = { + 0xcc4550916ea17af4, b_cc4550916ea17af4.words, 40, d_cc4550916ea17af4, m_cc4550916ea17af4, + 4, 2, nullptr, nullptr, nullptr, { &s_cc4550916ea17af4, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<50> b_89822c8798268361 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 97, 131, 38, 152, 135, 44, 130, 137, + 31, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 130, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 70, 114, + 111, 110, 116, 101, 110, 100, 46, 110, + 101, 119, 86, 97, 108, 117, 101, 115, + 36, 80, 97, 114, 97, 109, 115, 0, + 8, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 41, 0, 0, 0, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 40, 0, 0, 0, 3, 0, 1, 0, + 52, 0, 0, 0, 2, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 44, 0, 0, 0, 3, 0, 1, 0, + 56, 0, 0, 0, 2, 0, 1, 0, + 116, 105, 109, 101, 115, 116, 97, 109, + 112, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 118, 97, 108, 117, 101, 115, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 165, 137, 134, 10, 148, 1, 49, 164, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_89822c8798268361 = b_89822c8798268361.words; +#if !CAPNP_LITE +static const ::capnp::_::RawSchema* const d_89822c8798268361[] = { + &s_a43101940a8689a5, +}; +static const uint16_t m_89822c8798268361[] = {0, 1}; +static const uint16_t i_89822c8798268361[] = {0, 1}; +const ::capnp::_::RawSchema s_89822c8798268361 = { + 0x89822c8798268361, b_89822c8798268361.words, 50, d_89822c8798268361, m_89822c8798268361, + 1, 2, i_89822c8798268361, nullptr, nullptr, { &s_89822c8798268361, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<19> b_dec8cbe4e9ea46c4 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 196, 70, 234, 233, 228, 203, 200, 222, + 31, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 138, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 70, 114, + 111, 110, 116, 101, 110, 100, 46, 110, + 101, 119, 86, 97, 108, 117, 101, 115, + 36, 82, 101, 115, 117, 108, 116, 115, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_dec8cbe4e9ea46c4 = b_dec8cbe4e9ea46c4.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_dec8cbe4e9ea46c4 = { + 0xdec8cbe4e9ea46c4, b_dec8cbe4e9ea46c4.words, 19, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_dec8cbe4e9ea46c4, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<65> b_a227f00e10db6883 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 131, 104, 219, 16, 14, 240, 39, 162, + 31, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 82, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 175, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 70, 114, + 111, 110, 116, 101, 110, 100, 46, 108, + 111, 103, 36, 80, 97, 114, 97, 109, + 115, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 69, 0, 0, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 68, 0, 0, 0, 3, 0, 1, 0, + 80, 0, 0, 0, 2, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 72, 0, 0, 0, 3, 0, 1, 0, + 84, 0, 0, 0, 2, 0, 1, 0, + 2, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 81, 0, 0, 0, 66, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 76, 0, 0, 0, 3, 0, 1, 0, + 88, 0, 0, 0, 2, 0, 1, 0, + 105, 110, 115, 116, 97, 110, 99, 101, + 78, 97, 109, 101, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 115, 116, 97, 116, 117, 115, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 109, 101, 115, 115, 97, 103, 101, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_a227f00e10db6883 = b_a227f00e10db6883.words; +#if !CAPNP_LITE +static const uint16_t m_a227f00e10db6883[] = {0, 2, 1}; +static const uint16_t i_a227f00e10db6883[] = {0, 1, 2}; +const ::capnp::_::RawSchema s_a227f00e10db6883 = { + 0xa227f00e10db6883, b_a227f00e10db6883.words, 65, nullptr, m_a227f00e10db6883, + 0, 3, i_a227f00e10db6883, nullptr, nullptr, { &s_a227f00e10db6883, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<18> b_ec8c961c6ddf7a5c = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 92, 122, 223, 109, 28, 150, 140, 236, + 31, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 90, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 77, 111, 100, 101, 108, 105, 70, 114, + 111, 110, 116, 101, 110, 100, 46, 108, + 111, 103, 36, 82, 101, 115, 117, 108, + 116, 115, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_ec8c961c6ddf7a5c = b_ec8c961c6ddf7a5c.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_ec8c961c6ddf7a5c = { + 0xec8c961c6ddf7a5c, b_ec8c961c6ddf7a5c.words, 18, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_ec8c961c6ddf7a5c, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<194> b_a43101940a8689a5 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 165, 137, 134, 10, 148, 1, 49, 164, + 16, 0, 0, 0, 1, 0, 0, 0, + 165, 163, 90, 206, 176, 102, 17, 181, + 9, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 186, 0, 0, 0, + 29, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 255, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 77, 111, 100, 101, 108, 105, 82, 112, + 99, 46, 99, 97, 112, 110, 112, 58, + 86, 97, 108, 117, 101, 115, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 0, + 36, 0, 0, 0, 3, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 237, 0, 0, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 236, 0, 0, 0, 3, 0, 1, 0, + 248, 0, 0, 0, 2, 0, 1, 0, + 1, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 245, 0, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 248, 0, 0, 0, 3, 0, 1, 0, + 20, 1, 0, 0, 2, 0, 1, 0, + 2, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 17, 1, 0, 0, 114, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 16, 1, 0, 0, 3, 0, 1, 0, + 44, 1, 0, 0, 2, 0, 1, 0, + 3, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 1, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 41, 1, 0, 0, 114, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 40, 1, 0, 0, 3, 0, 1, 0, + 68, 1, 0, 0, 2, 0, 1, 0, + 4, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 65, 1, 0, 0, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 64, 1, 0, 0, 3, 0, 1, 0, + 92, 1, 0, 0, 2, 0, 1, 0, + 5, 0, 0, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 89, 1, 0, 0, 114, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 88, 1, 0, 0, 3, 0, 1, 0, + 116, 1, 0, 0, 2, 0, 1, 0, + 6, 0, 0, 0, 6, 0, 0, 0, + 0, 0, 1, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 113, 1, 0, 0, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 112, 1, 0, 0, 3, 0, 1, 0, + 140, 1, 0, 0, 2, 0, 1, 0, + 7, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 1, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 137, 1, 0, 0, 130, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 136, 1, 0, 0, 3, 0, 1, 0, + 164, 1, 0, 0, 2, 0, 1, 0, + 8, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 1, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 161, 1, 0, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 1, 0, 0, 3, 0, 1, 0, + 188, 1, 0, 0, 2, 0, 1, 0, + 105, 110, 115, 116, 97, 110, 99, 101, + 78, 97, 109, 101, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 105, 110, 116, 101, 103, 101, 114, 86, + 97, 108, 117, 101, 82, 101, 102, 115, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 1, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 105, 110, 116, 101, 103, 101, 114, 86, + 97, 108, 117, 101, 115, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 114, 101, 97, 108, 86, 97, 108, 117, + 101, 82, 101, 102, 115, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 1, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 114, 101, 97, 108, 86, 97, 108, 117, + 101, 115, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 1, 0, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 98, 111, 111, 108, 86, 97, 108, 117, + 101, 82, 101, 102, 115, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 1, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 98, 111, 111, 108, 86, 97, 108, 117, + 101, 115, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 115, 116, 114, 105, 110, 103, 86, 97, + 108, 117, 101, 82, 101, 102, 115, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 1, 0, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 115, 116, 114, 105, 110, 103, 86, 97, + 108, 117, 101, 115, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, 1, 0, + 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_a43101940a8689a5 = b_a43101940a8689a5.words; +#if !CAPNP_LITE +static const uint16_t m_a43101940a8689a5[] = {5, 6, 0, 1, 2, 3, 4, 7, 8}; +static const uint16_t i_a43101940a8689a5[] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; +const ::capnp::_::RawSchema s_a43101940a8689a5 = { + 0xa43101940a8689a5, b_a43101940a8689a5.words, 194, nullptr, m_a43101940a8689a5, + 0, 9, i_a43101940a8689a5, nullptr, nullptr, { &s_a43101940a8689a5, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +} // namespace schemas +} // namespace capnp + +// ======================================================================================= + + +#if !CAPNP_LITE +::capnp::Request< ::ModeliBackend::PlayParams, ::ModeliBackend::PlayResults> +ModeliBackend::Client::playRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::PlayParams, ::ModeliBackend::PlayResults>( + 0xc189361aa8d3ec0aull, 0, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::play(PlayContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "play", + 0xc189361aa8d3ec0aull, 0); +} +::capnp::Request< ::ModeliBackend::PlayFastParams, ::ModeliBackend::PlayFastResults> +ModeliBackend::Client::playFastRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::PlayFastParams, ::ModeliBackend::PlayFastResults>( + 0xc189361aa8d3ec0aull, 1, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::playFast(PlayFastContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "playFast", + 0xc189361aa8d3ec0aull, 1); +} +::capnp::Request< ::ModeliBackend::PauseParams, ::ModeliBackend::PauseResults> +ModeliBackend::Client::pauseRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::PauseParams, ::ModeliBackend::PauseResults>( + 0xc189361aa8d3ec0aull, 2, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::pause(PauseContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "pause", + 0xc189361aa8d3ec0aull, 2); +} +::capnp::Request< ::ModeliBackend::StopParams, ::ModeliBackend::StopResults> +ModeliBackend::Client::stopRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::StopParams, ::ModeliBackend::StopResults>( + 0xc189361aa8d3ec0aull, 3, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::stop(StopContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "stop", + 0xc189361aa8d3ec0aull, 3); +} +::capnp::Request< ::ModeliBackend::AddFmuParams, ::ModeliBackend::AddFmuResults> +ModeliBackend::Client::addFmuRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::AddFmuParams, ::ModeliBackend::AddFmuResults>( + 0xc189361aa8d3ec0aull, 4, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::addFmu(AddFmuContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "addFmu", + 0xc189361aa8d3ec0aull, 4); +} +::capnp::Request< ::ModeliBackend::RemoveFmuParams, ::ModeliBackend::RemoveFmuResults> +ModeliBackend::Client::removeFmuRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::RemoveFmuParams, ::ModeliBackend::RemoveFmuResults>( + 0xc189361aa8d3ec0aull, 5, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::removeFmu(RemoveFmuContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "removeFmu", + 0xc189361aa8d3ec0aull, 5); +} +::capnp::Request< ::ModeliBackend::AddChannelLinkParams, ::ModeliBackend::AddChannelLinkResults> +ModeliBackend::Client::addChannelLinkRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::AddChannelLinkParams, ::ModeliBackend::AddChannelLinkResults>( + 0xc189361aa8d3ec0aull, 6, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::addChannelLink(AddChannelLinkContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "addChannelLink", + 0xc189361aa8d3ec0aull, 6); +} +::capnp::Request< ::ModeliBackend::RemoveChannelLinkParams, ::ModeliBackend::RemoveChannelLinkResults> +ModeliBackend::Client::removeChannelLinkRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::RemoveChannelLinkParams, ::ModeliBackend::RemoveChannelLinkResults>( + 0xc189361aa8d3ec0aull, 7, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::removeChannelLink(RemoveChannelLinkContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "removeChannelLink", + 0xc189361aa8d3ec0aull, 7); +} +::capnp::Request< ::ModeliBackend::SetValuesParams, ::ModeliBackend::SetValuesResults> +ModeliBackend::Client::setValuesRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::SetValuesParams, ::ModeliBackend::SetValuesResults>( + 0xc189361aa8d3ec0aull, 8, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::setValues(SetValuesContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "setValues", + 0xc189361aa8d3ec0aull, 8); +} +::capnp::Request< ::ModeliBackend::RegisterFrontendParams, ::ModeliBackend::RegisterFrontendResults> +ModeliBackend::Client::registerFrontendRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::RegisterFrontendParams, ::ModeliBackend::RegisterFrontendResults>( + 0xc189361aa8d3ec0aull, 9, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::registerFrontend(RegisterFrontendContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "registerFrontend", + 0xc189361aa8d3ec0aull, 9); +} +::kj::Promise<void> ModeliBackend::Server::dispatchCall( + uint64_t interfaceId, uint16_t methodId, + ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) { + switch (interfaceId) { + case 0xc189361aa8d3ec0aull: + return dispatchCallInternal(methodId, context); + default: + return internalUnimplemented("ModeliRpc.capnp:ModeliBackend", interfaceId); + } +} +::kj::Promise<void> ModeliBackend::Server::dispatchCallInternal( + uint16_t methodId, + ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) { + switch (methodId) { + case 0: + return play(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::PlayParams, ::ModeliBackend::PlayResults>(context)); + case 1: + return playFast(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::PlayFastParams, ::ModeliBackend::PlayFastResults>(context)); + case 2: + return pause(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::PauseParams, ::ModeliBackend::PauseResults>(context)); + case 3: + return stop(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::StopParams, ::ModeliBackend::StopResults>(context)); + case 4: + return addFmu(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::AddFmuParams, ::ModeliBackend::AddFmuResults>(context)); + case 5: + return removeFmu(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::RemoveFmuParams, ::ModeliBackend::RemoveFmuResults>(context)); + case 6: + return addChannelLink(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::AddChannelLinkParams, ::ModeliBackend::AddChannelLinkResults>(context)); + case 7: + return removeChannelLink(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::RemoveChannelLinkParams, ::ModeliBackend::RemoveChannelLinkResults>(context)); + case 8: + return setValues(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::SetValuesParams, ::ModeliBackend::SetValuesResults>(context)); + case 9: + return registerFrontend(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::RegisterFrontendParams, ::ModeliBackend::RegisterFrontendResults>(context)); + default: + (void)context; + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", + 0xc189361aa8d3ec0aull, methodId); + } +} +#endif // !CAPNP_LITE + +// ModeliBackend +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::ChannelLink +constexpr uint16_t ModeliBackend::ChannelLink::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::ChannelLink::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::ChannelLink::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::ChannelLink::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::PlayParams +constexpr uint16_t ModeliBackend::PlayParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::PlayParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::PlayParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::PlayResults +constexpr uint16_t ModeliBackend::PlayResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::PlayResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::PlayResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::PlayFastParams +constexpr uint16_t ModeliBackend::PlayFastParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::PlayFastParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::PlayFastParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayFastParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::PlayFastResults +constexpr uint16_t ModeliBackend::PlayFastResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::PlayFastResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::PlayFastResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayFastResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::PauseParams +constexpr uint16_t ModeliBackend::PauseParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::PauseParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::PauseParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::PauseParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::PauseResults +constexpr uint16_t ModeliBackend::PauseResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::PauseResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::PauseResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::PauseResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::StopParams +constexpr uint16_t ModeliBackend::StopParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::StopParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::StopParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::StopParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::StopResults +constexpr uint16_t ModeliBackend::StopResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::StopResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::StopResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::StopResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::AddFmuParams +constexpr uint16_t ModeliBackend::AddFmuParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::AddFmuParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::AddFmuParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::AddFmuParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::AddFmuResults +constexpr uint16_t ModeliBackend::AddFmuResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::AddFmuResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::AddFmuResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::AddFmuResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::RemoveFmuParams +constexpr uint16_t ModeliBackend::RemoveFmuParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::RemoveFmuParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::RemoveFmuParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveFmuParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::RemoveFmuResults +constexpr uint16_t ModeliBackend::RemoveFmuResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::RemoveFmuResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::RemoveFmuResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveFmuResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::AddChannelLinkParams +constexpr uint16_t ModeliBackend::AddChannelLinkParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::AddChannelLinkParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::AddChannelLinkParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::AddChannelLinkParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::AddChannelLinkResults +constexpr uint16_t ModeliBackend::AddChannelLinkResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::AddChannelLinkResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::AddChannelLinkResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::AddChannelLinkResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::RemoveChannelLinkParams +constexpr uint16_t ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::RemoveChannelLinkResults +constexpr uint16_t ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::SetValuesParams +constexpr uint16_t ModeliBackend::SetValuesParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::SetValuesParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::SetValuesParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::SetValuesParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::SetValuesResults +constexpr uint16_t ModeliBackend::SetValuesResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::SetValuesResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::SetValuesResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::SetValuesResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::RegisterFrontendParams +constexpr uint16_t ModeliBackend::RegisterFrontendParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::RegisterFrontendParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::RegisterFrontendParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::RegisterFrontendParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::RegisterFrontendResults +constexpr uint16_t ModeliBackend::RegisterFrontendResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::RegisterFrontendResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::RegisterFrontendResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::RegisterFrontendResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +#if !CAPNP_LITE +::capnp::Request< ::ModeliFrontend::NewValuesParams, ::ModeliFrontend::NewValuesResults> +ModeliFrontend::Client::newValuesRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliFrontend::NewValuesParams, ::ModeliFrontend::NewValuesResults>( + 0xcc4550916ea17af4ull, 0, sizeHint); +} +::kj::Promise<void> ModeliFrontend::Server::newValues(NewValuesContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliFrontend", "newValues", + 0xcc4550916ea17af4ull, 0); +} +::capnp::Request< ::ModeliFrontend::LogParams, ::ModeliFrontend::LogResults> +ModeliFrontend::Client::logRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliFrontend::LogParams, ::ModeliFrontend::LogResults>( + 0xcc4550916ea17af4ull, 1, sizeHint); +} +::kj::Promise<void> ModeliFrontend::Server::log(LogContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliFrontend", "log", + 0xcc4550916ea17af4ull, 1); +} +::kj::Promise<void> ModeliFrontend::Server::dispatchCall( + uint64_t interfaceId, uint16_t methodId, + ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) { + switch (interfaceId) { + case 0xcc4550916ea17af4ull: + return dispatchCallInternal(methodId, context); + default: + return internalUnimplemented("ModeliRpc.capnp:ModeliFrontend", interfaceId); + } +} +::kj::Promise<void> ModeliFrontend::Server::dispatchCallInternal( + uint16_t methodId, + ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) { + switch (methodId) { + case 0: + return newValues(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliFrontend::NewValuesParams, ::ModeliFrontend::NewValuesResults>(context)); + case 1: + return log(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliFrontend::LogParams, ::ModeliFrontend::LogResults>(context)); + default: + (void)context; + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliFrontend", + 0xcc4550916ea17af4ull, methodId); + } +} +#endif // !CAPNP_LITE + +// ModeliFrontend +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliFrontend::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliFrontend::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliFrontend::NewValuesParams +constexpr uint16_t ModeliFrontend::NewValuesParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliFrontend::NewValuesParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliFrontend::NewValuesParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliFrontend::NewValuesParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliFrontend::NewValuesResults +constexpr uint16_t ModeliFrontend::NewValuesResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliFrontend::NewValuesResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliFrontend::NewValuesResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliFrontend::NewValuesResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliFrontend::LogParams +constexpr uint16_t ModeliFrontend::LogParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliFrontend::LogParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliFrontend::LogParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliFrontend::LogParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliFrontend::LogResults +constexpr uint16_t ModeliFrontend::LogResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliFrontend::LogResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliFrontend::LogResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliFrontend::LogResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// Values +constexpr uint16_t Values::_capnpPrivate::dataWordSize; +constexpr uint16_t Values::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind Values::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* Values::_capnpPrivate::schema; +#endif // !CAPNP_LITE + + + diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h new file mode 100644 index 0000000000000000000000000000000000000000..5342c7c135d8291f3eacc02e343db77e8c20ceb4 --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h @@ -0,0 +1,3827 @@ +// Generated by Cap'n Proto compiler, DO NOT EDIT +// source: ModeliRpc.capnp + +#ifndef CAPNP_INCLUDED_b51166b0ce5aa3a5_ +#define CAPNP_INCLUDED_b51166b0ce5aa3a5_ + +#include <capnp/generated-header-support.h> +#if !CAPNP_LITE +#include <capnp/capability.h> +#endif // !CAPNP_LITE + +#if CAPNP_VERSION != 6001 +#error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." +#endif + + +namespace capnp { +namespace schemas { + +CAPNP_DECLARE_SCHEMA(c189361aa8d3ec0a); +CAPNP_DECLARE_SCHEMA(ae08c157b2e82b54); +CAPNP_DECLARE_SCHEMA(eb619952bc2b3805); +CAPNP_DECLARE_SCHEMA(935c832cec2e072f); +CAPNP_DECLARE_SCHEMA(92d58775d6d1f6fe); +CAPNP_DECLARE_SCHEMA(dce78f15ea9b3d58); +CAPNP_DECLARE_SCHEMA(9263e3a03203043e); +CAPNP_DECLARE_SCHEMA(8e7b69d6afc3b55d); +CAPNP_DECLARE_SCHEMA(832e6f38e797e7d6); +CAPNP_DECLARE_SCHEMA(c9b4c21577c8474e); +CAPNP_DECLARE_SCHEMA(ce3eb72a43d53a18); +CAPNP_DECLARE_SCHEMA(94704beee55dbeff); +CAPNP_DECLARE_SCHEMA(a352b1a9da6ecc9f); +CAPNP_DECLARE_SCHEMA(86caaf1b5674d5db); +CAPNP_DECLARE_SCHEMA(ff24bad7e33a7e67); +CAPNP_DECLARE_SCHEMA(8ad4ffb22b98c716); +CAPNP_DECLARE_SCHEMA(879edd7f3e0e6f0b); +CAPNP_DECLARE_SCHEMA(98af1a6dfbd686ca); +CAPNP_DECLARE_SCHEMA(80e19e353495e92d); +CAPNP_DECLARE_SCHEMA(e9235735334ee23c); +CAPNP_DECLARE_SCHEMA(c32f5e5599baa4a2); +CAPNP_DECLARE_SCHEMA(b087cff7ea9b99ea); +CAPNP_DECLARE_SCHEMA(cc4550916ea17af4); +CAPNP_DECLARE_SCHEMA(89822c8798268361); +CAPNP_DECLARE_SCHEMA(dec8cbe4e9ea46c4); +CAPNP_DECLARE_SCHEMA(a227f00e10db6883); +CAPNP_DECLARE_SCHEMA(ec8c961c6ddf7a5c); +CAPNP_DECLARE_SCHEMA(a43101940a8689a5); + +} // namespace schemas +} // namespace capnp + + +struct ModeliBackend { + ModeliBackend() = delete; + +#if !CAPNP_LITE + class Client; + class Server; +#endif // !CAPNP_LITE + + struct ChannelLink; + struct PlayParams; + struct PlayResults; + struct PlayFastParams; + struct PlayFastResults; + struct PauseParams; + struct PauseResults; + struct StopParams; + struct StopResults; + struct AddFmuParams; + struct AddFmuResults; + struct RemoveFmuParams; + struct RemoveFmuResults; + struct AddChannelLinkParams; + struct AddChannelLinkResults; + struct RemoveChannelLinkParams; + struct RemoveChannelLinkResults; + struct SetValuesParams; + struct SetValuesResults; + struct RegisterFrontendParams; + struct RegisterFrontendResults; + + #if !CAPNP_LITE + struct _capnpPrivate { + CAPNP_DECLARE_INTERFACE_HEADER(c189361aa8d3ec0a) + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + }; + #endif // !CAPNP_LITE +}; + +struct ModeliBackend::ChannelLink { + ChannelLink() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(ae08c157b2e82b54, 3, 2) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::PlayParams { + PlayParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(eb619952bc2b3805, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::PlayResults { + PlayResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(935c832cec2e072f, 1, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::PlayFastParams { + PlayFastParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(92d58775d6d1f6fe, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::PlayFastResults { + PlayFastResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(dce78f15ea9b3d58, 1, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::PauseParams { + PauseParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(9263e3a03203043e, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::PauseResults { + PauseResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(8e7b69d6afc3b55d, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::StopParams { + StopParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(832e6f38e797e7d6, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::StopResults { + StopResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(c9b4c21577c8474e, 1, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::AddFmuParams { + AddFmuParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(ce3eb72a43d53a18, 0, 2) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::AddFmuResults { + AddFmuResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(94704beee55dbeff, 1, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::RemoveFmuParams { + RemoveFmuParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(a352b1a9da6ecc9f, 0, 1) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::RemoveFmuResults { + RemoveFmuResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(86caaf1b5674d5db, 1, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::AddChannelLinkParams { + AddChannelLinkParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(ff24bad7e33a7e67, 0, 1) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::AddChannelLinkResults { + AddChannelLinkResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(8ad4ffb22b98c716, 1, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::RemoveChannelLinkParams { + RemoveChannelLinkParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(879edd7f3e0e6f0b, 0, 1) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::RemoveChannelLinkResults { + RemoveChannelLinkResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(98af1a6dfbd686ca, 1, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::SetValuesParams { + SetValuesParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(80e19e353495e92d, 0, 1) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::SetValuesResults { + SetValuesResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(e9235735334ee23c, 1, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::RegisterFrontendParams { + RegisterFrontendParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(c32f5e5599baa4a2, 0, 1) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::RegisterFrontendResults { + RegisterFrontendResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(b087cff7ea9b99ea, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliFrontend { + ModeliFrontend() = delete; + +#if !CAPNP_LITE + class Client; + class Server; +#endif // !CAPNP_LITE + + struct NewValuesParams; + struct NewValuesResults; + struct LogParams; + struct LogResults; + + #if !CAPNP_LITE + struct _capnpPrivate { + CAPNP_DECLARE_INTERFACE_HEADER(cc4550916ea17af4) + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + }; + #endif // !CAPNP_LITE +}; + +struct ModeliFrontend::NewValuesParams { + NewValuesParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(89822c8798268361, 1, 1) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliFrontend::NewValuesResults { + NewValuesResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(dec8cbe4e9ea46c4, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliFrontend::LogParams { + LogParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(a227f00e10db6883, 1, 2) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliFrontend::LogResults { + LogResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(ec8c961c6ddf7a5c, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct Values { + Values() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(a43101940a8689a5, 0, 9) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +// ======================================================================================= + +#if !CAPNP_LITE +class ModeliBackend::Client + : public virtual ::capnp::Capability::Client { +public: + typedef ModeliBackend Calls; + typedef ModeliBackend Reads; + + Client(decltype(nullptr)); + explicit Client(::kj::Own< ::capnp::ClientHook>&& hook); + template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Server*>()>> + Client(::kj::Own<_t>&& server); + template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Client*>()>> + Client(::kj::Promise<_t>&& promise); + Client(::kj::Exception&& exception); + Client(Client&) = default; + Client(Client&&) = default; + Client& operator=(Client& other); + Client& operator=(Client&& other); + + ::capnp::Request< ::ModeliBackend::PlayParams, ::ModeliBackend::PlayResults> playRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::PlayFastParams, ::ModeliBackend::PlayFastResults> playFastRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::PauseParams, ::ModeliBackend::PauseResults> pauseRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::StopParams, ::ModeliBackend::StopResults> stopRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::AddFmuParams, ::ModeliBackend::AddFmuResults> addFmuRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::RemoveFmuParams, ::ModeliBackend::RemoveFmuResults> removeFmuRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::AddChannelLinkParams, ::ModeliBackend::AddChannelLinkResults> addChannelLinkRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::RemoveChannelLinkParams, ::ModeliBackend::RemoveChannelLinkResults> removeChannelLinkRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::SetValuesParams, ::ModeliBackend::SetValuesResults> setValuesRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::RegisterFrontendParams, ::ModeliBackend::RegisterFrontendResults> registerFrontendRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + +protected: + Client() = default; +}; + +class ModeliBackend::Server + : public virtual ::capnp::Capability::Server { +public: + typedef ModeliBackend Serves; + + ::kj::Promise<void> dispatchCall(uint64_t interfaceId, uint16_t methodId, + ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) + override; + +protected: + typedef ::ModeliBackend::PlayParams PlayParams; + typedef ::ModeliBackend::PlayResults PlayResults; + typedef ::capnp::CallContext<PlayParams, PlayResults> PlayContext; + virtual ::kj::Promise<void> play(PlayContext context); + typedef ::ModeliBackend::PlayFastParams PlayFastParams; + typedef ::ModeliBackend::PlayFastResults PlayFastResults; + typedef ::capnp::CallContext<PlayFastParams, PlayFastResults> PlayFastContext; + virtual ::kj::Promise<void> playFast(PlayFastContext context); + typedef ::ModeliBackend::PauseParams PauseParams; + typedef ::ModeliBackend::PauseResults PauseResults; + typedef ::capnp::CallContext<PauseParams, PauseResults> PauseContext; + virtual ::kj::Promise<void> pause(PauseContext context); + typedef ::ModeliBackend::StopParams StopParams; + typedef ::ModeliBackend::StopResults StopResults; + typedef ::capnp::CallContext<StopParams, StopResults> StopContext; + virtual ::kj::Promise<void> stop(StopContext context); + typedef ::ModeliBackend::AddFmuParams AddFmuParams; + typedef ::ModeliBackend::AddFmuResults AddFmuResults; + typedef ::capnp::CallContext<AddFmuParams, AddFmuResults> AddFmuContext; + virtual ::kj::Promise<void> addFmu(AddFmuContext context); + typedef ::ModeliBackend::RemoveFmuParams RemoveFmuParams; + typedef ::ModeliBackend::RemoveFmuResults RemoveFmuResults; + typedef ::capnp::CallContext<RemoveFmuParams, RemoveFmuResults> RemoveFmuContext; + virtual ::kj::Promise<void> removeFmu(RemoveFmuContext context); + typedef ::ModeliBackend::AddChannelLinkParams AddChannelLinkParams; + typedef ::ModeliBackend::AddChannelLinkResults AddChannelLinkResults; + typedef ::capnp::CallContext<AddChannelLinkParams, AddChannelLinkResults> AddChannelLinkContext; + virtual ::kj::Promise<void> addChannelLink(AddChannelLinkContext context); + typedef ::ModeliBackend::RemoveChannelLinkParams RemoveChannelLinkParams; + typedef ::ModeliBackend::RemoveChannelLinkResults RemoveChannelLinkResults; + typedef ::capnp::CallContext<RemoveChannelLinkParams, RemoveChannelLinkResults> RemoveChannelLinkContext; + virtual ::kj::Promise<void> removeChannelLink(RemoveChannelLinkContext context); + typedef ::ModeliBackend::SetValuesParams SetValuesParams; + typedef ::ModeliBackend::SetValuesResults SetValuesResults; + typedef ::capnp::CallContext<SetValuesParams, SetValuesResults> SetValuesContext; + virtual ::kj::Promise<void> setValues(SetValuesContext context); + typedef ::ModeliBackend::RegisterFrontendParams RegisterFrontendParams; + typedef ::ModeliBackend::RegisterFrontendResults RegisterFrontendResults; + typedef ::capnp::CallContext<RegisterFrontendParams, RegisterFrontendResults> RegisterFrontendContext; + virtual ::kj::Promise<void> registerFrontend(RegisterFrontendContext context); + + inline ::ModeliBackend::Client thisCap() { + return ::capnp::Capability::Server::thisCap() + .template castAs< ::ModeliBackend>(); + } + + ::kj::Promise<void> dispatchCallInternal(uint16_t methodId, + ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context); +}; +#endif // !CAPNP_LITE + +class ModeliBackend::ChannelLink::Reader { +public: + typedef ChannelLink Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasMasterInstanceName() const; + inline ::capnp::Text::Reader getMasterInstanceName() const; + + inline bool hasSlaveInstanceName() const; + inline ::capnp::Text::Reader getSlaveInstanceName() const; + + inline ::uint32_t getMasterValueRef() const; + + inline ::uint32_t getSlaveValueRef() const; + + inline double getFactor() const; + + inline double getOffset() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::ChannelLink::Builder { +public: + typedef ChannelLink Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasMasterInstanceName(); + inline ::capnp::Text::Builder getMasterInstanceName(); + inline void setMasterInstanceName( ::capnp::Text::Reader value); + inline ::capnp::Text::Builder initMasterInstanceName(unsigned int size); + inline void adoptMasterInstanceName(::capnp::Orphan< ::capnp::Text>&& value); + inline ::capnp::Orphan< ::capnp::Text> disownMasterInstanceName(); + + inline bool hasSlaveInstanceName(); + inline ::capnp::Text::Builder getSlaveInstanceName(); + inline void setSlaveInstanceName( ::capnp::Text::Reader value); + inline ::capnp::Text::Builder initSlaveInstanceName(unsigned int size); + inline void adoptSlaveInstanceName(::capnp::Orphan< ::capnp::Text>&& value); + inline ::capnp::Orphan< ::capnp::Text> disownSlaveInstanceName(); + + inline ::uint32_t getMasterValueRef(); + inline void setMasterValueRef( ::uint32_t value); + + inline ::uint32_t getSlaveValueRef(); + inline void setSlaveValueRef( ::uint32_t value); + + inline double getFactor(); + inline void setFactor(double value); + + inline double getOffset(); + inline void setOffset(double value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::ChannelLink::Pipeline { +public: + typedef ChannelLink Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::PlayParams::Reader { +public: + typedef PlayParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::PlayParams::Builder { +public: + typedef PlayParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::PlayParams::Pipeline { +public: + typedef PlayParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::PlayResults::Reader { +public: + typedef PlayResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline ::int16_t getResult() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::PlayResults::Builder { +public: + typedef PlayResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline ::int16_t getResult(); + inline void setResult( ::int16_t value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::PlayResults::Pipeline { +public: + typedef PlayResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::PlayFastParams::Reader { +public: + typedef PlayFastParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::PlayFastParams::Builder { +public: + typedef PlayFastParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::PlayFastParams::Pipeline { +public: + typedef PlayFastParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::PlayFastResults::Reader { +public: + typedef PlayFastResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline ::int16_t getResult() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::PlayFastResults::Builder { +public: + typedef PlayFastResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline ::int16_t getResult(); + inline void setResult( ::int16_t value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::PlayFastResults::Pipeline { +public: + typedef PlayFastResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::PauseParams::Reader { +public: + typedef PauseParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::PauseParams::Builder { +public: + typedef PauseParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::PauseParams::Pipeline { +public: + typedef PauseParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::PauseResults::Reader { +public: + typedef PauseResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::PauseResults::Builder { +public: + typedef PauseResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::PauseResults::Pipeline { +public: + typedef PauseResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::StopParams::Reader { +public: + typedef StopParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::StopParams::Builder { +public: + typedef StopParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::StopParams::Pipeline { +public: + typedef StopParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::StopResults::Reader { +public: + typedef StopResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline ::int16_t getResult() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::StopResults::Builder { +public: + typedef StopResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline ::int16_t getResult(); + inline void setResult( ::int16_t value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::StopResults::Pipeline { +public: + typedef StopResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::AddFmuParams::Reader { +public: + typedef AddFmuParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasInstanceName() const; + inline ::capnp::Text::Reader getInstanceName() const; + + inline bool hasFmuFile() const; + inline ::capnp::Data::Reader getFmuFile() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::AddFmuParams::Builder { +public: + typedef AddFmuParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasInstanceName(); + inline ::capnp::Text::Builder getInstanceName(); + inline void setInstanceName( ::capnp::Text::Reader value); + inline ::capnp::Text::Builder initInstanceName(unsigned int size); + inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value); + inline ::capnp::Orphan< ::capnp::Text> disownInstanceName(); + + inline bool hasFmuFile(); + inline ::capnp::Data::Builder getFmuFile(); + inline void setFmuFile( ::capnp::Data::Reader value); + inline ::capnp::Data::Builder initFmuFile(unsigned int size); + inline void adoptFmuFile(::capnp::Orphan< ::capnp::Data>&& value); + inline ::capnp::Orphan< ::capnp::Data> disownFmuFile(); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::AddFmuParams::Pipeline { +public: + typedef AddFmuParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::AddFmuResults::Reader { +public: + typedef AddFmuResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool getResult() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::AddFmuResults::Builder { +public: + typedef AddFmuResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool getResult(); + inline void setResult(bool value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::AddFmuResults::Pipeline { +public: + typedef AddFmuResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::RemoveFmuParams::Reader { +public: + typedef RemoveFmuParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasInstanceName() const; + inline ::capnp::Text::Reader getInstanceName() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::RemoveFmuParams::Builder { +public: + typedef RemoveFmuParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasInstanceName(); + inline ::capnp::Text::Builder getInstanceName(); + inline void setInstanceName( ::capnp::Text::Reader value); + inline ::capnp::Text::Builder initInstanceName(unsigned int size); + inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value); + inline ::capnp::Orphan< ::capnp::Text> disownInstanceName(); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::RemoveFmuParams::Pipeline { +public: + typedef RemoveFmuParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::RemoveFmuResults::Reader { +public: + typedef RemoveFmuResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool getResult() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::RemoveFmuResults::Builder { +public: + typedef RemoveFmuResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool getResult(); + inline void setResult(bool value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::RemoveFmuResults::Pipeline { +public: + typedef RemoveFmuResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::AddChannelLinkParams::Reader { +public: + typedef AddChannelLinkParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasChannelLink() const; + inline ::ModeliBackend::ChannelLink::Reader getChannelLink() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::AddChannelLinkParams::Builder { +public: + typedef AddChannelLinkParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasChannelLink(); + inline ::ModeliBackend::ChannelLink::Builder getChannelLink(); + inline void setChannelLink( ::ModeliBackend::ChannelLink::Reader value); + inline ::ModeliBackend::ChannelLink::Builder initChannelLink(); + inline void adoptChannelLink(::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value); + inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> disownChannelLink(); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::AddChannelLinkParams::Pipeline { +public: + typedef AddChannelLinkParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + + inline ::ModeliBackend::ChannelLink::Pipeline getChannelLink(); +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::AddChannelLinkResults::Reader { +public: + typedef AddChannelLinkResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool getResult() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::AddChannelLinkResults::Builder { +public: + typedef AddChannelLinkResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool getResult(); + inline void setResult(bool value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::AddChannelLinkResults::Pipeline { +public: + typedef AddChannelLinkResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::RemoveChannelLinkParams::Reader { +public: + typedef RemoveChannelLinkParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasChannelLink() const; + inline ::ModeliBackend::ChannelLink::Reader getChannelLink() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::RemoveChannelLinkParams::Builder { +public: + typedef RemoveChannelLinkParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasChannelLink(); + inline ::ModeliBackend::ChannelLink::Builder getChannelLink(); + inline void setChannelLink( ::ModeliBackend::ChannelLink::Reader value); + inline ::ModeliBackend::ChannelLink::Builder initChannelLink(); + inline void adoptChannelLink(::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value); + inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> disownChannelLink(); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::RemoveChannelLinkParams::Pipeline { +public: + typedef RemoveChannelLinkParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + + inline ::ModeliBackend::ChannelLink::Pipeline getChannelLink(); +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::RemoveChannelLinkResults::Reader { +public: + typedef RemoveChannelLinkResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool getResult() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::RemoveChannelLinkResults::Builder { +public: + typedef RemoveChannelLinkResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool getResult(); + inline void setResult(bool value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::RemoveChannelLinkResults::Pipeline { +public: + typedef RemoveChannelLinkResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::SetValuesParams::Reader { +public: + typedef SetValuesParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasValues() const; + inline ::Values::Reader getValues() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::SetValuesParams::Builder { +public: + typedef SetValuesParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasValues(); + inline ::Values::Builder getValues(); + inline void setValues( ::Values::Reader value); + inline ::Values::Builder initValues(); + inline void adoptValues(::capnp::Orphan< ::Values>&& value); + inline ::capnp::Orphan< ::Values> disownValues(); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::SetValuesParams::Pipeline { +public: + typedef SetValuesParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + + inline ::Values::Pipeline getValues(); +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::SetValuesResults::Reader { +public: + typedef SetValuesResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline ::int16_t getResult() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::SetValuesResults::Builder { +public: + typedef SetValuesResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline ::int16_t getResult(); + inline void setResult( ::int16_t value); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::SetValuesResults::Pipeline { +public: + typedef SetValuesResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::RegisterFrontendParams::Reader { +public: + typedef RegisterFrontendParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasFrontend() const; +#if !CAPNP_LITE + inline ::ModeliFrontend::Client getFrontend() const; +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::RegisterFrontendParams::Builder { +public: + typedef RegisterFrontendParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasFrontend(); +#if !CAPNP_LITE + inline ::ModeliFrontend::Client getFrontend(); + inline void setFrontend( ::ModeliFrontend::Client&& value); + inline void setFrontend( ::ModeliFrontend::Client& value); + inline void adoptFrontend(::capnp::Orphan< ::ModeliFrontend>&& value); + inline ::capnp::Orphan< ::ModeliFrontend> disownFrontend(); +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::RegisterFrontendParams::Pipeline { +public: + typedef RegisterFrontendParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + + inline ::ModeliFrontend::Client getFrontend(); +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliBackend::RegisterFrontendResults::Reader { +public: + typedef RegisterFrontendResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliBackend::RegisterFrontendResults::Builder { +public: + typedef RegisterFrontendResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliBackend::RegisterFrontendResults::Pipeline { +public: + typedef RegisterFrontendResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +#if !CAPNP_LITE +class ModeliFrontend::Client + : public virtual ::capnp::Capability::Client { +public: + typedef ModeliFrontend Calls; + typedef ModeliFrontend Reads; + + Client(decltype(nullptr)); + explicit Client(::kj::Own< ::capnp::ClientHook>&& hook); + template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Server*>()>> + Client(::kj::Own<_t>&& server); + template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Client*>()>> + Client(::kj::Promise<_t>&& promise); + Client(::kj::Exception&& exception); + Client(Client&) = default; + Client(Client&&) = default; + Client& operator=(Client& other); + Client& operator=(Client&& other); + + ::capnp::Request< ::ModeliFrontend::NewValuesParams, ::ModeliFrontend::NewValuesResults> newValuesRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliFrontend::LogParams, ::ModeliFrontend::LogResults> logRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + +protected: + Client() = default; +}; + +class ModeliFrontend::Server + : public virtual ::capnp::Capability::Server { +public: + typedef ModeliFrontend Serves; + + ::kj::Promise<void> dispatchCall(uint64_t interfaceId, uint16_t methodId, + ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) + override; + +protected: + typedef ::ModeliFrontend::NewValuesParams NewValuesParams; + typedef ::ModeliFrontend::NewValuesResults NewValuesResults; + typedef ::capnp::CallContext<NewValuesParams, NewValuesResults> NewValuesContext; + virtual ::kj::Promise<void> newValues(NewValuesContext context); + typedef ::ModeliFrontend::LogParams LogParams; + typedef ::ModeliFrontend::LogResults LogResults; + typedef ::capnp::CallContext<LogParams, LogResults> LogContext; + virtual ::kj::Promise<void> log(LogContext context); + + inline ::ModeliFrontend::Client thisCap() { + return ::capnp::Capability::Server::thisCap() + .template castAs< ::ModeliFrontend>(); + } + + ::kj::Promise<void> dispatchCallInternal(uint16_t methodId, + ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context); +}; +#endif // !CAPNP_LITE + +class ModeliFrontend::NewValuesParams::Reader { +public: + typedef NewValuesParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline double getTimestamp() const; + + inline bool hasValues() const; + inline ::Values::Reader getValues() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliFrontend::NewValuesParams::Builder { +public: + typedef NewValuesParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline double getTimestamp(); + inline void setTimestamp(double value); + + inline bool hasValues(); + inline ::Values::Builder getValues(); + inline void setValues( ::Values::Reader value); + inline ::Values::Builder initValues(); + inline void adoptValues(::capnp::Orphan< ::Values>&& value); + inline ::capnp::Orphan< ::Values> disownValues(); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliFrontend::NewValuesParams::Pipeline { +public: + typedef NewValuesParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + + inline ::Values::Pipeline getValues(); +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliFrontend::NewValuesResults::Reader { +public: + typedef NewValuesResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliFrontend::NewValuesResults::Builder { +public: + typedef NewValuesResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliFrontend::NewValuesResults::Pipeline { +public: + typedef NewValuesResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliFrontend::LogParams::Reader { +public: + typedef LogParams Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasInstanceName() const; + inline ::capnp::Text::Reader getInstanceName() const; + + inline ::int16_t getStatus() const; + + inline bool hasMessage() const; + inline ::capnp::Text::Reader getMessage() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliFrontend::LogParams::Builder { +public: + typedef LogParams Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasInstanceName(); + inline ::capnp::Text::Builder getInstanceName(); + inline void setInstanceName( ::capnp::Text::Reader value); + inline ::capnp::Text::Builder initInstanceName(unsigned int size); + inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value); + inline ::capnp::Orphan< ::capnp::Text> disownInstanceName(); + + inline ::int16_t getStatus(); + inline void setStatus( ::int16_t value); + + inline bool hasMessage(); + inline ::capnp::Text::Builder getMessage(); + inline void setMessage( ::capnp::Text::Reader value); + inline ::capnp::Text::Builder initMessage(unsigned int size); + inline void adoptMessage(::capnp::Orphan< ::capnp::Text>&& value); + inline ::capnp::Orphan< ::capnp::Text> disownMessage(); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliFrontend::LogParams::Pipeline { +public: + typedef LogParams Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class ModeliFrontend::LogResults::Reader { +public: + typedef LogResults Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class ModeliFrontend::LogResults::Builder { +public: + typedef LogResults Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class ModeliFrontend::LogResults::Pipeline { +public: + typedef LogResults Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +class Values::Reader { +public: + typedef Values Reads; + + Reader() = default; + inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} + + inline ::capnp::MessageSize totalSize() const { + return _reader.totalSize().asPublic(); + } + +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { + return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); + } +#endif // !CAPNP_LITE + + inline bool hasInstanceName() const; + inline ::capnp::Text::Reader getInstanceName() const; + + inline bool hasIntegerValueRefs() const; + inline ::capnp::List< ::uint32_t>::Reader getIntegerValueRefs() const; + + inline bool hasIntegerValues() const; + inline ::capnp::List< ::int32_t>::Reader getIntegerValues() const; + + inline bool hasRealValueRefs() const; + inline ::capnp::List< ::uint32_t>::Reader getRealValueRefs() const; + + inline bool hasRealValues() const; + inline ::capnp::List<double>::Reader getRealValues() const; + + inline bool hasBoolValueRefs() const; + inline ::capnp::List< ::uint32_t>::Reader getBoolValueRefs() const; + + inline bool hasBoolValues() const; + inline ::capnp::List<bool>::Reader getBoolValues() const; + + inline bool hasStringValueRefs() const; + inline ::capnp::List< ::uint32_t>::Reader getStringValueRefs() const; + + inline bool hasStringValues() const; + inline ::capnp::List< ::capnp::Text>::Reader getStringValues() const; + +private: + ::capnp::_::StructReader _reader; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; + template <typename, ::capnp::Kind> + friend struct ::capnp::List; + friend class ::capnp::MessageBuilder; + friend class ::capnp::Orphanage; +}; + +class Values::Builder { +public: + typedef Values Builds; + + Builder() = delete; // Deleted to discourage incorrect usage. + // You can explicitly initialize to nullptr instead. + inline Builder(decltype(nullptr)) {} + inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} + inline operator Reader() const { return Reader(_builder.asReader()); } + inline Reader asReader() const { return *this; } + + inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } +#if !CAPNP_LITE + inline ::kj::StringTree toString() const { return asReader().toString(); } +#endif // !CAPNP_LITE + + inline bool hasInstanceName(); + inline ::capnp::Text::Builder getInstanceName(); + inline void setInstanceName( ::capnp::Text::Reader value); + inline ::capnp::Text::Builder initInstanceName(unsigned int size); + inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value); + inline ::capnp::Orphan< ::capnp::Text> disownInstanceName(); + + inline bool hasIntegerValueRefs(); + inline ::capnp::List< ::uint32_t>::Builder getIntegerValueRefs(); + inline void setIntegerValueRefs( ::capnp::List< ::uint32_t>::Reader value); + inline void setIntegerValueRefs(::kj::ArrayPtr<const ::uint32_t> value); + inline ::capnp::List< ::uint32_t>::Builder initIntegerValueRefs(unsigned int size); + inline void adoptIntegerValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value); + inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownIntegerValueRefs(); + + inline bool hasIntegerValues(); + inline ::capnp::List< ::int32_t>::Builder getIntegerValues(); + inline void setIntegerValues( ::capnp::List< ::int32_t>::Reader value); + inline void setIntegerValues(::kj::ArrayPtr<const ::int32_t> value); + inline ::capnp::List< ::int32_t>::Builder initIntegerValues(unsigned int size); + inline void adoptIntegerValues(::capnp::Orphan< ::capnp::List< ::int32_t>>&& value); + inline ::capnp::Orphan< ::capnp::List< ::int32_t>> disownIntegerValues(); + + inline bool hasRealValueRefs(); + inline ::capnp::List< ::uint32_t>::Builder getRealValueRefs(); + inline void setRealValueRefs( ::capnp::List< ::uint32_t>::Reader value); + inline void setRealValueRefs(::kj::ArrayPtr<const ::uint32_t> value); + inline ::capnp::List< ::uint32_t>::Builder initRealValueRefs(unsigned int size); + inline void adoptRealValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value); + inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownRealValueRefs(); + + inline bool hasRealValues(); + inline ::capnp::List<double>::Builder getRealValues(); + inline void setRealValues( ::capnp::List<double>::Reader value); + inline void setRealValues(::kj::ArrayPtr<const double> value); + inline ::capnp::List<double>::Builder initRealValues(unsigned int size); + inline void adoptRealValues(::capnp::Orphan< ::capnp::List<double>>&& value); + inline ::capnp::Orphan< ::capnp::List<double>> disownRealValues(); + + inline bool hasBoolValueRefs(); + inline ::capnp::List< ::uint32_t>::Builder getBoolValueRefs(); + inline void setBoolValueRefs( ::capnp::List< ::uint32_t>::Reader value); + inline void setBoolValueRefs(::kj::ArrayPtr<const ::uint32_t> value); + inline ::capnp::List< ::uint32_t>::Builder initBoolValueRefs(unsigned int size); + inline void adoptBoolValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value); + inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownBoolValueRefs(); + + inline bool hasBoolValues(); + inline ::capnp::List<bool>::Builder getBoolValues(); + inline void setBoolValues( ::capnp::List<bool>::Reader value); + inline void setBoolValues(::kj::ArrayPtr<const bool> value); + inline ::capnp::List<bool>::Builder initBoolValues(unsigned int size); + inline void adoptBoolValues(::capnp::Orphan< ::capnp::List<bool>>&& value); + inline ::capnp::Orphan< ::capnp::List<bool>> disownBoolValues(); + + inline bool hasStringValueRefs(); + inline ::capnp::List< ::uint32_t>::Builder getStringValueRefs(); + inline void setStringValueRefs( ::capnp::List< ::uint32_t>::Reader value); + inline void setStringValueRefs(::kj::ArrayPtr<const ::uint32_t> value); + inline ::capnp::List< ::uint32_t>::Builder initStringValueRefs(unsigned int size); + inline void adoptStringValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value); + inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownStringValueRefs(); + + inline bool hasStringValues(); + inline ::capnp::List< ::capnp::Text>::Builder getStringValues(); + inline void setStringValues( ::capnp::List< ::capnp::Text>::Reader value); + inline void setStringValues(::kj::ArrayPtr<const ::capnp::Text::Reader> value); + inline ::capnp::List< ::capnp::Text>::Builder initStringValues(unsigned int size); + inline void adoptStringValues(::capnp::Orphan< ::capnp::List< ::capnp::Text>>&& value); + inline ::capnp::Orphan< ::capnp::List< ::capnp::Text>> disownStringValues(); + +private: + ::capnp::_::StructBuilder _builder; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; + friend class ::capnp::Orphanage; + template <typename, ::capnp::Kind> + friend struct ::capnp::_::PointerHelpers; +}; + +#if !CAPNP_LITE +class Values::Pipeline { +public: + typedef Values Pipelines; + + inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} + inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) + : _typeless(kj::mv(typeless)) {} + +private: + ::capnp::AnyPointer::Pipeline _typeless; + friend class ::capnp::PipelineHook; + template <typename, ::capnp::Kind> + friend struct ::capnp::ToDynamic_; +}; +#endif // !CAPNP_LITE + +// ======================================================================================= + +#if !CAPNP_LITE +inline ModeliBackend::Client::Client(decltype(nullptr)) + : ::capnp::Capability::Client(nullptr) {} +inline ModeliBackend::Client::Client( + ::kj::Own< ::capnp::ClientHook>&& hook) + : ::capnp::Capability::Client(::kj::mv(hook)) {} +template <typename _t, typename> +inline ModeliBackend::Client::Client(::kj::Own<_t>&& server) + : ::capnp::Capability::Client(::kj::mv(server)) {} +template <typename _t, typename> +inline ModeliBackend::Client::Client(::kj::Promise<_t>&& promise) + : ::capnp::Capability::Client(::kj::mv(promise)) {} +inline ModeliBackend::Client::Client(::kj::Exception&& exception) + : ::capnp::Capability::Client(::kj::mv(exception)) {} +inline ::ModeliBackend::Client& ModeliBackend::Client::operator=(Client& other) { + ::capnp::Capability::Client::operator=(other); + return *this; +} +inline ::ModeliBackend::Client& ModeliBackend::Client::operator=(Client&& other) { + ::capnp::Capability::Client::operator=(kj::mv(other)); + return *this; +} + +#endif // !CAPNP_LITE +inline bool ModeliBackend::ChannelLink::Reader::hasMasterInstanceName() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::ChannelLink::Builder::hasMasterInstanceName() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::Text::Reader ModeliBackend::ChannelLink::Reader::getMasterInstanceName() const { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::getMasterInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void ModeliBackend::ChannelLink::Builder::setMasterInstanceName( ::capnp::Text::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::initMasterInstanceName(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), size); +} +inline void ModeliBackend::ChannelLink::Builder::adoptMasterInstanceName( + ::capnp::Orphan< ::capnp::Text>&& value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::ChannelLink::Builder::disownMasterInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline bool ModeliBackend::ChannelLink::Reader::hasSlaveInstanceName() const { + return !_reader.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::ChannelLink::Builder::hasSlaveInstanceName() { + return !_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::Text::Reader ModeliBackend::ChannelLink::Reader::getSlaveInstanceName() const { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} +inline ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::getSlaveInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} +inline void ModeliBackend::ChannelLink::Builder::setSlaveInstanceName( ::capnp::Text::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), value); +} +inline ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::initSlaveInstanceName(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), size); +} +inline void ModeliBackend::ChannelLink::Builder::adoptSlaveInstanceName( + ::capnp::Orphan< ::capnp::Text>&& value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::ChannelLink::Builder::disownSlaveInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} + +inline ::uint32_t ModeliBackend::ChannelLink::Reader::getMasterValueRef() const { + return _reader.getDataField< ::uint32_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline ::uint32_t ModeliBackend::ChannelLink::Builder::getMasterValueRef() { + return _builder.getDataField< ::uint32_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::ChannelLink::Builder::setMasterValueRef( ::uint32_t value) { + _builder.setDataField< ::uint32_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline ::uint32_t ModeliBackend::ChannelLink::Reader::getSlaveValueRef() const { + return _reader.getDataField< ::uint32_t>( + ::capnp::bounded<1>() * ::capnp::ELEMENTS); +} + +inline ::uint32_t ModeliBackend::ChannelLink::Builder::getSlaveValueRef() { + return _builder.getDataField< ::uint32_t>( + ::capnp::bounded<1>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::ChannelLink::Builder::setSlaveValueRef( ::uint32_t value) { + _builder.setDataField< ::uint32_t>( + ::capnp::bounded<1>() * ::capnp::ELEMENTS, value); +} + +inline double ModeliBackend::ChannelLink::Reader::getFactor() const { + return _reader.getDataField<double>( + ::capnp::bounded<1>() * ::capnp::ELEMENTS); +} + +inline double ModeliBackend::ChannelLink::Builder::getFactor() { + return _builder.getDataField<double>( + ::capnp::bounded<1>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::ChannelLink::Builder::setFactor(double value) { + _builder.setDataField<double>( + ::capnp::bounded<1>() * ::capnp::ELEMENTS, value); +} + +inline double ModeliBackend::ChannelLink::Reader::getOffset() const { + return _reader.getDataField<double>( + ::capnp::bounded<2>() * ::capnp::ELEMENTS); +} + +inline double ModeliBackend::ChannelLink::Builder::getOffset() { + return _builder.getDataField<double>( + ::capnp::bounded<2>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::ChannelLink::Builder::setOffset(double value) { + _builder.setDataField<double>( + ::capnp::bounded<2>() * ::capnp::ELEMENTS, value); +} + +inline ::int16_t ModeliBackend::PlayResults::Reader::getResult() const { + return _reader.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline ::int16_t ModeliBackend::PlayResults::Builder::getResult() { + return _builder.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::PlayResults::Builder::setResult( ::int16_t value) { + _builder.setDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline ::int16_t ModeliBackend::PlayFastResults::Reader::getResult() const { + return _reader.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline ::int16_t ModeliBackend::PlayFastResults::Builder::getResult() { + return _builder.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::PlayFastResults::Builder::setResult( ::int16_t value) { + _builder.setDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline ::int16_t ModeliBackend::StopResults::Reader::getResult() const { + return _reader.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline ::int16_t ModeliBackend::StopResults::Builder::getResult() { + return _builder.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::StopResults::Builder::setResult( ::int16_t value) { + _builder.setDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline bool ModeliBackend::AddFmuParams::Reader::hasInstanceName() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::AddFmuParams::Builder::hasInstanceName() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::Text::Reader ModeliBackend::AddFmuParams::Reader::getInstanceName() const { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::capnp::Text::Builder ModeliBackend::AddFmuParams::Builder::getInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void ModeliBackend::AddFmuParams::Builder::setInstanceName( ::capnp::Text::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::capnp::Text::Builder ModeliBackend::AddFmuParams::Builder::initInstanceName(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), size); +} +inline void ModeliBackend::AddFmuParams::Builder::adoptInstanceName( + ::capnp::Orphan< ::capnp::Text>&& value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::AddFmuParams::Builder::disownInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline bool ModeliBackend::AddFmuParams::Reader::hasFmuFile() const { + return !_reader.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::AddFmuParams::Builder::hasFmuFile() { + return !_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::Data::Reader ModeliBackend::AddFmuParams::Reader::getFmuFile() const { + return ::capnp::_::PointerHelpers< ::capnp::Data>::get(_reader.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} +inline ::capnp::Data::Builder ModeliBackend::AddFmuParams::Builder::getFmuFile() { + return ::capnp::_::PointerHelpers< ::capnp::Data>::get(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} +inline void ModeliBackend::AddFmuParams::Builder::setFmuFile( ::capnp::Data::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::Data>::set(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), value); +} +inline ::capnp::Data::Builder ModeliBackend::AddFmuParams::Builder::initFmuFile(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::Data>::init(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), size); +} +inline void ModeliBackend::AddFmuParams::Builder::adoptFmuFile( + ::capnp::Orphan< ::capnp::Data>&& value) { + ::capnp::_::PointerHelpers< ::capnp::Data>::adopt(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::Data> ModeliBackend::AddFmuParams::Builder::disownFmuFile() { + return ::capnp::_::PointerHelpers< ::capnp::Data>::disown(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} + +inline bool ModeliBackend::AddFmuResults::Reader::getResult() const { + return _reader.getDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline bool ModeliBackend::AddFmuResults::Builder::getResult() { + return _builder.getDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::AddFmuResults::Builder::setResult(bool value) { + _builder.setDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline bool ModeliBackend::RemoveFmuParams::Reader::hasInstanceName() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::RemoveFmuParams::Builder::hasInstanceName() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::Text::Reader ModeliBackend::RemoveFmuParams::Reader::getInstanceName() const { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::capnp::Text::Builder ModeliBackend::RemoveFmuParams::Builder::getInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void ModeliBackend::RemoveFmuParams::Builder::setInstanceName( ::capnp::Text::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::capnp::Text::Builder ModeliBackend::RemoveFmuParams::Builder::initInstanceName(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), size); +} +inline void ModeliBackend::RemoveFmuParams::Builder::adoptInstanceName( + ::capnp::Orphan< ::capnp::Text>&& value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::RemoveFmuParams::Builder::disownInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline bool ModeliBackend::RemoveFmuResults::Reader::getResult() const { + return _reader.getDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline bool ModeliBackend::RemoveFmuResults::Builder::getResult() { + return _builder.getDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::RemoveFmuResults::Builder::setResult(bool value) { + _builder.setDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline bool ModeliBackend::AddChannelLinkParams::Reader::hasChannelLink() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::AddChannelLinkParams::Builder::hasChannelLink() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::ModeliBackend::ChannelLink::Reader ModeliBackend::AddChannelLinkParams::Reader::getChannelLink() const { + return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::ModeliBackend::ChannelLink::Builder ModeliBackend::AddChannelLinkParams::Builder::getChannelLink() { + return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +#if !CAPNP_LITE +inline ::ModeliBackend::ChannelLink::Pipeline ModeliBackend::AddChannelLinkParams::Pipeline::getChannelLink() { + return ::ModeliBackend::ChannelLink::Pipeline(_typeless.getPointerField(0)); +} +#endif // !CAPNP_LITE +inline void ModeliBackend::AddChannelLinkParams::Builder::setChannelLink( ::ModeliBackend::ChannelLink::Reader value) { + ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::ModeliBackend::ChannelLink::Builder ModeliBackend::AddChannelLinkParams::Builder::initChannelLink() { + return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void ModeliBackend::AddChannelLinkParams::Builder::adoptChannelLink( + ::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value) { + ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> ModeliBackend::AddChannelLinkParams::Builder::disownChannelLink() { + return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline bool ModeliBackend::AddChannelLinkResults::Reader::getResult() const { + return _reader.getDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline bool ModeliBackend::AddChannelLinkResults::Builder::getResult() { + return _builder.getDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::AddChannelLinkResults::Builder::setResult(bool value) { + _builder.setDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline bool ModeliBackend::RemoveChannelLinkParams::Reader::hasChannelLink() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::RemoveChannelLinkParams::Builder::hasChannelLink() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::ModeliBackend::ChannelLink::Reader ModeliBackend::RemoveChannelLinkParams::Reader::getChannelLink() const { + return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::ModeliBackend::ChannelLink::Builder ModeliBackend::RemoveChannelLinkParams::Builder::getChannelLink() { + return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +#if !CAPNP_LITE +inline ::ModeliBackend::ChannelLink::Pipeline ModeliBackend::RemoveChannelLinkParams::Pipeline::getChannelLink() { + return ::ModeliBackend::ChannelLink::Pipeline(_typeless.getPointerField(0)); +} +#endif // !CAPNP_LITE +inline void ModeliBackend::RemoveChannelLinkParams::Builder::setChannelLink( ::ModeliBackend::ChannelLink::Reader value) { + ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::ModeliBackend::ChannelLink::Builder ModeliBackend::RemoveChannelLinkParams::Builder::initChannelLink() { + return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void ModeliBackend::RemoveChannelLinkParams::Builder::adoptChannelLink( + ::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value) { + ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> ModeliBackend::RemoveChannelLinkParams::Builder::disownChannelLink() { + return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline bool ModeliBackend::RemoveChannelLinkResults::Reader::getResult() const { + return _reader.getDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline bool ModeliBackend::RemoveChannelLinkResults::Builder::getResult() { + return _builder.getDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::RemoveChannelLinkResults::Builder::setResult(bool value) { + _builder.setDataField<bool>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline bool ModeliBackend::SetValuesParams::Reader::hasValues() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::SetValuesParams::Builder::hasValues() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::Values::Reader ModeliBackend::SetValuesParams::Reader::getValues() const { + return ::capnp::_::PointerHelpers< ::Values>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::Values::Builder ModeliBackend::SetValuesParams::Builder::getValues() { + return ::capnp::_::PointerHelpers< ::Values>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +#if !CAPNP_LITE +inline ::Values::Pipeline ModeliBackend::SetValuesParams::Pipeline::getValues() { + return ::Values::Pipeline(_typeless.getPointerField(0)); +} +#endif // !CAPNP_LITE +inline void ModeliBackend::SetValuesParams::Builder::setValues( ::Values::Reader value) { + ::capnp::_::PointerHelpers< ::Values>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::Values::Builder ModeliBackend::SetValuesParams::Builder::initValues() { + return ::capnp::_::PointerHelpers< ::Values>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void ModeliBackend::SetValuesParams::Builder::adoptValues( + ::capnp::Orphan< ::Values>&& value) { + ::capnp::_::PointerHelpers< ::Values>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::Values> ModeliBackend::SetValuesParams::Builder::disownValues() { + return ::capnp::_::PointerHelpers< ::Values>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline ::int16_t ModeliBackend::SetValuesResults::Reader::getResult() const { + return _reader.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline ::int16_t ModeliBackend::SetValuesResults::Builder::getResult() { + return _builder.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliBackend::SetValuesResults::Builder::setResult( ::int16_t value) { + _builder.setDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline bool ModeliBackend::RegisterFrontendParams::Reader::hasFrontend() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliBackend::RegisterFrontendParams::Builder::hasFrontend() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +#if !CAPNP_LITE +inline ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Reader::getFrontend() const { + return ::capnp::_::PointerHelpers< ::ModeliFrontend>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Builder::getFrontend() { + return ::capnp::_::PointerHelpers< ::ModeliFrontend>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Pipeline::getFrontend() { + return ::ModeliFrontend::Client(_typeless.getPointerField(0).asCap()); +} +inline void ModeliBackend::RegisterFrontendParams::Builder::setFrontend( ::ModeliFrontend::Client&& cap) { + ::capnp::_::PointerHelpers< ::ModeliFrontend>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(cap)); +} +inline void ModeliBackend::RegisterFrontendParams::Builder::setFrontend( ::ModeliFrontend::Client& cap) { + ::capnp::_::PointerHelpers< ::ModeliFrontend>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), cap); +} +inline void ModeliBackend::RegisterFrontendParams::Builder::adoptFrontend( + ::capnp::Orphan< ::ModeliFrontend>&& value) { + ::capnp::_::PointerHelpers< ::ModeliFrontend>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::ModeliFrontend> ModeliBackend::RegisterFrontendParams::Builder::disownFrontend() { + return ::capnp::_::PointerHelpers< ::ModeliFrontend>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +#endif // !CAPNP_LITE + +#if !CAPNP_LITE +inline ModeliFrontend::Client::Client(decltype(nullptr)) + : ::capnp::Capability::Client(nullptr) {} +inline ModeliFrontend::Client::Client( + ::kj::Own< ::capnp::ClientHook>&& hook) + : ::capnp::Capability::Client(::kj::mv(hook)) {} +template <typename _t, typename> +inline ModeliFrontend::Client::Client(::kj::Own<_t>&& server) + : ::capnp::Capability::Client(::kj::mv(server)) {} +template <typename _t, typename> +inline ModeliFrontend::Client::Client(::kj::Promise<_t>&& promise) + : ::capnp::Capability::Client(::kj::mv(promise)) {} +inline ModeliFrontend::Client::Client(::kj::Exception&& exception) + : ::capnp::Capability::Client(::kj::mv(exception)) {} +inline ::ModeliFrontend::Client& ModeliFrontend::Client::operator=(Client& other) { + ::capnp::Capability::Client::operator=(other); + return *this; +} +inline ::ModeliFrontend::Client& ModeliFrontend::Client::operator=(Client&& other) { + ::capnp::Capability::Client::operator=(kj::mv(other)); + return *this; +} + +#endif // !CAPNP_LITE +inline double ModeliFrontend::NewValuesParams::Reader::getTimestamp() const { + return _reader.getDataField<double>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline double ModeliFrontend::NewValuesParams::Builder::getTimestamp() { + return _builder.getDataField<double>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliFrontend::NewValuesParams::Builder::setTimestamp(double value) { + _builder.setDataField<double>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline bool ModeliFrontend::NewValuesParams::Reader::hasValues() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliFrontend::NewValuesParams::Builder::hasValues() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::Values::Reader ModeliFrontend::NewValuesParams::Reader::getValues() const { + return ::capnp::_::PointerHelpers< ::Values>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::Values::Builder ModeliFrontend::NewValuesParams::Builder::getValues() { + return ::capnp::_::PointerHelpers< ::Values>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +#if !CAPNP_LITE +inline ::Values::Pipeline ModeliFrontend::NewValuesParams::Pipeline::getValues() { + return ::Values::Pipeline(_typeless.getPointerField(0)); +} +#endif // !CAPNP_LITE +inline void ModeliFrontend::NewValuesParams::Builder::setValues( ::Values::Reader value) { + ::capnp::_::PointerHelpers< ::Values>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::Values::Builder ModeliFrontend::NewValuesParams::Builder::initValues() { + return ::capnp::_::PointerHelpers< ::Values>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void ModeliFrontend::NewValuesParams::Builder::adoptValues( + ::capnp::Orphan< ::Values>&& value) { + ::capnp::_::PointerHelpers< ::Values>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::Values> ModeliFrontend::NewValuesParams::Builder::disownValues() { + return ::capnp::_::PointerHelpers< ::Values>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline bool ModeliFrontend::LogParams::Reader::hasInstanceName() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliFrontend::LogParams::Builder::hasInstanceName() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::Text::Reader ModeliFrontend::LogParams::Reader::getInstanceName() const { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::getInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void ModeliFrontend::LogParams::Builder::setInstanceName( ::capnp::Text::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::initInstanceName(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), size); +} +inline void ModeliFrontend::LogParams::Builder::adoptInstanceName( + ::capnp::Orphan< ::capnp::Text>&& value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::Text> ModeliFrontend::LogParams::Builder::disownInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline ::int16_t ModeliFrontend::LogParams::Reader::getStatus() const { + return _reader.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} + +inline ::int16_t ModeliFrontend::LogParams::Builder::getStatus() { + return _builder.getDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS); +} +inline void ModeliFrontend::LogParams::Builder::setStatus( ::int16_t value) { + _builder.setDataField< ::int16_t>( + ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); +} + +inline bool ModeliFrontend::LogParams::Reader::hasMessage() const { + return !_reader.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); +} +inline bool ModeliFrontend::LogParams::Builder::hasMessage() { + return !_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::Text::Reader ModeliFrontend::LogParams::Reader::getMessage() const { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} +inline ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::getMessage() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} +inline void ModeliFrontend::LogParams::Builder::setMessage( ::capnp::Text::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), value); +} +inline ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::initMessage(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), size); +} +inline void ModeliFrontend::LogParams::Builder::adoptMessage( + ::capnp::Orphan< ::capnp::Text>&& value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::Text> ModeliFrontend::LogParams::Builder::disownMessage() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasInstanceName() const { + return !_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasInstanceName() { + return !_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::Text::Reader Values::Reader::getInstanceName() const { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline ::capnp::Text::Builder Values::Builder::getInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setInstanceName( ::capnp::Text::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), value); +} +inline ::capnp::Text::Builder Values::Builder::initInstanceName(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptInstanceName( + ::capnp::Orphan< ::capnp::Text>&& value) { + ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::Text> Values::Builder::disownInstanceName() { + return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( + ::capnp::bounded<0>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasIntegerValueRefs() const { + return !_reader.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasIntegerValueRefs() { + return !_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::List< ::uint32_t>::Reader Values::Reader::getIntegerValueRefs() const { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} +inline ::capnp::List< ::uint32_t>::Builder Values::Builder::getIntegerValueRefs() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setIntegerValueRefs( ::capnp::List< ::uint32_t>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), value); +} +inline void Values::Builder::setIntegerValueRefs(::kj::ArrayPtr<const ::uint32_t> value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), value); +} +inline ::capnp::List< ::uint32_t>::Builder Values::Builder::initIntegerValueRefs(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptIntegerValueRefs( + ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownIntegerValueRefs() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField( + ::capnp::bounded<1>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasIntegerValues() const { + return !_reader.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasIntegerValues() { + return !_builder.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::List< ::int32_t>::Reader Values::Reader::getIntegerValues() const { + return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::get(_reader.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS)); +} +inline ::capnp::List< ::int32_t>::Builder Values::Builder::getIntegerValues() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::get(_builder.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setIntegerValues( ::capnp::List< ::int32_t>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::set(_builder.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS), value); +} +inline void Values::Builder::setIntegerValues(::kj::ArrayPtr<const ::int32_t> value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::set(_builder.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS), value); +} +inline ::capnp::List< ::int32_t>::Builder Values::Builder::initIntegerValues(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::init(_builder.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptIntegerValues( + ::capnp::Orphan< ::capnp::List< ::int32_t>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::adopt(_builder.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::List< ::int32_t>> Values::Builder::disownIntegerValues() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::disown(_builder.getPointerField( + ::capnp::bounded<2>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasRealValueRefs() const { + return !_reader.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasRealValueRefs() { + return !_builder.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::List< ::uint32_t>::Reader Values::Reader::getRealValueRefs() const { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS)); +} +inline ::capnp::List< ::uint32_t>::Builder Values::Builder::getRealValueRefs() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setRealValueRefs( ::capnp::List< ::uint32_t>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS), value); +} +inline void Values::Builder::setRealValueRefs(::kj::ArrayPtr<const ::uint32_t> value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS), value); +} +inline ::capnp::List< ::uint32_t>::Builder Values::Builder::initRealValueRefs(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptRealValueRefs( + ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownRealValueRefs() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField( + ::capnp::bounded<3>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasRealValues() const { + return !_reader.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasRealValues() { + return !_builder.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::List<double>::Reader Values::Reader::getRealValues() const { + return ::capnp::_::PointerHelpers< ::capnp::List<double>>::get(_reader.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS)); +} +inline ::capnp::List<double>::Builder Values::Builder::getRealValues() { + return ::capnp::_::PointerHelpers< ::capnp::List<double>>::get(_builder.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setRealValues( ::capnp::List<double>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List<double>>::set(_builder.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS), value); +} +inline void Values::Builder::setRealValues(::kj::ArrayPtr<const double> value) { + ::capnp::_::PointerHelpers< ::capnp::List<double>>::set(_builder.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS), value); +} +inline ::capnp::List<double>::Builder Values::Builder::initRealValues(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List<double>>::init(_builder.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptRealValues( + ::capnp::Orphan< ::capnp::List<double>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List<double>>::adopt(_builder.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::List<double>> Values::Builder::disownRealValues() { + return ::capnp::_::PointerHelpers< ::capnp::List<double>>::disown(_builder.getPointerField( + ::capnp::bounded<4>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasBoolValueRefs() const { + return !_reader.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasBoolValueRefs() { + return !_builder.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::List< ::uint32_t>::Reader Values::Reader::getBoolValueRefs() const { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS)); +} +inline ::capnp::List< ::uint32_t>::Builder Values::Builder::getBoolValueRefs() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setBoolValueRefs( ::capnp::List< ::uint32_t>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS), value); +} +inline void Values::Builder::setBoolValueRefs(::kj::ArrayPtr<const ::uint32_t> value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS), value); +} +inline ::capnp::List< ::uint32_t>::Builder Values::Builder::initBoolValueRefs(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptBoolValueRefs( + ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownBoolValueRefs() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField( + ::capnp::bounded<5>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasBoolValues() const { + return !_reader.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasBoolValues() { + return !_builder.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::List<bool>::Reader Values::Reader::getBoolValues() const { + return ::capnp::_::PointerHelpers< ::capnp::List<bool>>::get(_reader.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS)); +} +inline ::capnp::List<bool>::Builder Values::Builder::getBoolValues() { + return ::capnp::_::PointerHelpers< ::capnp::List<bool>>::get(_builder.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setBoolValues( ::capnp::List<bool>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List<bool>>::set(_builder.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS), value); +} +inline void Values::Builder::setBoolValues(::kj::ArrayPtr<const bool> value) { + ::capnp::_::PointerHelpers< ::capnp::List<bool>>::set(_builder.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS), value); +} +inline ::capnp::List<bool>::Builder Values::Builder::initBoolValues(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List<bool>>::init(_builder.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptBoolValues( + ::capnp::Orphan< ::capnp::List<bool>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List<bool>>::adopt(_builder.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::List<bool>> Values::Builder::disownBoolValues() { + return ::capnp::_::PointerHelpers< ::capnp::List<bool>>::disown(_builder.getPointerField( + ::capnp::bounded<6>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasStringValueRefs() const { + return !_reader.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasStringValueRefs() { + return !_builder.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::List< ::uint32_t>::Reader Values::Reader::getStringValueRefs() const { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS)); +} +inline ::capnp::List< ::uint32_t>::Builder Values::Builder::getStringValueRefs() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setStringValueRefs( ::capnp::List< ::uint32_t>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS), value); +} +inline void Values::Builder::setStringValueRefs(::kj::ArrayPtr<const ::uint32_t> value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS), value); +} +inline ::capnp::List< ::uint32_t>::Builder Values::Builder::initStringValueRefs(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptStringValueRefs( + ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownStringValueRefs() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField( + ::capnp::bounded<7>() * ::capnp::POINTERS)); +} + +inline bool Values::Reader::hasStringValues() const { + return !_reader.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS).isNull(); +} +inline bool Values::Builder::hasStringValues() { + return !_builder.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS).isNull(); +} +inline ::capnp::List< ::capnp::Text>::Reader Values::Reader::getStringValues() const { + return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::get(_reader.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS)); +} +inline ::capnp::List< ::capnp::Text>::Builder Values::Builder::getStringValues() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::get(_builder.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS)); +} +inline void Values::Builder::setStringValues( ::capnp::List< ::capnp::Text>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::set(_builder.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS), value); +} +inline void Values::Builder::setStringValues(::kj::ArrayPtr<const ::capnp::Text::Reader> value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::set(_builder.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS), value); +} +inline ::capnp::List< ::capnp::Text>::Builder Values::Builder::initStringValues(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::init(_builder.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS), size); +} +inline void Values::Builder::adoptStringValues( + ::capnp::Orphan< ::capnp::List< ::capnp::Text>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::adopt(_builder.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS), kj::mv(value)); +} +inline ::capnp::Orphan< ::capnp::List< ::capnp::Text>> Values::Builder::disownStringValues() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::disown(_builder.getPointerField( + ::capnp::bounded<8>() * ::capnp::POINTERS)); +} + + +#endif // CAPNP_INCLUDED_b51166b0ce5aa3a5_ diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..39aa961b7f1c62300e6a5fdf110001a715c207af --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj @@ -0,0 +1,208 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <VCProjectVersion>15.0</VCProjectVersion> + <ProjectGuid>{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>ModeliRpcNative</RootNamespace> + <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared" /> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <Lib> + <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Lib> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <Lib> + <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Lib> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <Lib> + <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Lib> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <Lib> + <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Lib> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="IRpcFrontend.h" /> + <ClInclude Include="CapnConverter.h" /> + <ClInclude Include="ModeliFrontendImpl.h" /> + <ClInclude Include="ModeliRpc.capnp.h" /> + <ClInclude Include="RpcFrontend.h" /> + <ClInclude Include="stdafx.h" /> + <ClInclude Include="targetver.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="CapnConverter.cpp" /> + <ClCompile Include="ModeliFrontendImpl.cpp" /> + <ClCompile Include="RpcFrontend.cpp" /> + <ClCompile Include="stdafx.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClCompile Include="ModeliRpc.capnp.c++"> + <FileType>Document</FileType> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..88394638939e8a5834177effe5ec7f0a58c27102 --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="targetver.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ModeliFrontendImpl.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="CapnConverter.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ModeliRpc.capnp.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="IRpcFrontend.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="RpcFrontend.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="CapnConverter.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ModeliFrontendImpl.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ModeliRpc.capnp.c++"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="RpcFrontend.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp b/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp new file mode 100644 index 0000000000000000000000000000000000000000..37397e6dddc790280fc2bcfe25545afec7c7dc72 --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp @@ -0,0 +1,131 @@ +#include "stdafx.h" +#include "RpcFrontend.h" +#include "CapnConverter.h" +#include "ModeliRpc.capnp.h" +#include "ModeliFrontendImpl.h" +#include "capnp/ez-rpc.h" + +RpcFrontend::RpcFrontend() +{ +} + +RpcFrontend::~RpcFrontend() +{ +} + +void RpcFrontend::destroy() +{ + delete(this); +} + +void RpcFrontend::connect(std::string address, int port) +{ + _client = std::make_unique<capnp::EzRpcClient>(address, port); +} + +void RpcFrontend::registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback) +{ + if (!_client) + { + return; + } + auto backend = _client->getMain<ModeliBackend>(); + auto regRequest = backend.registerFrontendRequest(); + regRequest.setFrontend(kj::heap<ModeliFrontendImpl>(newValuesCallback, logCallback)); + regRequest.send().wait(_client->getWaitScope()); + +} + +fmi2Status RpcFrontend::play() +{ + if (!_client) + { + return fmi2Error; + } + auto backend = _client->getMain<ModeliBackend>(); + return static_cast<fmi2Status>(backend.playRequest().send().wait(_client->getWaitScope()).getResult()); +} + +void RpcFrontend::pause() +{ + if (!_client) + { + return; + } + auto backend = _client->getMain<ModeliBackend>(); + backend.pauseRequest().send().wait(_client->getWaitScope()); +} + +fmi2Status RpcFrontend::stop() +{ + if (!_client) + { + return fmi2Error; + } + auto backend = _client->getMain<ModeliBackend>(); + return static_cast<fmi2Status>(backend.stopRequest().send().wait(_client->getWaitScope()).getResult()); +} + +bool RpcFrontend::addFmu(std::string instanceName, std::vector<unsigned char> fmuFile) +{ + if (!_client) + { + return false; + } + auto backend = _client->getMain<ModeliBackend>(); + auto addFmuReq = backend.addFmuRequest(); + addFmuReq.setInstanceName(instanceName); + addFmuReq.setFmuFile(kj::arrayPtr(fmuFile.data(), fmuFile.size())); + return addFmuReq.send().wait(_client->getWaitScope()).getResult(); +} + +bool RpcFrontend::removeFmu(std::string instanceName) +{ + if (!_client) + { + return false; + } + auto backend = _client->getMain<ModeliBackend>(); + auto removefmuReq = backend.removeFmuRequest(); + removefmuReq.setInstanceName(instanceName); + return removefmuReq.send().wait(_client->getWaitScope()).getResult(); +} + +bool RpcFrontend::addChannelLink(ChannelLink channelLink) +{ + if (!_client) + { + return false; + } + // Send request + auto backend = _client->getMain<ModeliBackend>(); + auto request = backend.addChannelLinkRequest(); + request.setChannelLink(CapnConverter::convertChannelLink(channelLink)); + return request.send().wait(_client->getWaitScope()).getResult(); +} + +bool RpcFrontend::removeChannelink(ChannelLink channelLink) +{ + if (!_client) + { + return false; + } + // Send request + auto backend = _client->getMain<ModeliBackend>(); + auto request = backend.removeChannelLinkRequest(); + request.setChannelLink(CapnConverter::convertChannelLink(channelLink)); + return request.send().wait(_client->getWaitScope()).getResult(); +} + +fmi2Status RpcFrontend::setValues(ValuesStruct values) +{ + if (!_client) + { + return fmi2Error; + } + // Send request + auto backend = _client->getMain<ModeliBackend>(); + auto request = backend.setValuesRequest(); + request.setValues(CapnConverter::convertValues(values)); + return static_cast<fmi2Status>(request.send().wait(_client->getWaitScope()).getResult()); +} \ No newline at end of file diff --git a/ModeliRpc/ModeliRpcNative/RpcFrontend.h b/ModeliRpc/ModeliRpcNative/RpcFrontend.h new file mode 100644 index 0000000000000000000000000000000000000000..e44ecd16f64d081b09ef1a6ab3f725c7296aec92 --- /dev/null +++ b/ModeliRpc/ModeliRpcNative/RpcFrontend.h @@ -0,0 +1,38 @@ +#pragma once +#include "IRpcFrontend.h" +#include <memory> + + +namespace capnp +{ + class EzRpcClient; +} + +class RpcFrontend : public IRpcFrontend +{ +public: + RpcFrontend(); + ~RpcFrontend(); +private: + std::unique_ptr<capnp::EzRpcClient> _client; + + // Inherited via IModeliFrontend + void destroy() override; + void connect(std::string address, int port) override; + void registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback) override; + fmi2Status play() override; + void pause() override; + fmi2Status stop() override; + bool addFmu(std::string instanceName, std::vector<unsigned char> fmuFile) override; + bool removeFmu(std::string instanceName) override; + bool addChannelLink(ChannelLink channelLink) override; + bool removeChannelink(ChannelLink channelLink) override; + fmi2Status setValues(ValuesStruct values) override; +}; + +/// Factory method that returns an implementation of IRpcFrontend. +IRpcFrontend* createRpcFrontend() +{ + return new RpcFrontend(); +} + diff --git a/ModeliRpc/ModeliRpcNative/stdafx.cpp b/ModeliRpc/ModeliRpcNative/stdafx.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0276f103440753b20c16291ffbf967b3c08fa225 Binary files /dev/null and b/ModeliRpc/ModeliRpcNative/stdafx.cpp differ diff --git a/ModeliRpc/ModeliRpcNative/stdafx.h b/ModeliRpc/ModeliRpcNative/stdafx.h new file mode 100644 index 0000000000000000000000000000000000000000..397a1e5546242261ad688b4ccfa061124b11e936 Binary files /dev/null and b/ModeliRpc/ModeliRpcNative/stdafx.h differ diff --git a/ModeliRpc/ModeliRpcNative/targetver.h b/ModeliRpc/ModeliRpcNative/targetver.h new file mode 100644 index 0000000000000000000000000000000000000000..567cd346efccbe2d1f43a4056bdcb58a2b93e1a8 Binary files /dev/null and b/ModeliRpc/ModeliRpcNative/targetver.h differ