18 #ifndef INCLUDE_RCF_UNIXLOCALCLIENTTRANSPORT_HPP 19 #define INCLUDE_RCF_UNIXLOCALCLIENTTRANSPORT_HPP 21 #if defined(RCF_WINDOWS) 22 #error Unix domain sockets not supported on Windows. 25 #include <RCF/BsdClientTransport.hpp> 26 #include <RCF/Export.hpp> 27 #include <RCF/IpClientTransport.hpp> 33 using ASIO_NS::local::stream_protocol;
34 typedef stream_protocol::socket UnixLocalSocket;
35 typedef std::shared_ptr<UnixLocalSocket> UnixLocalSocketPtr;
37 class RCF_EXPORT UnixLocalClientTransport :
38 public BsdClientTransport
41 UnixLocalClientTransport(
const UnixLocalClientTransport &rhs);
42 UnixLocalClientTransport(
const std::string &fileName);
43 UnixLocalClientTransport(
const sockaddr_un &remoteAddr);
44 UnixLocalClientTransport(UnixLocalSocketPtr socketPtr,
const std::string & fileName);
46 ~UnixLocalClientTransport();
52 void implConnect(
unsigned int timeoutMs);
55 ClientTransportCallback &clientStub,
56 unsigned int timeoutMs);
58 void implConnectAsync(
59 ClientTransportCallback &clientStub,
60 unsigned int timeoutMs);
65 void setRemoteAddr(
const sockaddr_un &remoteAddr);
66 const sockaddr_un & getRemoteAddr()
const;
68 bool isAssociatedWithIoService();
69 void associateWithIoService(AsioIoService & ioService);
71 std::string getPipeName()
const;
76 void setupSocket(Exception & e);
78 sockaddr_un mRemoteAddr;
79 const std::string mFileName;
84 #endif // ! INCLUDE_RCF_UNIXLOCALCLIENTTRANSPORT_HPP std::shared_ptr< Endpoint > EndpointPtr
Reference counted wrapper for RCF::Endpoint.
Definition: RcfFwd.hpp:117
std::unique_ptr< ClientTransport > ClientTransportUniquePtr
Unique pointer wrapper for RCF::ClientTransport.
Definition: RcfFwd.hpp:43
Definition: AmiIoHandler.hpp:23
TransportType
Describes the transport types used by a RCF connection.
Definition: Enums.hpp:33