STXXL  1.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
I/O Primitives Layer

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

+ Collaboration diagram for I/O Primitives Layer:

Modules

 File I/O Implementations
 Implementations of stxxl::file and stxxl::request for various file access methods.
 

Classes

class  stxxl::disk_queues
 Encapsulates disk queues. More...
 
class  stxxl::file
 Defines interface of file. More...
 
class  stxxl::request
 Request with basic properties like file and offset. More...
 
class  stxxl::request_interface
 Functional interface of a request. More...
 
class  stxxl::request_queue
 
class  stxxl::request_queue_impl_1q
 
class  stxxl::request_queue_impl_qwqr
 
class  stxxl::request_queue_impl_worker
 
class  stxxl::serving_request
 Request which serves an I/O by calling the synchronous routine of the file. More...
 
class  stxxl::stats
 Collects various I/O statistics. More...
 
class  stxxl::stats_data
 

Macros

#define BLOCK_ALIGN   4096
 

Typedefs

typedef counting_ptr< request > stxxl::request_ptr
 A reference counting pointer for request. More...
 

Functions

std::string stxxl::add_IEC_binary_multiplier (uint64 number, const char *unit="")
 
std::string stxxl::add_SI_multiplier (uint64 number, const char *unit="")
 
template<class request_iterator_ >
std::iterator_traits
< request_iterator_ >
::difference_type 
stxxl::cancel_all (request_iterator_ reqs_begin, request_iterator_ reqs_end)
 Cancel requests. The specified requests are canceled unless already being processed. However, cancelation cannot be guaranteed. Cancelled requests must still be waited for in order to ensure correct operation. More...
 
std::string stxxl::format_with_SI_IEC_unit_multiplier (uint64 number, const char *unit="", int multiplier=1000)
 
std::ostream & stxxl::operator<< (std::ostream &out, const request &req)
 
std::ostream & stxxl::operator<< (std::ostream &o, const stats_data &s)
 
std::ostream & stxxl::operator<< (std::ostream &o, const stats &s)
 
template<class request_iterator_ >
request_iterator_ stxxl::poll_any (request_iterator_ reqs_begin, request_iterator_ reqs_end)
 Polls requests. More...
 
bool stxxl::poll_any (request_ptr req_array[], size_t count, size_t &index)
 Polls requests. More...
 
template<class request_iterator_ >
void stxxl::wait_all (request_iterator_ reqs_begin, request_iterator_ reqs_end)
 Collection of functions to track statuses of a number of requests. More...
 
void stxxl::wait_all (request_ptr req_array[], size_t count)
 Suspends calling thread until all given requests are completed. More...
 
template<class request_iterator_ >
request_iterator_ stxxl::wait_any (request_iterator_ reqs_begin, request_iterator_ reqs_end)
 Suspends calling thread until any of requests is completed. More...
 
size_t stxxl::wait_any (request_ptr req_array[], size_t count)
 Suspends calling thread until any of requests is completed. More...
 

Detailed Description

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

Macro Definition Documentation

Typedef Documentation

typedef counting_ptr<request> stxxl::request_ptr

A reference counting pointer for request.

Definition at line 112 of file request.h.

Function Documentation

std::string stxxl::add_IEC_binary_multiplier ( uint64  number,
const char *  unit = "" 
)
inline

Definition at line 626 of file iostats.h.

References stxxl::format_with_SI_IEC_unit_multiplier().

std::string stxxl::add_SI_multiplier ( uint64  number,
const char *  unit = "" 
)
inline

Definition at line 631 of file iostats.h.

References stxxl::format_with_SI_IEC_unit_multiplier().

template<class request_iterator_ >
std::iterator_traits<request_iterator_>::difference_type stxxl::cancel_all ( request_iterator_  reqs_begin,
request_iterator_  reqs_end 
)

Cancel requests. The specified requests are canceled unless already being processed. However, cancelation cannot be guaranteed. Cancelled requests must still be waited for in order to ensure correct operation.

Parameters
reqs_beginbegin of request sequence
reqs_endend of request sequence
Returns
number of request canceled

Definition at line 59 of file request_operations.h.

std::string stxxl::format_with_SI_IEC_unit_multiplier ( uint64  number,
const char *  unit = "",
int  multiplier = 1000 
)

Definition at line 329 of file iostats.cpp.

Referenced by stxxl::add_IEC_binary_multiplier(), and stxxl::add_SI_multiplier().

std::ostream& stxxl::operator<< ( std::ostream &  out,
const request &  req 
)
inline

Definition at line 106 of file request.h.

References stxxl::request::print().

std::ostream& stxxl::operator<< ( std::ostream &  o,
const stats &  s 
)
inline

Definition at line 618 of file iostats.h.

template<class request_iterator_ >
request_iterator_ stxxl::poll_any ( request_iterator_  reqs_begin,
request_iterator_  reqs_end 
)

Polls requests.

Parameters
reqs_beginbegin of request sequence to poll
reqs_endend of request sequence to poll
Returns
true if any of requests is completed, then index contains valid value, otherwise false

Definition at line 76 of file request_operations.h.

Referenced by stxxl::poll_any().

bool stxxl::poll_any ( request_ptr  req_array[],
size_t  count,
size_t &  index 
)
inline

Polls requests.

Parameters
req_arrayarray of request_ptr objects
countsize of req_array
indexcontains index of the first completed request if any
Returns
true if any of requests is completed, then index contains valid value, otherwise false

Definition at line 94 of file request_operations.h.

References stxxl::count(), and stxxl::poll_any().

template<class request_iterator_ >
void stxxl::wait_all ( request_iterator_  reqs_begin,
request_iterator_  reqs_end 
)
void stxxl::wait_all ( request_ptr  req_array[],
size_t  count 
)
inline

Suspends calling thread until all given requests are completed.

Parameters
req_arrayarray of request_ptr objects
countsize of req_array

Definition at line 45 of file request_operations.h.

References stxxl::wait_all().

template<class request_iterator_ >
request_iterator_ stxxl::wait_any ( request_iterator_  reqs_begin,
request_iterator_  reqs_end 
)

Suspends calling thread until any of requests is completed.

Parameters
reqs_beginbegin of request sequence to wait for
reqs_endend of request sequence to wait for
Returns
index in req_array pointing to the first completed request

Definition at line 107 of file request_operations.h.

References stxxl::onoff_switch::wait_for_on().

Referenced by stxxl::buffered_writer< stxxl::typed_block >::get_free_block(), stxxl::write_pool< BlockType >::steal(), and stxxl::wait_any().

size_t stxxl::wait_any ( request_ptr  req_array[],
size_t  count 
)
inline

Suspends calling thread until any of requests is completed.

Parameters
req_arrayarray of request_ptr objects
countsize of req_array
Returns
index in req_array pointing to the first completed request

Definition at line 153 of file request_operations.h.

References stxxl::wait_any().