17 #ifndef LIB_WINSS_PIPE_INSTANCE_HPP_ 18 #define LIB_WINSS_PIPE_INSTANCE_HPP_ 150 virtual bool Close();
172 bool writting =
false;
173 std::queue<std::vector<char>> message_queue;
196 bool Queue(
const std::vector<char>& data);
203 bool HasMessages()
const;
210 bool IsWriting()
const;
280 std::vector<char> SwapBuffer();
295 #endif // LIB_WINSS_PIPE_INSTANCE_HPP_ std::vector< char > buffer
The instance byte buffer.
Definition: pipe_instance.hpp:46
virtual bool IsClosing() const
Gets if the instance is closing.
Definition: pipe_instance.cpp:61
A wrapper for a Windows HANDLE.
Definition: handle_wrapper.hpp:39
OverlappedResult
The result of the overlapped operation.
Definition: pipe_instance.hpp:30
virtual bool CreateFile(const winss::PipeName &pipe_name)
Creates a Windows named pipe client.
Definition: pipe_instance.cpp:181
virtual winss::HandleWrapper GetHandle() const
Gets the event handle for the instance.
Definition: pipe_instance.cpp:65
bool connected
Flags if the instance is connected.
Definition: pipe_instance.hpp:43
virtual bool CreateNamedPipe(const winss::PipeName &pipe_name)
Creates the Windows named pipe server.
Definition: pipe_instance.cpp:138
virtual OverlappedResult GetOverlappedResult()
Gets the last overlapped result of the instance.
Definition: pipe_instance.cpp:100
bool pending_io
Flagged if IO event is pending.
Definition: pipe_instance.hpp:44
virtual bool SetConnected()
Sets the instance to connected state.
Definition: pipe_instance.cpp:69
PipeInstance & operator=(const PipeInstance &)=delete
No copy.
bool CheckError()
Checks if error is a real error or pending IO operation.
Definition: pipe_instance.cpp:79
DWORD bytes
The bytes read or written.
Definition: pipe_instance.hpp:47
virtual ~PipeInstance()
Default destructor.
Definition: pipe_instance.cpp:261
Pipe names are based on file system paths.
Definition: pipe_name.hpp:32
Definition: case_ignore.hpp:23
virtual void DisconnectNamedPipe()
DIsconnect the client from the pipe server.
Definition: pipe_instance.cpp:209
Wait till next result.
Definition: pipe_instance.hpp:33
HANDLE handle
The event handle.
Definition: pipe_instance.hpp:42
The pipe instance which is shared between client and server.
Definition: pipe_instance.hpp:39
A pipe instance for outbound client/server.
Definition: pipe_instance.hpp:170
PipeInstance()
Creates a new pipe instance.
Definition: pipe_instance.cpp:27
bool close
Flagged if instance is closing.
Definition: pipe_instance.hpp:45
virtual void Closing()
Marks the pipe instance as closing and triggers the event.
Definition: pipe_instance.cpp:201
virtual bool Close()
Close the pipe connection.
Definition: pipe_instance.cpp:217
A pipe instance for inbound client/server.
Definition: pipe_instance.hpp:246
static const DWORD kTimeout
The pipe timeout.
Definition: pipe_instance.hpp:58
OVERLAPPED overlapped
The overlapped structure.
Definition: pipe_instance.hpp:41
CLient is ready.
Definition: pipe_instance.hpp:32
Close client.
Definition: pipe_instance.hpp:31
virtual bool IsPendingIO() const
Gets if there is pending IO operations.
Definition: pipe_instance.cpp:53
virtual bool IsConnected() const
Gets if the instance is connected.
Definition: pipe_instance.cpp:57
static const DWORD kBufferSize
The pipe buffer.
Definition: pipe_instance.hpp:57