1 #ifndef _CALL_SERIALIZER_H_
2 #define _CALL_SERIALIZER_H_
7 #include "libs/pointer.h"
8 #include "libs/buffer.h"
13 * @brief Remote procedure call
15 * Instances of this class contains serialized data required
18 class rpc_call
: public serialized_object
{
19 virtual ~rpc_call() {}
25 * @details Instances of this class carries all data needed
26 * to perform a procedure call invoked by the client. They are
27 * used to represent deserialized remote procedure calls.
31 typedef unsigned int ret_val
;
36 * This member function invokes procedure call requested
39 virtual ret_val
operator()() = 0;
43 * @brief Call serializer
45 * @details This is a base class for all serializers able to
46 * marshall procedure invocation.
48 class call_serializer
{
51 * Serialize procedure call
52 * @param mid method identifier
53 * @param stk part of stack coinatining invocation arguments
54 * @return marshalled, ready to sent, data
56 virtual p
<rpc_call
> serialize(ods_endpoint::method_id mid
, ods_endpoint::stack stk
) = 0;
59 * Deserialize procedure call
60 * @param buf serialized procedure call
61 * @return functor performing rpc
63 virtual foreign_call
deserialize(p
<rpc_call
> buf
) = 0;