Branch data Line data Source code
1 : : // Generated by mpgen from /tmp/cirrus-ci-build/bitcoin-core/src/ipc/capnp/echo.capnp
2 : :
3 : : #ifndef CAPNP_ECHO_CAPNP_PROXY_H
4 : : #define CAPNP_ECHO_CAPNP_PROXY_H
5 : :
6 : : #include <src/ipc/capnp/echo.capnp.h> // IWYU pragma: keep
7 : : #include "interfaces/echo.h" // IWYU pragma: export
8 : : #include <mp/proxy.h>
9 : :
10 : : #if defined(__GNUC__)
11 : : #pragma GCC diagnostic push
12 : : #if !defined(__has_warning)
13 : : #pragma GCC diagnostic ignored "-Wsuggest-override"
14 : : #elif __has_warning("-Wsuggest-override")
15 : : #pragma GCC diagnostic ignored "-Wsuggest-override"
16 : : #endif
17 : : #endif
18 : : namespace mp {
19 : : template<>
20 : : struct ProxyMethod<ipc::capnp::messages::Echo::EchoParams>
21 : : {
22 : : static constexpr auto impl = &interfaces::Echo::echo;
23 : : };
24 : :
25 : : namespace echo_fields {
26 : : struct Context
27 : : {
28 : 24 : template<typename S> static auto get(S&& s) -> decltype(s.getContext()) { return s.getContext(); }
29 : : template<typename S> static bool has(S&& s) { return s.hasContext(); }
30 : : template<typename S, typename A> static void set(S&& s, A&& a) { s.setContext(std::forward<A>(a)); }
31 : 12 : template<typename S, typename... A> static decltype(auto) init(S&& s, A&&... a) { return s.initContext(std::forward<A>(a)...); }
32 : : template<typename S> static bool getWant(S&& s) { return s.getWantContext(); }
33 : : template<typename S> static void setWant(S&& s) { s.setWantContext(true); }
34 : : template<typename S> static bool getHas(S&& s) { return s.getHasContext(); }
35 : : template<typename S> static void setHas(S&& s) { s.setHasContext(true); }
36 : : };
37 : : struct Echo
38 : : {
39 : 6 : template<typename S> static auto get(S&& s) -> decltype(s.getEcho()) { return s.getEcho(); }
40 : : template<typename S> static bool has(S&& s) { return s.hasEcho(); }
41 : : template<typename S, typename A> static void set(S&& s, A&& a) { s.setEcho(std::forward<A>(a)); }
42 : 6 : template<typename S, typename... A> static decltype(auto) init(S&& s, A&&... a) { return s.initEcho(std::forward<A>(a)...); }
43 : : template<typename S> static bool getWant(S&& s) { return s.getWantEcho(); }
44 : : template<typename S> static void setWant(S&& s) { s.setWantEcho(true); }
45 : : template<typename S> static bool getHas(S&& s) { return s.getHasEcho(); }
46 : : template<typename S> static void setHas(S&& s) { s.setHasEcho(true); }
47 : : };
48 : : struct Result
49 : : {
50 : 6 : template<typename S> static auto get(S&& s) -> decltype(s.getResult()) { return s.getResult(); }
51 : : template<typename S> static bool has(S&& s) { return s.hasResult(); }
52 : : template<typename S, typename A> static void set(S&& s, A&& a) { s.setResult(std::forward<A>(a)); }
53 : 6 : template<typename S, typename... A> static decltype(auto) init(S&& s, A&&... a) { return s.initResult(std::forward<A>(a)...); }
54 : : template<typename S> static bool getWant(S&& s) { return s.getWantResult(); }
55 : : template<typename S> static void setWant(S&& s) { s.setWantResult(true); }
56 : : template<typename S> static bool getHas(S&& s) { return s.getHasResult(); }
57 : : template<typename S> static void setHas(S&& s) { s.setHasResult(true); }
58 : : };
59 : : } // namespace echo_fields
60 : :
61 : : template<>
62 : : struct ProxyClient<ipc::capnp::messages::Echo> final : public ProxyClientCustom<ipc::capnp::messages::Echo, interfaces::Echo>
63 : : {
64 : : public:
65 [ + - + - ]: 6 : using ProxyClientCustom::ProxyClientCustom;
66 : : ~ProxyClient();
67 : : using M0 = ProxyClientMethodTraits<ipc::capnp::messages::Echo::DestroyParams>;
68 : : static typename M0::Result destroy(Super& super);
69 : : using M1 = ProxyClientMethodTraits<ipc::capnp::messages::Echo::EchoParams>;
70 : : typename M1::Result echo(M1::Param<0> echo);
71 : : };
72 : :
73 : : template<>
74 : : struct ProxyServer<ipc::capnp::messages::Echo> : public ProxyServerCustom<ipc::capnp::messages::Echo, interfaces::Echo>
75 : : {
76 : : public:
77 : : using ProxyServerCustom::ProxyServerCustom;
78 : : ~ProxyServer();
79 : : kj::Promise<void> destroy(DestroyContext call_context) override;
80 : : kj::Promise<void> echo(EchoContext call_context) override;
81 : : };
82 : :
83 : : template<>
84 : : struct ProxyType<interfaces::Echo>
85 : : {
86 : : using Type = interfaces::Echo;
87 : : using Message = ipc::capnp::messages::Echo;
88 : : using Client = ProxyClient<Message>;
89 : : using Server = ProxyServer<Message>;
90 : : };
91 : : } // namespace mp
92 : : #if defined(__GNUC__)
93 : : #pragma GCC diagnostic pop
94 : : #endif
95 : : #endif
|