STXXL  1.4-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stxxl::request_with_state Class Reference

Detailed Description

Request with completion state.

Definition at line 28 of file request_with_state.h.

+ Inheritance diagram for stxxl::request_with_state:
+ Collaboration diagram for stxxl::request_with_state:

Public Member Functions

virtual ~request_with_state ()
 
bool cancel ()
 Cancel a request. More...
 
bool poll ()
 Polls the status of the request. More...
 
void wait (bool measure_time=true)
 Suspends calling thread until completion of the request. More...
 
- Public Member Functions inherited from stxxl::request_with_waiters
 request_with_waiters (const completion_handler &on_cmpl, file *f, void *buf, offset_type off, size_type b, request_type t)
 
- Public Member Functions inherited from stxxl::request
 request (const completion_handler &on_compl, file *file, void *buffer, offset_type offset, size_type bytes, request_type type)
 
virtual ~request () noexcept(false)
 
void check_alignment () const
 
void check_errors ()
 Rises an exception if there were error with the I/O. More...
 
void error_occured (const char *msg)
 Inform the request object that an error occurred during the I/O execution. More...
 
void error_occured (const std::string &msg)
 Inform the request object that an error occurred during the I/O execution. More...
 
void * get_buffer () const
 
fileget_file () const
 
offset_type get_offset () const
 
size_type get_size () const
 
request_type get_type () const
 
virtual const char * io_type () const
 Identifies the type of I/O implementation. More...
 
std::ostream & print (std::ostream &out) const
 Dumps properties of a request. More...
 
- Public Member Functions inherited from stxxl::request_interface
virtual ~request_interface () noexcept(false)
 
- Public Member Functions inherited from stxxl::atomic_counted_object
 atomic_counted_object ()
 new objects have zero reference count More...
 
 atomic_counted_object (const atomic_counted_object &)
 coping still creates a new object with zero reference count More...
 
 ~atomic_counted_object ()
 
bool dec_reference () const
 Call whenever resetting (i.e. overwriting) a pointer to the object. IMPORTANT: In case of self-assignment, call AFTER inc_reference(). More...
 
unsigned_type get_reference_count () const
 Return the number of references to this object (for debugging) More...
 
void inc_reference () const
 Call whenever setting a pointer to the object. More...
 
atomic_counted_objectoperator= (const atomic_counted_object &)
 assignment operator, leaves pointers unchanged More...
 
bool unique () const
 Test if the counted_object is referenced by only one counting_ptr. More...
 

Protected Types

enum  request_state { OP = 0, DONE = 1, READY2DIE = 2 }
 states of request OP - operating, DONE - request served, READY2DIE - can be destroyed More...
 

Protected Member Functions

 request_with_state (const completion_handler &on_cmpl, file *f, void *buf, offset_type off, size_type b, request_type t)
 
void completed (bool canceled)
 
- Protected Member Functions inherited from stxxl::request_with_waiters
bool add_waiter (onoff_switch *sw)
 
void delete_waiter (onoff_switch *sw)
 
void notify_waiters ()
 
size_t num_waiters ()
 returns number of waiters More...
 
- Protected Member Functions inherited from stxxl::request
void check_nref (bool after=false)
 

Protected Attributes

state< request_statem_state
 
- Protected Attributes inherited from stxxl::request
void * m_buffer
 
size_type m_bytes
 
compat_unique_ptr
< stxxl::io_error >::result 
m_error
 
filem_file
 
offset_type m_offset
 
completion_handler m_on_complete
 
request_type m_type
 

Additional Inherited Members

- Public Types inherited from stxxl::request_interface
typedef stxxl::external_size_type offset_type
 
enum  request_type { READ, WRITE }
 
typedef stxxl::internal_size_type size_type
 

Member Enumeration Documentation

states of request OP - operating, DONE - request served, READY2DIE - can be destroyed

Enumerator
OP 
DONE 
READY2DIE 

Definition at line 33 of file request_with_state.h.

Constructor & Destructor Documentation

stxxl::request_with_state::request_with_state ( const completion_handler on_cmpl,
file f,
void *  buf,
offset_type  off,
size_type  b,
request_type  t 
)
inlineprotected

Definition at line 38 of file request_with_state.h.

stxxl::request_with_state::~request_with_state ( )
virtual

Definition at line 28 of file request_with_state.cpp.

References STXXL_VERBOSE3_THIS.

Member Function Documentation

bool stxxl::request_with_state::cancel ( )
virtual

Cancel a request.

The request is canceled unless already being processed. However, cancelation cannot be guaranteed. Canceled requests must still be waited for in order to ensure correct operation. If the request was canceled successfully, the completion handler will not be called.

Returns
true iff the request was canceled successfully

Implements stxxl::request_interface.

Definition at line 52 of file request_with_state.cpp.

References STXXL_VERBOSE3_THIS.

void stxxl::request_with_state::completed ( bool  canceled)
protectedvirtual

Implements stxxl::request_interface.

Definition at line 81 of file request_with_state.cpp.

References STXXL_VERBOSE3_THIS.

Referenced by stxxl::serving_request::serve().

bool stxxl::request_with_state::poll ( )
virtual

Polls the status of the request.

Returns
true if request is completed, otherwise false

Implements stxxl::request_interface.

Definition at line 72 of file request_with_state.cpp.

void stxxl::request_with_state::wait ( bool  measure_time = true)
virtual

Suspends calling thread until completion of the request.

Implements stxxl::request_interface.

Definition at line 41 of file request_with_state.cpp.

References STXXL_VERBOSE3_THIS.

Member Data Documentation

state<request_state> stxxl::request_with_state::m_state
protected

Definition at line 35 of file request_with_state.h.


The documentation for this class was generated from the following files: