From d75e62a2cd5ce3281af24a06475f59aa2e69b61d Mon Sep 17 00:00:00 2001 From: Tim Uebelhoer <tim.uebelhoer@rwth-aachen.de> Date: Tue, 19 Dec 2017 00:34:58 +0100 Subject: [PATCH] Added ping --- ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ | 149 +++++++++++--- ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h | 182 ++++++++++++++++++ ModeliRpc/ModeliRpcNative/RpcFrontend.cpp | 4 + 3 files changed, 308 insertions(+), 27 deletions(-) diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ index 7b9a27e..4e842cc 100644 --- a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ +++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ @@ -5,7 +5,7 @@ namespace capnp { namespace schemas { -static const ::capnp::_::AlignedData<131> b_c189361aa8d3ec0a = { +static const ::capnp::_::AlignedData<141> 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, @@ -15,8 +15,8 @@ static const ::capnp::_::AlignedData<131> b_c189361aa8d3ec0a = { 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, + 45, 0, 0, 0, 199, 2, 0, 0, + 5, 2, 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, @@ -27,87 +27,95 @@ static const ::capnp::_::AlignedData<131> b_c189361aa8d3ec0a = { 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, + 44, 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, + 81, 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, + 69, 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, + 57, 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, + 49, 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, + 37, 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, + 25, 1, 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, + 13, 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, - 225, 0, 0, 0, 7, 0, 0, 0, + 1, 1, 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, + 245, 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, + 233, 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, + 221, 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, + 213, 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, + 201, 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, + 193, 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, + 181, 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, + 177, 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, + 165, 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, + 157, 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, + 145, 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, + 141, 0, 0, 0, 7, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, + 73, 246, 163, 97, 63, 51, 191, 246, + 179, 221, 70, 157, 48, 29, 159, 245, + 129, 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, + 117, 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, @@ -136,6 +144,8 @@ static const ::capnp::_::AlignedData<131> b_c189361aa8d3ec0a = { 70, 114, 111, 110, 116, 101, 110, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 112, 105, 110, 103, 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; @@ -160,12 +170,14 @@ static const ::capnp::_::RawSchema* const d_c189361aa8d3ec0a[] = { &s_dce78f15ea9b3d58, &s_e9235735334ee23c, &s_eb619952bc2b3805, + &s_f59f1d309d46ddb3, + &s_f6bf333f61a3f649, &s_ff24bad7e33a7e67, }; -static const uint16_t m_c189361aa8d3ec0a[] = {6, 4, 2, 0, 1, 9, 7, 5, 8, 3}; +static const uint16_t m_c189361aa8d3ec0a[] = {6, 4, 2, 10, 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 } + 0xc189361aa8d3ec0a, b_c189361aa8d3ec0a.words, 141, d_c189361aa8d3ec0a, m_c189361aa8d3ec0a, + 22, 11, nullptr, nullptr, nullptr, { &s_c189361aa8d3ec0a, nullptr, nullptr, 0, 0, nullptr } }; #endif // !CAPNP_LITE static const ::capnp::_::AlignedData<116> b_ae08c157b2e82b54 = { @@ -1144,6 +1156,60 @@ const ::capnp::_::RawSchema s_b087cff7ea9b99ea = { 0, 0, nullptr, nullptr, nullptr, { &s_b087cff7ea9b99ea, nullptr, nullptr, 0, 0, nullptr } }; #endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<18> b_f6bf333f61a3f649 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 73, 246, 163, 97, 63, 51, 191, 246, + 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, 105, + 110, 103, 36, 80, 97, 114, 97, 109, + 115, 0, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_f6bf333f61a3f649 = b_f6bf333f61a3f649.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_f6bf333f61a3f649 = { + 0xf6bf333f61a3f649, b_f6bf333f61a3f649.words, 18, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_f6bf333f61a3f649, nullptr, nullptr, 0, 0, nullptr } +}; +#endif // !CAPNP_LITE +static const ::capnp::_::AlignedData<18> b_f59f1d309d46ddb3 = { + { 0, 0, 0, 0, 5, 0, 6, 0, + 179, 221, 70, 157, 48, 29, 159, 245, + 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, 105, + 110, 103, 36, 82, 101, 115, 117, 108, + 116, 115, 0, 0, 0, 0, 0, 0, } +}; +::capnp::word const* const bp_f59f1d309d46ddb3 = b_f59f1d309d46ddb3.words; +#if !CAPNP_LITE +const ::capnp::_::RawSchema s_f59f1d309d46ddb3 = { + 0xf59f1d309d46ddb3, b_f59f1d309d46ddb3.words, 18, nullptr, nullptr, + 0, 0, nullptr, nullptr, nullptr, { &s_f59f1d309d46ddb3, 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, @@ -1707,6 +1773,16 @@ ModeliBackend::Client::registerFrontendRequest(::kj::Maybe< ::capnp::MessageSize "ModeliRpc.capnp:ModeliBackend", "registerFrontend", 0xc189361aa8d3ec0aull, 9); } +::capnp::Request< ::ModeliBackend::PingParams, ::ModeliBackend::PingResults> +ModeliBackend::Client::pingRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { + return newCall< ::ModeliBackend::PingParams, ::ModeliBackend::PingResults>( + 0xc189361aa8d3ec0aull, 10, sizeHint); +} +::kj::Promise<void> ModeliBackend::Server::ping(PingContext) { + return ::capnp::Capability::Server::internalUnimplemented( + "ModeliRpc.capnp:ModeliBackend", "ping", + 0xc189361aa8d3ec0aull, 10); +} ::kj::Promise<void> ModeliBackend::Server::dispatchCall( uint64_t interfaceId, uint16_t methodId, ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) { @@ -1751,6 +1827,9 @@ ModeliBackend::Client::registerFrontendRequest(::kj::Maybe< ::capnp::MessageSize case 9: return registerFrontend(::capnp::Capability::Server::internalGetTypedContext< ::ModeliBackend::RegisterFrontendParams, ::ModeliBackend::RegisterFrontendResults>(context)); + case 10: + return ping(::capnp::Capability::Server::internalGetTypedContext< + ::ModeliBackend::PingParams, ::ModeliBackend::PingResults>(context)); default: (void)context; return ::capnp::Capability::Server::internalUnimplemented( @@ -1934,6 +2013,22 @@ constexpr ::capnp::Kind ModeliBackend::RegisterFrontendResults::_capnpPrivate::k constexpr ::capnp::_::RawSchema const* ModeliBackend::RegisterFrontendResults::_capnpPrivate::schema; #endif // !CAPNP_LITE +// ModeliBackend::PingParams +constexpr uint16_t ModeliBackend::PingParams::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::PingParams::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::PingParams::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::PingParams::_capnpPrivate::schema; +#endif // !CAPNP_LITE + +// ModeliBackend::PingResults +constexpr uint16_t ModeliBackend::PingResults::_capnpPrivate::dataWordSize; +constexpr uint16_t ModeliBackend::PingResults::_capnpPrivate::pointerCount; +#if !CAPNP_LITE +constexpr ::capnp::Kind ModeliBackend::PingResults::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* ModeliBackend::PingResults::_capnpPrivate::schema; +#endif // !CAPNP_LITE + #if !CAPNP_LITE ::capnp::Request< ::ModeliFrontend::NewValuesParams, ::ModeliFrontend::NewValuesResults> ModeliFrontend::Client::newValuesRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) { diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h index 1f36039..4200b6a 100644 --- a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h +++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h @@ -39,6 +39,8 @@ CAPNP_DECLARE_SCHEMA(80e19e353495e92d); CAPNP_DECLARE_SCHEMA(e9235735334ee23c); CAPNP_DECLARE_SCHEMA(c32f5e5599baa4a2); CAPNP_DECLARE_SCHEMA(b087cff7ea9b99ea); +CAPNP_DECLARE_SCHEMA(f6bf333f61a3f649); +CAPNP_DECLARE_SCHEMA(f59f1d309d46ddb3); CAPNP_DECLARE_SCHEMA(cc4550916ea17af4); CAPNP_DECLARE_SCHEMA(89822c8798268361); CAPNP_DECLARE_SCHEMA(dec8cbe4e9ea46c4); @@ -79,6 +81,8 @@ struct ModeliBackend { struct SetValuesResults; struct RegisterFrontendParams; struct RegisterFrontendResults; + struct PingParams; + struct PingResults; #if !CAPNP_LITE struct _capnpPrivate { @@ -403,6 +407,36 @@ struct ModeliBackend::RegisterFrontendResults { }; }; +struct ModeliBackend::PingParams { + PingParams() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(f6bf333f61a3f649, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + +struct ModeliBackend::PingResults { + PingResults() = delete; + + class Reader; + class Builder; + class Pipeline; + + struct _capnpPrivate { + CAPNP_DECLARE_STRUCT_HEADER(f59f1d309d46ddb3, 0, 0) + #if !CAPNP_LITE + static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } + #endif // !CAPNP_LITE + }; +}; + struct ModeliFrontend { ModeliFrontend() = delete; @@ -540,6 +574,8 @@ public: ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); ::capnp::Request< ::ModeliBackend::RegisterFrontendParams, ::ModeliBackend::RegisterFrontendResults> registerFrontendRequest( ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); + ::capnp::Request< ::ModeliBackend::PingParams, ::ModeliBackend::PingResults> pingRequest( + ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr); protected: Client() = default; @@ -595,6 +631,10 @@ protected: typedef ::ModeliBackend::RegisterFrontendResults RegisterFrontendResults; typedef ::capnp::CallContext<RegisterFrontendParams, RegisterFrontendResults> RegisterFrontendContext; virtual ::kj::Promise<void> registerFrontend(RegisterFrontendContext context); + typedef ::ModeliBackend::PingParams PingParams; + typedef ::ModeliBackend::PingResults PingResults; + typedef ::capnp::CallContext<PingParams, PingResults> PingContext; + virtual ::kj::Promise<void> ping(PingContext context); inline ::ModeliBackend::Client thisCap() { return ::capnp::Capability::Server::thisCap() @@ -2260,6 +2300,148 @@ private: }; #endif // !CAPNP_LITE +class ModeliBackend::PingParams::Reader { +public: + typedef PingParams 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::PingParams::Builder { +public: + typedef PingParams 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::PingParams::Pipeline { +public: + typedef PingParams 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::PingResults::Reader { +public: + typedef PingResults 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::PingResults::Builder { +public: + typedef PingResults 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::PingResults::Pipeline { +public: + typedef PingResults 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 { diff --git a/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp b/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp index f7d0021..ace8bce 100644 --- a/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp +++ b/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp @@ -20,7 +20,11 @@ void RpcFrontend::destroy() void RpcFrontend::connect(std::string address, unsigned int port) { + // Create client _client = std::make_unique<capnp::EzRpcClient>(address, port); + // Test connection by pinging + auto backend = _client->getMain<ModeliBackend>(); + backend.pingRequest().send().wait(_client->getWaitScope()); } void RpcFrontend::registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback) -- GitLab