19 #ifndef INCLUDE_RCF_WIN32NAMEDPIPECLIENTTRANSPORT_HPP
20 #define INCLUDE_RCF_WIN32NAMEDPIPECLIENTTRANSPORT_HPP
22 #include <RCF/ConnectedClientTransport.hpp>
24 #include <RCF/util/Tchar.hpp>
26 #include <RCF/AsioFwd.hpp>
30 class RCF_EXPORT Win32NamedPipeClientTransport :
31 public ConnectedClientTransport
35 Win32NamedPipeClientTransport(
36 const Win32NamedPipeClientTransport & rhs);
38 Win32NamedPipeClientTransport(
39 const tstring & pipeName);
41 Win32NamedPipeClientTransport(AsioPipeHandlePtr socketPtr,
const tstring & pipeName);
43 ~Win32NamedPipeClientTransport();
45 TransportType getTransportType();
47 ClientTransportAutoPtr clone()
const;
49 HANDLE getNativeHandle()
const;
51 AsioPipeHandlePtr releaseSocket();
53 void setDisconnectBeforeClosing(
bool disconnectBeforeClosing);
55 tstring getPipeName()
const;
56 void setPipeName(
const tstring & pipeName);
58 void setSecurityAttributes(LPSECURITY_ATTRIBUTES pSec);
60 void associateWithIoService(AsioIoService & ioService);
61 bool isAssociatedWithIoService();
66 const ByteBuffer &byteBuffer,
67 std::size_t bytesRequested);
69 std::size_t implReadAsync(
70 const ByteBuffer &byteBuffer,
71 std::size_t bytesRequested);
73 std::size_t implWrite(
74 const std::vector<ByteBuffer> &byteBuffers);
76 std::size_t implWriteAsync(
77 const std::vector<ByteBuffer> &byteBuffers);
82 ClientTransportCallback &clientStub,
83 unsigned int timeoutMs);
85 void implConnectAsync(
86 ClientTransportCallback &clientStub,
87 unsigned int timeoutMs);
90 EndpointPtr getEndpointPtr()
const;
100 LPSECURITY_ATTRIBUTES mpSec;
104 AsioPipeHandlePtr mSocketPtr;
105 AsioIoService * mpIoService;
110 #endif // ! INCLUDE_RCF_WIN32NAMEDPIPECLIENTTRANSPORT_HPP