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(pong)
12 0 : JSONRPC_TAG(play)
13 :
14 : template<typename Base>
15 0 : class pinger_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 play(ball::ptr req, ball::handler cb ) override
22 : {
23 0 : this->template call<_play_>( std::move(req), cb, nullptr);
24 0 : }
25 :
26 0 : virtual void pong(ball::ptr req, ball::handler cb, io_id_t, ipinger::ball_handler ) override
27 : {
28 0 : this->template call<_pong_>( std::move(req), cb, nullptr);
29 0 : }
30 :
31 : };
32 :
33 0 : struct pinger_method_list: wfc::jsonrpc::method_list
34 : <
35 : wfc::jsonrpc::interface_<ipinger>,
36 : wfc::jsonrpc::call_method< _play_, ball_json, ball_json>,
37 : wfc::jsonrpc::call_method< _pong_, ball_json, ball_json>
38 : >
39 : {
40 : };
41 :
42 : }}}
|