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