STXXL  1.4.0
 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 29 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
 request (const completion_handler &on_compl, file *file__, void *buffer_, offset_type offset_, size_type bytes_, request_type type_)
 
virtual ~request ()
 
void check_alignment () const
 
void check_errors () throw (stxxl::io_error)
 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
 
std::ostream & print (std::ostream &out) const
 Dumps properties of a request. More...
 
- Public Member Functions inherited from stxxl::request_interface
virtual ~request_interface ()
 
virtual const char * io_type () const =0
 Identifies the type of I/O implementation. More...
 
virtual void serve ()=0
 
- 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)
 
- Protected Member Functions inherited from stxxl::request
void check_nref (bool after=false)
 
void completed ()
 
- Protected Member Functions inherited from stxxl::request_with_waiters
bool add_waiter (onoff_switch *sw)
 
void delete_waiter (onoff_switch *sw)
 
void notify_waiters ()
 

Protected Attributes

state< request_state_state
 
- Protected Attributes inherited from stxxl::request
void * buffer
 
size_type bytes
 
compat_unique_ptr
< stxxl::io_error >::result 
error
 
filefile_
 
offset_type offset
 
completion_handler on_complete
 
request_type 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 34 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 39 of file request_with_state.h.

stxxl::request_with_state::~request_with_state ( )
virtual

Definition at line 29 of file request_with_state.cpp.

References STXXL_VERBOSE3.

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 53 of file request_with_state.cpp.

References STXXL_VERBOSE3.

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 73 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 42 of file request_with_state.cpp.

References STXXL_VERBOSE3.

Member Data Documentation

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

Definition at line 36 of file request_with_state.h.

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


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