19 #ifndef INCLUDE_RCF_UNIXLOCALCLIENTTRANSPORT_HPP 20 #define INCLUDE_RCF_UNIXLOCALCLIENTTRANSPORT_HPP 22 #if defined(RCF_WINDOWS) 23 #error Unix domain sockets not supported on Windows. 26 #include <RCF/BsdClientTransport.hpp> 27 #include <RCF/Export.hpp> 28 #include <RCF/IpClientTransport.hpp> 34 using ASIO_NS::local::stream_protocol;
35 typedef stream_protocol::socket UnixLocalSocket;
36 typedef std::shared_ptr<UnixLocalSocket> UnixLocalSocketPtr;
38 class RCF_EXPORT UnixLocalClientTransport :
39 public BsdClientTransport
42 UnixLocalClientTransport(
const UnixLocalClientTransport &rhs);
43 UnixLocalClientTransport(
const std::string &fileName);
44 UnixLocalClientTransport(
const sockaddr_un &remoteAddr);
45 UnixLocalClientTransport(UnixLocalSocketPtr socketPtr,
const std::string & fileName);
47 ~UnixLocalClientTransport();
53 void implConnect(
unsigned int timeoutMs);
56 ClientTransportCallback &clientStub,
57 unsigned int timeoutMs);
59 void implConnectAsync(
60 ClientTransportCallback &clientStub,
61 unsigned int timeoutMs);
66 void setRemoteAddr(
const sockaddr_un &remoteAddr);
67 const sockaddr_un & getRemoteAddr()
const;
69 bool isAssociatedWithIoService();
70 void associateWithIoService(AsioIoService & ioService);
72 std::string getPipeName()
const;
77 void setupSocket(Exception & e);
79 sockaddr_un mRemoteAddr;
80 const std::string mFileName;
85 #endif // ! INCLUDE_RCF_UNIXLOCALCLIENTTRANSPORT_HPP std::shared_ptr< Endpoint > EndpointPtr
Reference counted wrapper for RCF::Endpoint.
Definition: RcfFwd.hpp:118
std::unique_ptr< ClientTransport > ClientTransportUniquePtr
Unique pointer wrapper for RCF::ClientTransport.
Definition: RcfFwd.hpp:44
Definition: AmiIoHandler.hpp:24
TransportType
Describes the transport types used by a RCF connection.
Definition: Enums.hpp:34