19 #ifndef INCLUDE_RCF_TCPCLIENTTRANSPORT_HPP
20 #define INCLUDE_RCF_TCPCLIENTTRANSPORT_HPP
22 #include <RCF/Filter.hpp>
23 #include <RCF/BsdClientTransport.hpp>
24 #include <RCF/ByteOrdering.hpp>
25 #include <RCF/ClientProgress.hpp>
26 #include <RCF/ClientTransport.hpp>
27 #include <RCF/Exception.hpp>
28 #include <RCF/Export.hpp>
29 #include <RCF/IpAddress.hpp>
30 #include <RCF/IpClientTransport.hpp>
34 class RCF_EXPORT TcpClientTransport :
35 public BsdClientTransport,
36 public IpClientTransport
39 TcpClientTransport(
const TcpClientTransport &rhs);
40 TcpClientTransport(
const IpAddress &remoteAddr);
41 TcpClientTransport(
const std::string & ip,
int port);
43 TcpClientTransport(TcpSocketPtr socketPtr);
45 ~TcpClientTransport();
47 TransportType getTransportType();
49 ClientTransportAutoPtr clone()
const;
52 ClientTransportCallback &clientStub,
53 unsigned int timeoutMs);
55 void implConnectAsync(
56 ClientTransportCallback &clientStub,
57 unsigned int timeoutMs);
60 EndpointPtr getEndpointPtr()
const;
62 void setRemoteAddr(
const IpAddress &remoteAddr);
63 IpAddress getRemoteAddr()
const;
66 bool isAssociatedWithIoService();
67 void associateWithIoService(AsioIoService & ioService);
71 static void doDnsLookup(
73 unsigned int timeoutMs,
74 OverlappedAmiPtr overlappedPtr,
77 void onDnsLookupCompleted(
78 unsigned int timeoutMs,
83 void setupSocket(Exception & e);
85 friend class HttpFrameFilter;
88 IpAddress mServerAddr;
92 IpAddress mConnectionAddr;
97 #endif // ! INCLUDE_RCF_TCPCLIENTTRANSPORT_HPP