http://stxxl.sourceforge.net
<beckmann@cs.uni-frankfurt.de>
<singler@ira.uka.de>
http://www.boost.org/LICENSE_1_0.txt
#ifndef STXXL_IO__REQUEST_WITH_STATE_H_
#define STXXL_IO__REQUEST_WITH_STATE_H_
#include <stxxl/bits/common/state.h>
#include <stxxl/bits/io/request.h>
#include <stxxl/bits/io/request_with_waiters.h>
__STXXL_BEGIN_NAMESPACE
class request_with_state : public request, public request_with_waiters
{
protected:
enum request_state { OP = 0, DONE = 1, READY2DIE = 2 };
state<request_state> _state;
protected:
request_with_state(
const completion_handler & on_cmpl,
file * f,
void * buf,
offset_type off,
size_type b,
request_type t) :
request(on_cmpl, f, buf, off, b, t),
_state(OP)
{ }
public:
virtual ~request_with_state();
void wait(bool measure_time = true);
bool poll();
bool cancel();
};
__STXXL_END_NAMESPACE
#endif