Classes | Modules | Functions

I/O primitives layer

Collaboration diagram for I/O primitives layer:

Classes

struct  default_completion_handler
 Default completion handler class. More...
class  file
 Defines interface of file. More...
class  request
 Defines interface of request. More...
class  request_ptr
 A smart wrapper for request pointer. More...
class  disk_queues
 Encapsulates disk queues. More...
class  stats
 Collects various I/O statistics. More...

Modules

 File implementations

Functions

int wait_any (request_ptr req_array[], int count)
 Collection of functions to track statuses of a number of requests.
void wait_all (request_ptr req_array[], int count)
 Suspends calling thread until all requests are completed.
bool poll_any (request_ptr req_array[], int count, int &index)
 Polls requests.

Detailed Description

Group of classes which enable abstraction from operating system calls and support system-independent interfaces for asynchronous I/O.


Function Documentation

bool poll_any ( request_ptr  req_array[],
int  count,
int &  index 
) [inline]

Polls requests.

Parameters:
req_array array of request_ptr objects
count size of req_array
index contains index of the first completed request if any
Returns:
true if any of requests is completed, then index contains valid value, otherwise false
void wait_all ( request_ptr  req_array[],
int  count 
) [inline]

Suspends calling thread until all requests are completed.

Parameters:
req_array array of request_ptr objects
count size of req_array
Examples:
io/test_io.cpp, and mng/test_mng.cpp.

Referenced by stream::check_sorted_runs(), and ksort().

int wait_any ( request_ptr  req_array[],
int  count 
) [inline]

Collection of functions to track statuses of a number of requests.

Suspends calling thread until any of requests is completed

Parameters:
req_array array of request_ptr objects
count size of req_array
Returns:
index in req_array pointing to the first completed request

Referenced by buffered_writer< block_type >::get_free_block(), and write_pool< block_type >::steal().