14 #ifndef FOXXLL_IO_LINUXAIO_FILE_HEADER 15 #define FOXXLL_IO_LINUXAIO_FILE_HEADER 17 #include <foxxll/config.hpp> 19 #if FOXXLL_HAVE_LINUXAIO_FILE 36 class linuxaio_file final :
public ufs_file_base,
public disk_queued_file
38 friend class linuxaio_request;
41 int desired_queue_length_;
53 int queue_id = DEFAULT_LINUXAIO_QUEUE,
54 int allocator_id = NO_ALLOCATOR,
55 unsigned int device_id = DEFAULT_DEVICE_ID,
56 int desired_queue_length = 0)
58 ufs_file_base(filename, mode),
59 disk_queued_file(queue_id, allocator_id),
60 desired_queue_length_(desired_queue_length)
63 void serve(
void* buffer, offset_type offset, size_type
bytes,
67 void* buffer, offset_type pos, size_type
bytes,
71 void* buffer, offset_type pos, size_type bytes,
74 const
char * io_type() const final;
76 int get_desired_queue_length()
const 77 {
return desired_queue_length_; }
84 #endif // #if FOXXLL_HAVE_LINUXAIO_FILE 86 #endif // !FOXXLL_IO_LINUXAIO_FILE_HEADER tlx::counting_ptr< request > request_ptr
A reference counting pointer for request.
tlx::delegate< void(request *r, bool success)> completion_handler
completion handler
std::basic_string< char, std::char_traits< char >, Allocator< char > > string
string with Manager tracking
static const size_t bytes
number of bytes in uint_pair