19 #ifndef INCLUDE_RCF_PROXYENDPOINTSERVICE_HPP 20 #define INCLUDE_RCF_PROXYENDPOINTSERVICE_HPP 22 #include <RCF/Export.hpp> 23 #include <RCF/RemoteCallContext.hpp> 24 #include <RCF/ServerTransport.hpp> 34 typedef RemoteCallContext<void, std::vector<std::string>&> AmdGetRequests;
35 typedef std::shared_ptr<AmdGetRequests> AmdGetRequestsPtr;
37 class ProxyEndpointEntry
42 ProxyEndpointEntry(
const std::string& endpointName);
45 std::vector<std::string> mPendingRequests;
46 RcfSessionWeakPtr mSessionWeakPtr;
47 AmdGetRequestsPtr mAmdPtr;
50 class ProxyEndpointService :
public I_Service
60 friend class RcfClient<I_ProxyEp>;
61 friend class RcfServer;
62 friend class RcfSession;
63 friend class ProxyEndpointSession;
65 void enumerateProxyEndpoints(std::vector<std::string>& endpoints);
67 void setupProxiedConnection(RcfSession& session, ClientTransportPtr proxyTransportPtr);
69 void SetupProxyEndpoint(
const std::string& endpointName,
const std::string& password);
71 void GetConnectionRequests(std::vector<std::string>& requests);
72 void MakeConnectionAvailable(
const std::string& endpointName,
const std::string& requestId);
74 void onConnectionAvailable(
75 const std::string& endpointName,
76 const std::string& requestId,
77 RcfSessionPtr sessionPtr,
78 ClientTransportUniquePtr transportPtr);
81 const std::string& endpointName);
83 RcfServer * mpRcfServer = NULL;
86 std::map<std::string, ProxyEndpointEntry> mEntries;
88 Mutex mEndpointConnectionsMutex;
89 Condition mEndpointConnectionsCond;
91 std::pair<std::string, std::string>,
99 #endif // ! INCLUDE_RCF_PROXYENDPOINTSERVICE_HPP std::unique_ptr< ClientTransport > ClientTransportUniquePtr
Unique pointer wrapper for RCF::ClientTransport.
Definition: RcfFwd.hpp:44
Provides RCF server-side functionality.
Definition: RcfServer.hpp:54
Definition: AmiIoHandler.hpp:24