15 #ifndef STXXL_IO_DISK_QUEUES_HEADER
16 #define STXXL_IO_DISK_QUEUES_HEADER
20 #include <stxxl/bits/namespace.h>
21 #include <stxxl/bits/singleton.h>
22 #include <stxxl/bits/io/iostats.h>
23 #include <stxxl/bits/io/request_queue_impl_qwqr.h>
26 __STXXL_BEGIN_NAMESPACE
37 friend class singleton<disk_queues>;
40 typedef request_queue_impl_qwqr request_queue_type;
42 typedef stxxl::int64 DISKID;
43 typedef std::map<DISKID, request_queue_type *> request_queue_map;
46 request_queue_map queues;
49 stxxl::stats::get_instance();
55 #ifdef STXXL_HACK_SINGLE_IO_THREAD
58 if (queues.find(disk) == queues.end())
61 queues[disk] =
new request_queue_type();
63 queues[disk]->add_request(req);
76 #ifdef STXXL_HACK_SINGLE_IO_THREAD
79 if (queues.find(disk) != queues.end())
88 for (request_queue_map::iterator i = queues.begin(); i != queues.end(); i++)
99 for (request_queue_map::iterator i = queues.begin(); i != queues.end(); i++)
100 i->second->set_priority_op(op);
106 __STXXL_END_NAMESPACE
108 #endif // !STXXL_IO_DISK_QUEUES_HEADER
void set_priority_op(request_queue::priority_op op)
Changes requests priorities.
Definition: disk_queues.h:97
bool cancel_request(request_ptr &req, DISKID disk)
Cancel a request The specified request is canceled unless already being processed. However, cancelation cannot be guaranteed. Cancelled requests must still be waited for in order to ensure correct operation.
Definition: disk_queues.h:74
Implemented as reference counting smart pointer.
Definition: request_ptr.h:34
Encapsulates disk queues.
Definition: disk_queues.h:35