18 #ifndef INCLUDE_RCF_PROXYENDPOINTSERVICE_HPP 19 #define INCLUDE_RCF_PROXYENDPOINTSERVICE_HPP 21 #include <RCF/Export.hpp> 22 #include <RCF/RemoteCallContext.hpp> 23 #include <RCF/ServerTransport.hpp> 33 typedef RemoteCallContext<void, std::vector<std::string>&> AmdGetRequests;
34 typedef std::shared_ptr<AmdGetRequests> AmdGetRequestsPtr;
36 class ProxyEndpointEntry
41 ProxyEndpointEntry(
const std::string& endpointName);
44 std::vector<std::string> mPendingRequests;
45 RcfSessionWeakPtr mSessionWeakPtr;
46 AmdGetRequestsPtr mAmdPtr;
49 class ProxyEndpointService :
public I_Service
59 friend class RcfClient<I_ProxyEp>;
60 friend class RcfServer;
61 friend class RcfSession;
62 friend class ProxyEndpointSession;
64 void enumerateProxyEndpoints(std::vector<std::string>& endpoints);
66 void setupProxiedConnection(RcfSession& session, ClientTransportPtr proxyTransportPtr);
68 void SetupProxyEndpoint(
const std::string& endpointName,
const std::string& password);
70 void GetConnectionRequests(std::vector<std::string>& requests);
71 void MakeConnectionAvailable(
const std::string& endpointName,
const std::string& requestId);
73 void onConnectionAvailable(
74 const std::string& endpointName,
75 const std::string& requestId,
76 RcfSessionPtr sessionPtr,
77 ClientTransportUniquePtr transportPtr);
80 const std::string& endpointName);
82 RcfServer * mpRcfServer = NULL;
85 std::map<std::string, ProxyEndpointEntry> mEntries;
87 Mutex mEndpointConnectionsMutex;
88 Condition mEndpointConnectionsCond;
90 std::pair<std::string, std::string>,
98 #endif // ! INCLUDE_RCF_PROXYENDPOINTSERVICE_HPP std::unique_ptr< ClientTransport > ClientTransportUniquePtr
Unique pointer wrapper for RCF::ClientTransport.
Definition: RcfFwd.hpp:43
Provides RCF server-side functionality.
Definition: RcfServer.hpp:53
Definition: AmiIoHandler.hpp:23