Line data Source code
1 : #pragma once
2 :
3 : #include <pingpong/iponger.hpp>
4 : #include <pingpong/ipinger.hpp>
5 : #include <pingpong/api/ball_json.hpp>
6 : #include <wfc/jsonrpc.hpp>
7 :
8 :
9 : namespace demo{ namespace pingpong{ namespace gateway{
10 :
11 0 : JSONRPC_TAG(ping)
12 0 : JSONRPC_TAG(pong)
13 :
14 : template<typename Base>
15 0 : class ponger_interface: public Base
16 : {
17 : public:
18 : typedef Base super;
19 : typedef typename super::io_id_t io_id_t;
20 :
21 0 : virtual void ping(ball::ptr req, ball::handler cb ) override
22 : {
23 0 : this->template call<_ping_>( std::move(req), cb, nullptr);
24 0 : }
25 : };
26 :
27 0 : struct ponger_method_list: wfc::jsonrpc::method_list
28 : <
29 : wfc::jsonrpc::interface_<iponger2>,
30 : wfc::jsonrpc::call_method< _ping_, ball_json, ball_json>,
31 :
32 : wfc::jsonrpc::target<ipinger>,
33 : wfc::jsonrpc::invoke_method2<
34 : _pong_,
35 : ball_json, ball_json,
36 : ball, ball,
37 : ipinger, &ipinger::pong,
38 : iponger2, &iponger2::ping
39 : >
40 : >
41 : {
42 : };
43 :
44 : }}}
|