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 ProxyEndpointSession;
64 void enumerateProxyEndpoints(std::vector<std::string>& endpoints);
67 void SetupProxyEndpoint(
const std::string& endpointName,
const std::string& password);
69 void GetConnectionRequests(std::vector<std::string>& requests);
70 void MakeConnectionAvailable(
const std::string& endpointName,
const std::string& requestId);
72 void onConnectionAvailable(
73 const std::string& endpointName,
74 const std::string& requestId,
75 RcfSessionPtr sessionPtr,
76 ClientTransportUniquePtr transportPtr);
79 const std::string& endpointName);
81 RcfServer * mpRcfServer = NULL;
84 std::map<std::string, ProxyEndpointEntry> mEntries;
86 Mutex mEndpointConnectionsMutex;
87 Condition mEndpointConnectionsCond;
89 std::pair<std::string, std::string>,
97 #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:54
Definition: AmiIoHandler.hpp:24