ADTF  3.18.2
rpc_server.h
Go to the documentation of this file.
1 
15 #ifndef PKG_RPC_RPC_SERVER_H_INCLUDED
16 #define PKG_RPC_RPC_SERVER_H_INCLUDED
17 
18 #include <a_util/result.h>
19 
20 namespace rpc {
21 
23 _MAKE_RESULT(1, AlreadyRegistered);
24 _MAKE_RESULT(2, NotFound);
25 _MAKE_RESULT(3, StartupFailed);
26 _MAKE_RESULT(4, InvalidURL);
27 _MAKE_RESULT(5, InvalidCall);
28 _MAKE_RESULT(6, FatalError);
34 class IResponse {
35 public:
41  virtual void Set(const char* strResponse, size_t nResponseSize) = 0;
42 };
43 
47 class IRPCObject {
48 public:
56  virtual a_util::result::Result HandleCall(const char* strRequest,
57  size_t nRequestSize,
58  IResponse& oResponse) = 0;
59 };
60 
65 public:
72  virtual a_util::result::Result RegisterRPCObject(const char* strName, IRPCObject* pObject) = 0;
73 
79  virtual a_util::result::Result UnregisterRPCObject(const char* strName) = 0;
80 };
81 
82 } // namespace rpc
83 
84 #endif // PKG_RPC_RPC_SERVER_H_INCLUDED
A common result class usable as return value throughout.
Interface of an object that support remote calls.
Definition: rpc_server.h:47
virtual a_util::result::Result HandleCall(const char *strRequest, size_t nRequestSize, IResponse &oResponse)=0
Handles a remote call.
Interface for an RPC server that handles multiple RPC objects.
Definition: rpc_server.h:64
virtual a_util::result::Result UnregisterRPCObject(const char *strName)=0
Unregisters an RPC object.
virtual a_util::result::Result RegisterRPCObject(const char *strName, IRPCObject *pObject)=0
Register an RPC object.
Interface for returning a response to a remote call.
Definition: rpc_server.h:34
virtual void Set(const char *strResponse, size_t nResponseSize)=0
Sets the response data.
#define _MAKE_RESULT(_no, _label)
Create a result type and a constant instance of this type in an unnamed namespace.
Common include for component a_util::result.