ADTF  3.18.2
rpc_object_server_registry_intf.h
Go to the documentation of this file.
1 
7 #pragma once
8 #include <adtfucom3/adtf_ucom3.h>
10 #include <adtfbase/string_intf.h>
11 #include <rpc/rpc.h>
12 
14 #define CID_ADTF_RPC_OBJECT_REGISTRY "rpc_object_registry.service.adtf.cid"
15 
16 namespace adtf
17 {
18 namespace remote
19 {
20 namespace ant
21 {
22 
28 {
29  protected:
31  ~IRPCObjectServer() = default;
32  public:
34  ADTF_IID(IRPCObjectServer, "rpc_object_server.ant.services.adtf.iid");
35  public:
42  virtual tResult Receive(const base::ant::IRawMemory& oRequest,
43  base::ant::IRawMemory&& oResponse) = 0;
44  virtual tResult GetRPCIID(base::ant::IString&& strIID) const = 0;
45  virtual tResult GetRPCName(base::ant::IString&& strRPCName) const = 0;
46  virtual tResult SetRPCName(const char* strRPCName) = 0;
47 };
48 
49 }
50 
51 namespace catwo
52 {
53 
58 {
59  public:
61  ADTF_IID(IRPCInterfaceDefinition, "rpc_interface_definition.catwo.services.adtf.iid");
62 
63  public:
69  virtual tResult GetInterfaceDefinition(base::ant::IString&& strInterfaceDefinition) const = 0;
70 };
71 
72 }
73 
76 
77 }
78 
79 namespace services
80 {
81 namespace ant
82 {
92  {
93  protected:
96  public:
98  ADTF_IID(IRPCObjectServerRegistry, "rpc_object_server_registry.ant.services.adtf.iid");
99 
100  public:
109  virtual tResult GetProtocol(base::ant::IString&& strProtocol) const = 0;
110 
120 
136  virtual tResult RegisterRPCObjectServer(const char* strObjectName,
147  virtual tResult UnregisterRPCObjectServer(const char* strObjectName) = 0;
148 
150  virtual tResult StartListening() = 0;
152  virtual tResult StopListening() = 0;
153  };
154 }
155 
156 namespace bat
157 {
158 
160 {
161  public:
163  ADTF_IID(IRPCObjectServerRegistry, "rpc_object_server_registry.bat.services.adtf.iid");
164 
165  public:
167  virtual tResult StartListening(const char* strURL) = 0;
168 };
169 
170 }
171 
172 namespace catwo
173 {
174 
176 {
177  public:
179  ADTF_IID(IRPCObjectServerRegistry, "rpc_object_server_registry.catwo.services.adtf.iid");
180 
181  public:
182  virtual tResult RegisterRPCObject(const char* strObjectName,
184 
185  virtual tResult GetRPCObjectInterfaces(const char* strObjectName,
187 };
188 
189 }
190 
191 namespace lucky
192 {
194  {
195  public:
197  ADTF_IID(IRPCObjectServerRegistry, "rpc_object_server_registry.iron.services.adtf.iid");
198 
199  public:
201  {
202  public:
203  virtual tResult StartListening(const char* strURL) = 0;
204  virtual tResult StopListening() = 0;
205 
206  virtual tResult RegisterRPCObject(const char* strName, rpc::IRPCObject* pObject) = 0;
207  virtual tResult UnregisterRPCObject(const char* strName) = 0;
208  };
209 
210 
211  virtual tResult AddRPCServer(IRPCServer* pRPCServer) = 0;
212  };
213 
214 }
215 
217 
218 } //service
219 }
220 
Copyright © Audi Electronics Venture GmbH.
The IRawMemory interface provides methods for getting and setting memory values through abstract inte...
The IString interface provides methods for getting and setting strings through abstract interfaces.
Definition: string_intf.h:28
The RPC Object Server Interface defines the basics to receive RPC calls.
ADTF_IID(IRPCObjectServer, "rpc_object_server.ant.services.adtf.iid")
ADTF IID Defintion.
virtual tResult Receive(const base::ant::IRawMemory &oRequest, base::ant::IRawMemory &&oResponse)=0
Implement to receive RPC requests.
~IRPCObjectServer()=default
hidden ctor
Interface to retrieve the interface definition of a server object.
ADTF_IID(IRPCInterfaceDefinition, "rpc_interface_definition.catwo.services.adtf.iid")
ADTF IID Defintion.
virtual tResult GetInterfaceDefinition(base::ant::IString &&strInterfaceDefinition) const =0
Returns the interface definition the server object.
The Object Server Registry is a single instance to create a single adress entry for RPC Server Object...
virtual tResult StartListening()=0
Starts listening to the given url.
virtual tResult StopListening()=0
Stops listening. No messages will be forwarded.
virtual tResult GetRPCObjectServers(ucom::ant::iobject_enum< remote::ant::IRPCObjectServer > &lstObjects) const =0
Retrieves a list of RPC objects registered.
virtual tResult GetProtocol(base::ant::IString &&strProtocol) const =0
Retrieve the identifier of the protocol used.
virtual tResult RegisterRPCObjectServer(const char *strObjectName, const ucom::ant::iobject_ptr< remote::ant::IRPCObjectServer > &pObject)=0
Registers a IRPCObjectServer implementation with the given name strObjectName to the registry.
virtual tResult UnregisterRPCObjectServer(const char *strObjectName)=0
Unregisters the given name from the object registry.
ADTF_IID(IRPCObjectServerRegistry, "rpc_object_server_registry.ant.services.adtf.iid")
interface identifier
ADTF_IID(IRPCObjectServerRegistry, "rpc_object_server_registry.bat.services.adtf.iid")
interface identifier
ADTF_IID(IRPCObjectServerRegistry, "rpc_object_server_registry.catwo.services.adtf.iid")
interface identifier
ADTF_IID(IRPCObjectServerRegistry, "rpc_object_server_registry.iron.services.adtf.iid")
interface identifier
Base class for every interface type within the uCOM.
Definition: object_intf.h:31
Interface definition for a container of objects.
Definition: object_list.h:22
Base object pointer to realize binary compatible reference counting in interface methods.
Interface of an object that support remote calls.
Definition: rpc_server.h:47
Namespace for entire ADTF SDK.
Copyright © Audi Electronics Venture GmbH.
RPC Package Header.
Copyright © Audi Electronics Venture GmbH.