1 #ifndef LIBFILEZILLA_GLUE_ASYNC_PIPE_HEADER
2 #define LIBFILEZILLA_GLUE_ASYNC_PIPE_HEADER
4 #include "../libfilezilla.hpp"
8 #include "../buffer.hpp"
9 #include "../event.hpp"
10 #include "../fsresult.hpp"
11 #include "../thread_pool.hpp"
13 #include "windows.hpp"
34 struct pipe_event_type;
66 bool connect_named_pipe(std::wstring_view name);
88 return write(s.data(), s.size());
100 buffer write_buffer_;
101 HANDLE sync_{INVALID_HANDLE_VALUE};
102 OVERLAPPED ol_read_{};
103 OVERLAPPED ol_write_{};
105 bool waiting_read_{
true};
106 bool waiting_write_{};
109 HANDLE read_{INVALID_HANDLE_VALUE};
110 HANDLE write_{INVALID_HANDLE_VALUE};
116 #error This file is for Windows only
Data has become available.
pipe_event_flag
The type of a pipe event.
Definition: async_pipe.hpp:24
Definition: event_handler.hpp:60
Handle for asynchronous tasks.
Definition: thread_pool.hpp:24
This is the recommended event class.
Definition: event.hpp:67
Holds the result of read/write operations.
Definition: fsresult.hpp:79
Definition: async_pipe.hpp:54
simple_event< pipe_event_type, async_pipe *, pipe_event_flag > pipe_event
Definition: async_pipe.hpp:36
The namespace used by libfilezilla.
Definition: apply.hpp:17
Data has become available.
The buffer class is a simple buffer where data can be appended at the end and consumed at the front...
Definition: buffer.hpp:26
Lean replacement for std::(recursive_)mutex.
Definition: mutex.hpp:74
A dumb thread-pool for asynchronous tasks.
Definition: thread_pool.hpp:63