Branch data Line data Source code
1 : : // Generated by mpgen from /tmp/cirrus-ci-build/bitcoin-core/src/test/ipc_test.capnp
2 : :
3 : : #ifndef TEST_IPC_TEST_CAPNP_PROXY_H
4 : : #define TEST_IPC_TEST_CAPNP_PROXY_H
5 : :
6 : : #include <src/test/ipc_test.capnp.h> // IWYU pragma: keep
7 : : #include "test/ipc_test.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<gen::FooInterface::AddParams>
21 : : {
22 : : static constexpr auto impl = &FooImplementation::add;
23 : : };
24 : :
25 : : template<>
26 : : struct ProxyMethod<gen::FooInterface::PassOutPointParams>
27 : : {
28 : : static constexpr auto impl = &FooImplementation::passOutPoint;
29 : : };
30 : :
31 : : template<>
32 : : struct ProxyMethod<gen::FooInterface::PassUniValueParams>
33 : : {
34 : : static constexpr auto impl = &FooImplementation::passUniValue;
35 : : };
36 : :
37 : : template<>
38 : : struct ProxyMethod<gen::FooInterface::PassTransactionParams>
39 : : {
40 : : static constexpr auto impl = &FooImplementation::passTransaction;
41 : : };
42 : :
43 : : template<>
44 : : struct ProxyMethod<gen::FooInterface::PassVectorCharParams>
45 : : {
46 : : static constexpr auto impl = &FooImplementation::passVectorChar;
47 : : };
48 : :
49 : : template<>
50 : : struct ProxyMethod<gen::FooInterface::PassScriptParams>
51 : : {
52 : : static constexpr auto impl = &FooImplementation::passScript;
53 : : };
54 : :
55 : : namespace ipc_test_fields {
56 : : struct A
57 : : {
58 [ + - - + ]: 2 : template<typename S> static auto get(S&& s) -> decltype(s.getA()) { return s.getA(); }
59 : : template<typename S> static bool has(S&& s) { return s.hasA(); }
60 : 1 : template<typename S, typename A> static void set(S&& s, A&& a) { s.setA(std::forward<A>(a)); }
61 : : template<typename S, typename... A> static decltype(auto) init(S&& s, A&&... a) { return s.initA(std::forward<A>(a)...); }
62 : : template<typename S> static bool getWant(S&& s) { return s.getWantA(); }
63 : : template<typename S> static void setWant(S&& s) { s.setWantA(true); }
64 : : template<typename S> static bool getHas(S&& s) { return s.getHasA(); }
65 : : template<typename S> static void setHas(S&& s) { s.setHasA(true); }
66 : : };
67 : : struct B
68 : : {
69 [ + - - + ]: 2 : template<typename S> static auto get(S&& s) -> decltype(s.getB()) { return s.getB(); }
70 : : template<typename S> static bool has(S&& s) { return s.hasB(); }
71 : 1 : template<typename S, typename A> static void set(S&& s, A&& a) { s.setB(std::forward<A>(a)); }
72 : : template<typename S, typename... A> static decltype(auto) init(S&& s, A&&... a) { return s.initB(std::forward<A>(a)...); }
73 : : template<typename S> static bool getWant(S&& s) { return s.getWantB(); }
74 : : template<typename S> static void setWant(S&& s) { s.setWantB(true); }
75 : : template<typename S> static bool getHas(S&& s) { return s.getHasB(); }
76 : : template<typename S> static void setHas(S&& s) { s.setHasB(true); }
77 : : };
78 : : struct Result
79 : : {
80 [ + - ]: 6 : template<typename S> static auto get(S&& s) -> decltype(s.getResult()) { return s.getResult(); }
81 : 3 : template<typename S> static bool has(S&& s) { return s.hasResult(); }
82 : 1 : template<typename S, typename A> static void set(S&& s, A&& a) { s.setResult(std::forward<A>(a)); }
83 [ + - + - : 5 : template<typename S, typename... A> static decltype(auto) init(S&& s, A&&... a) { return s.initResult(std::forward<A>(a)...); }
+ - ]
84 : : template<typename S> static bool getWant(S&& s) { return s.getWantResult(); }
85 : : template<typename S> static void setWant(S&& s) { s.setWantResult(true); }
86 : : template<typename S> static bool getHas(S&& s) { return s.getHasResult(); }
87 : : template<typename S> static void setHas(S&& s) { s.setHasResult(true); }
88 : : };
89 : : struct Arg
90 : : {
91 : 5 : template<typename S> static auto get(S&& s) -> decltype(s.getArg()) { return s.getArg(); }
92 : 3 : template<typename S> static bool has(S&& s) { return s.hasArg(); }
93 : : template<typename S, typename A> static void set(S&& s, A&& a) { s.setArg(std::forward<A>(a)); }
94 [ + - + - : 5 : template<typename S, typename... A> static decltype(auto) init(S&& s, A&&... a) { return s.initArg(std::forward<A>(a)...); }
+ - ]
95 : : template<typename S> static bool getWant(S&& s) { return s.getWantArg(); }
96 : : template<typename S> static void setWant(S&& s) { s.setWantArg(true); }
97 : : template<typename S> static bool getHas(S&& s) { return s.getHasArg(); }
98 : : template<typename S> static void setHas(S&& s) { s.setHasArg(true); }
99 : : };
100 : : } // namespace ipc_test_fields
101 : :
102 : : template<>
103 : : struct ProxyClient<gen::FooInterface> final : public ProxyClientCustom<gen::FooInterface, FooImplementation>
104 : : {
105 : : public:
106 [ + - + - ]: 2 : using ProxyClientCustom::ProxyClientCustom;
107 : : ~ProxyClient();
108 : : using M0 = ProxyClientMethodTraits<gen::FooInterface::AddParams>;
109 : : typename M0::Result add(M0::Param<0> a,M0::Param<1> b);
110 : : using M1 = ProxyClientMethodTraits<gen::FooInterface::PassOutPointParams>;
111 : : typename M1::Result passOutPoint(M1::Param<0> arg);
112 : : using M2 = ProxyClientMethodTraits<gen::FooInterface::PassUniValueParams>;
113 : : typename M2::Result passUniValue(M2::Param<0> arg);
114 : : using M3 = ProxyClientMethodTraits<gen::FooInterface::PassTransactionParams>;
115 : : typename M3::Result passTransaction(M3::Param<0> arg);
116 : : using M4 = ProxyClientMethodTraits<gen::FooInterface::PassVectorCharParams>;
117 : : typename M4::Result passVectorChar(M4::Param<0> arg);
118 : : using M5 = ProxyClientMethodTraits<gen::FooInterface::PassScriptParams>;
119 : : typename M5::Result passScript(M5::Param<0> arg);
120 : : };
121 : :
122 : : template<>
123 : : struct ProxyServer<gen::FooInterface> : public ProxyServerCustom<gen::FooInterface, FooImplementation>
124 : : {
125 : : public:
126 : : using ProxyServerCustom::ProxyServerCustom;
127 : : ~ProxyServer();
128 : : kj::Promise<void> add(AddContext call_context) override;
129 : : kj::Promise<void> passOutPoint(PassOutPointContext call_context) override;
130 : : kj::Promise<void> passUniValue(PassUniValueContext call_context) override;
131 : : kj::Promise<void> passTransaction(PassTransactionContext call_context) override;
132 : : kj::Promise<void> passVectorChar(PassVectorCharContext call_context) override;
133 : : kj::Promise<void> passScript(PassScriptContext call_context) override;
134 : : };
135 : :
136 : : template<>
137 : : struct ProxyType<FooImplementation>
138 : : {
139 : : using Type = FooImplementation;
140 : : using Message = gen::FooInterface;
141 : : using Client = ProxyClient<Message>;
142 : : using Server = ProxyServer<Message>;
143 : : };
144 : : } // namespace mp
145 : : #if defined(__GNUC__)
146 : : #pragma GCC diagnostic pop
147 : : #endif
148 : : #endif
|