19 #ifndef INCLUDE_RCF_REMOTECALLCONTEXT_HPP
20 #define INCLUDE_RCF_REMOTECALLCONTEXT_HPP
23 #include <RCF/Export.hpp>
24 #include <RCF/RcfSession.hpp>
25 #include <RCF/ThreadLocalData.hpp>
31 class AsioNetworkSession;
33 typedef boost::shared_ptr<RcfSession> RcfSessionPtr;
34 typedef boost::shared_ptr<AsioNetworkSession> AsioNetworkSessionPtr;
36 class RCF_EXPORT RemoteCallContextImpl
40 RemoteCallContextImpl(RCF::RcfSession & session);
43 void commit(
const std::exception &e);
44 bool isCommitted()
const;
47 RcfSessionPtr mRcfSessionPtr;
48 AsioNetworkSessionPtr mNetworkSessionPtr;
52 I_Parameters * mpParametersUntyped;
73 class RemoteCallContext :
public RemoteCallContextImpl
78 typedef typename boost::mpl::if_<
79 boost::is_same<R, void>,
83 typedef ServerParameters<
85 A1, A2, A3, A4, A5, A6, A7, A8,
86 A9, A10, A11, A12, A13, A14, A15> ParametersT;
88 RemoteCallContext(RCF::RcfSession & session) : RemoteCallContextImpl(session)
90 RCF_ASSERT( dynamic_cast<ParametersT *>(mpParametersUntyped) );
93 ParametersT ¶meters()
95 return *
static_cast<ParametersT *
>(mpParametersUntyped);;
101 #endif // ! INCLUDE_RCF_REMOTECALLCONTEXT_HPP