http://stxxl.sourceforge.net
<dementiev@mpi-sb.mpg.de>
<beckmann@cs.uni-frankfurt.de>
<singler@ira.uka.de>
http://www.boost.org/LICENSE_1_0.txt
#ifndef STXXL_IO_REQUEST_QUEUE_IMPL_1Q_HEADER
#define STXXL_IO_REQUEST_QUEUE_IMPL_1Q_HEADER
#include <list>
#include <stxxl/bits/io/request_queue_impl_worker.h>
#include <stxxl/bits/common/mutex.h>
__STXXL_BEGIN_NAMESPACE
class request_queue_impl_1q : public request_queue_impl_worker
{
private:
typedef request_queue_impl_1q self;
typedef std::list<request_ptr> queue_type;
mutex queue_mutex;
queue_type queue;
state<thread_state> _thread_state;
thread_type thread;
semaphore sem;
static const priority_op _priority_op = WRITE;
static void * worker(void * arg);
public:
request_queue_impl_1q(int n = 1);
void set_priority_op(priority_op op)
{
STXXL_UNUSED(op);
}
void add_request(request_ptr & req);
bool cancel_request(request_ptr & req);
~request_queue_impl_1q();
};
__STXXL_END_NAMESPACE
#endif