1 #ifndef _ODS_ENDPOINT_H_
2 #define _ODS_ENDPOINT_H_
6 * @brief Object Distribution System
8 * @details ODS is a vital part of Managed Execution System, which
9 * allows to distribute objects regardless of connection types
14 * @brief Endpoint in Object Distribution System
16 * @details Instances of this class represent an endpoint of
17 * Object Distribution System network. It is in charge
18 * of transmitting and receiving both data and
24 * Serializer of objects transported by value.
26 p
<data_transmit
> data
;
29 * Serializer of objects transported by reference.
34 * Procedure calls serializer.
36 p
<call_serializer
> caller
;
41 p
<injector
> inject_tool
;
43 /** Default serializers factory */
44 typedef binary_serializers default_factory
;
46 /** Representation of public methods */
47 typedef unsigned int method_id
;
48 typedef unsigned char* stack
;
51 * Catch all calls of objects methods.
52 * @param obj observed object
54 virtual void inject(p
<obj_ref
> obj
) = 0;
57 * Connect to ODS network
58 * @note Subclasses may require additional configuration,
59 * before connection will be established.
61 virtual void connect() = 0;
64 virtual void do_call(method_id
, stack
) = 0;