19 #ifndef INCLUDE_RCF_TEST_TRANSPORTFACTORIES_HPP
20 #define INCLUDE_RCF_TEST_TRANSPORTFACTORIES_HPP
22 #include <RCF/RcfClient.hpp>
23 #include <RCF/ServerTransport.hpp>
24 #include <RCF/ClientTransport.hpp>
25 #include <RCF/IpAddress.hpp>
27 template<
typename Interface>
28 inline bool tryCreateRemoteObject(
29 RCF::I_RcfClient &rcfClient,
30 std::string objectName =
"")
34 rcfClient.getClientStub().createRemoteObject(objectName);
37 catch (
const RCF::Exception &e)
47 typedef boost::shared_ptr<ClientTransportAutoPtr> ClientTransportAutoPtrPtr;
49 typedef std::pair<ServerTransportPtr, ClientTransportAutoPtrPtr> TransportPair;
51 class I_TransportFactory
54 virtual ~I_TransportFactory() {}
55 virtual TransportPair createTransports() = 0;
56 virtual TransportPair createNonListeningTransports() = 0;
57 virtual bool isConnectionOriented() = 0;
58 virtual bool supportsTransportFilters() = 0;
59 virtual std::string desc() = 0;
62 typedef boost::shared_ptr<I_TransportFactory> TransportFactoryPtr;
64 typedef std::vector<TransportFactoryPtr> TransportFactories;
66 TransportFactories &getTransportFactories();
68 TransportFactories &getIpTransportFactories();
73 #if RCF_FEATURE_NAMEDPIPE==1
75 class Win32NamedPipeTransportFactory :
public I_TransportFactory
78 TransportPair createTransports();
79 TransportPair createNonListeningTransports();
80 bool isConnectionOriented();
81 bool supportsTransportFilters();
87 #if RCF_FEATURE_TCP==1
89 class TcpTransportFactory :
public I_TransportFactory
93 TcpTransportFactory(IpAddress::Type type = IpAddress::V4);
94 TransportPair createTransports();
95 TransportPair createNonListeningTransports();
96 bool isConnectionOriented();
97 bool supportsTransportFilters();
102 std::string mLoopback;
107 #if RCF_FEATURE_HTTP==1
109 class HttpTransportFactory :
public I_TransportFactory
113 HttpTransportFactory();
114 TransportPair createTransports();
115 TransportPair createNonListeningTransports();
116 bool isConnectionOriented();
117 bool supportsTransportFilters();
121 std::string mLoopback;
124 class HttpsTransportFactory :
public I_TransportFactory
128 HttpsTransportFactory();
129 TransportPair createTransports();
130 TransportPair createNonListeningTransports();
131 bool isConnectionOriented();
132 bool supportsTransportFilters();
136 std::string mLoopback;
142 #if RCF_FEATURE_LOCALSOCKET==1
144 class UnixLocalTransportFactory :
public I_TransportFactory
148 UnixLocalTransportFactory();
152 TransportPair createTransports();
153 TransportPair createNonListeningTransports();
154 bool isConnectionOriented();
155 bool supportsTransportFilters();
159 bool fileExists(
const std::string & path);
160 std::string generateNewPipeName();
167 #endif // RCF_HAS_LOCAL_SOCKETS
169 #if RCF_FEATURE_UDP==1
171 class UdpTransportFactory :
public I_TransportFactory
175 UdpTransportFactory(IpAddress::Type type = IpAddress::V4);
176 TransportPair createTransports();
177 TransportPair createNonListeningTransports();
178 bool isConnectionOriented();
179 bool supportsTransportFilters();
184 std::string mLoopback;
189 void initializeTransportFactories();
193 #endif // ! INCLUDE_RCF_TEST_TRANSPORTFACTORIES_HPP