Branch data Line data Source code
1 : : // Generated by mpgen from /__w/b-c-cov/b-c-cov/bitcoin-core/src/ipc/test/fuzz/ipc_fuzz.capnp
2 : :
3 : : #ifndef TEST_FUZZ_IPC_FUZZ_CAPNP_PROXY_H
4 : : #define TEST_FUZZ_IPC_FUZZ_CAPNP_PROXY_H
5 : :
6 : : #include <test/fuzz/ipc_fuzz.capnp.h> // IWYU pragma: keep
7 : : #include "ipc/test/fuzz/ipc_fuzz.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<test::fuzz::messages::IpcFuzzInterface::AddParams>
21 : : {
22 : : static constexpr auto impl = &IpcFuzzImplementation::add;
23 : : };
24 : :
25 : : template<>
26 : : struct ProxyMethod<test::fuzz::messages::IpcFuzzInterface::PassOutPointParams>
27 : : {
28 : : static constexpr auto impl = &IpcFuzzImplementation::passOutPoint;
29 : : };
30 : :
31 : : template<>
32 : : struct ProxyMethod<test::fuzz::messages::IpcFuzzInterface::PassVectorUint8Params>
33 : : {
34 : : static constexpr auto impl = &IpcFuzzImplementation::passVectorUint8;
35 : : };
36 : :
37 : : template<>
38 : : struct ProxyMethod<test::fuzz::messages::IpcFuzzInterface::PassScriptParams>
39 : : {
40 : : static constexpr auto impl = &IpcFuzzImplementation::passScript;
41 : : };
42 : :
43 : : template<>
44 : : struct ProxyMethod<test::fuzz::messages::IpcFuzzInterface::PassUniValueParams>
45 : : {
46 : : static constexpr auto impl = &IpcFuzzImplementation::passUniValue;
47 : : };
48 : :
49 : : template<>
50 : : struct ProxyMethod<test::fuzz::messages::IpcFuzzInterface::PassTransactionParams>
51 : : {
52 : : static constexpr auto impl = &IpcFuzzImplementation::passTransaction;
53 : : };
54 : :
55 : : namespace ipc_fuzz_fields {
56 : : struct A
57 : : {
58 [ # # # # ]: 0 : 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 : 0 : 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 [ # # # # ]: 0 : 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 : 0 : 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 [ # # ]: 0 : template<typename S> static auto get(S&& s) -> decltype(s.getResult()) { return s.getResult(); }
81 : 0 : template<typename S> static bool has(S&& s) { return s.hasResult(); }
82 : 0 : template<typename S, typename A> static void set(S&& s, A&& a) { s.setResult(std::forward<A>(a)); }
83 [ # # # # : 0 : 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 : 0 : template<typename S> static auto get(S&& s) -> decltype(s.getArg()) { return s.getArg(); }
92 : 0 : 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 [ # # # # : 0 : 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_fuzz_fields
101 : :
102 : : template<>
103 : : struct ProxyClient<test::fuzz::messages::IpcFuzzInterface> final : public ProxyClientCustom<test::fuzz::messages::IpcFuzzInterface, IpcFuzzImplementation>
104 : : {
105 : : public:
106 [ + - + - ]: 2 : using ProxyClientCustom::ProxyClientCustom;
107 : : ~ProxyClient();
108 : : using M0 = ProxyClientMethodTraits<test::fuzz::messages::IpcFuzzInterface::AddParams>;
109 : : typename M0::Result add(M0::Param<0> a,M0::Param<1> b);
110 : : using M1 = ProxyClientMethodTraits<test::fuzz::messages::IpcFuzzInterface::PassOutPointParams>;
111 : : typename M1::Result passOutPoint(M1::Param<0> arg);
112 : : using M2 = ProxyClientMethodTraits<test::fuzz::messages::IpcFuzzInterface::PassVectorUint8Params>;
113 : : typename M2::Result passVectorUint8(M2::Param<0> arg);
114 : : using M3 = ProxyClientMethodTraits<test::fuzz::messages::IpcFuzzInterface::PassScriptParams>;
115 : : typename M3::Result passScript(M3::Param<0> arg);
116 : : using M4 = ProxyClientMethodTraits<test::fuzz::messages::IpcFuzzInterface::PassUniValueParams>;
117 : : typename M4::Result passUniValue(M4::Param<0> arg);
118 : : using M5 = ProxyClientMethodTraits<test::fuzz::messages::IpcFuzzInterface::PassTransactionParams>;
119 : : typename M5::Result passTransaction(M5::Param<0> arg);
120 : : };
121 : :
122 : : template<>
123 : : struct ProxyServer<test::fuzz::messages::IpcFuzzInterface> : public ProxyServerCustom<test::fuzz::messages::IpcFuzzInterface, IpcFuzzImplementation>
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> passVectorUint8(PassVectorUint8Context call_context) override;
131 : : kj::Promise<void> passScript(PassScriptContext call_context) override;
132 : : kj::Promise<void> passUniValue(PassUniValueContext call_context) override;
133 : : kj::Promise<void> passTransaction(PassTransactionContext call_context) override;
134 : : };
135 : :
136 : : template<>
137 : : struct ProxyType<IpcFuzzImplementation>
138 : : {
139 : : using Type = IpcFuzzImplementation;
140 : : using Message = test::fuzz::messages::IpcFuzzInterface;
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
|