1#ifndef LIBFILEZILLA_GLUE_ASYNC_PIPE_HEADER
2#define LIBFILEZILLA_GLUE_ASYNC_PIPE_HEADER
34struct pipe_event_type;
54class FZ_PUBLIC_SYMBOL async_pipe final
63 async_pipe(async_pipe
const&) =
delete;
64 async_pipe& operator=(async_pipe
const&) =
delete;
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_{};
104 rwresult write_error_{0};
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
rwresult write(void const *buffer, size_t len)
Write data data process.
rwresult read(void *buffer, size_t len)
Read data from process.
The buffer class is a simple buffer where data can be appended at the end and consumed at the front....
Definition buffer.hpp:28
Definition event_handler.hpp:61
Lean replacement for std::(recursive_)mutex.
Definition mutex.hpp:75
Holds the result of read/write operations.
Definition fsresult.hpp:80
This is the recommended event class.
Definition event.hpp:68
A dumb thread-pool for asynchronous tasks.
Definition thread_pool.hpp:64
Declares event_base and simple_event<>.
result and rwresult wrappers for dealing with file system errors.
Sets some global macros and further includes string.hpp.
The namespace used by libfilezilla.
Definition apply.hpp:17
simple_event< pipe_event_type, async_pipe *, pipe_event_flag > pipe_event
Definition async_pipe.hpp:51
pipe_event_flag
The type of a pipe event.
Definition async_pipe.hpp:25
@ read
Data has become available.
Definition process.hpp:28
@ write
data can be written.
Definition process.hpp:31
Declares thread_pool and async_task.