8 #ifndef _UGCS_VSM_POLL_IO_CONTROLLER_H_
9 #define _UGCS_VSM_POLL_IO_CONTROLLER_H_
128 Io_cb *read_cb =
nullptr,
131 size_t poll_fd_idx = 0;
132 bool close_on_remove =
false;
135 std::thread dispatcher_thread;
137 std::atomic_bool quit_req = {
false };
139 std::map<int, File_desc> fd_map;
141 std::mutex map_mutex;
143 std::vector<pollfd> poll_fd_array;
164 Allocate_poll_fd_index();
167 Release_poll_fd_index(
size_t idx);
177 Update_poll_fd_array();
Linux-specific implementation for I/O controller.
Definition: poll_io_controller.h:21
int64_t Offset
Offset for read/write operations.
Definition: io_stream.h:75
virtual void Enable() override
Enable the controller.
bool Queue_operation(Io_cb &io_cb)
Queue IO operation.
virtual void Unregister_handle(File_processor::Stream::Native_handle &) override
Unregister previously registered file handle.
Definition: poll_io_controller.h:76
virtual void Register_handle(File_processor::Stream::Native_handle &) override
Register new opened file handle.
Definition: poll_io_controller.h:71
Io_stream::Offset offset
File offset.
Definition: poll_io_controller.h:46
int fd
File descriptor.
Definition: poll_io_controller.h:38
ssize_t return_value
Operation return value, typically transfer size.
Definition: poll_io_controller.h:53
size_t size
Data size.
Definition: poll_io_controller.h:44
Callback cbk
Callback to call when operation is completed.
Definition: poll_io_controller.h:48
virtual void Disable() override
Disable the controller.
Interface for platform native file handle.
Definition: file_processor.h:109
Operation op
Requested operation.
Definition: poll_io_controller.h:40
Operation
Operation type.
Definition: poll_io_controller.h:28
Generic callback.
Definition: callback.h:217
bool Cancel_operation(Io_cb &io_cb)
Cancel pending operation.
void * buf
Data buffer.
Definition: poll_io_controller.h:42
void Delete_handle(int fd)
Delete handle.
int error
Operation error code.
Definition: poll_io_controller.h:51
Control block for I/O operation.
Definition: poll_io_controller.h:25
Interface for native I/O controller which manages I/O operations for all native handles.
Definition: file_processor.h:515
Processor for handling file I/O.