14 #ifndef STXXL_IO__REQUEST_H_
15 #define STXXL_IO__REQUEST_H_
19 #include <stxxl/bits/namespace.h>
20 #include <stxxl/bits/io/request_interface.h>
21 #include <stxxl/bits/common/mutex.h>
22 #include <stxxl/bits/common/exceptions.h>
23 #include <stxxl/bits/io/completion_handler.h>
24 #include <stxxl/bits/compat_unique_ptr.h>
25 #include <stxxl/bits/verbose.h>
28 __STXXL_BEGIN_NAMESPACE
33 #define BLOCK_ALIGN 4096
46 compat_unique_ptr<stxxl::io_error>::result error;
76 file * get_file()
const {
return file_; }
77 void * get_buffer()
const {
return buffer; }
78 offset_type get_offset()
const {
return offset; }
79 size_type get_size()
const {
return bytes; }
80 request_type get_type()
const {
return type; }
82 void check_alignment()
const;
84 std::ostream &
print(std::ostream & out)
const;
90 error.reset(
new stxxl::io_error(msg));
97 error.reset(
new stxxl::io_error(msg));
104 throw *(error.get());
112 STXXL_VERBOSE3(
"[" << static_cast<void *>(
this) <<
"] request::add_ref(): added reference, ref_cnt=" << ref_cnt);
121 STXXL_VERBOSE3(
"[" << static_cast<void *>(
this) <<
"] request::sub_ref(): subtracted reference, ref_cnt=" << ref_cnt);
128 void check_nref(
bool after =
false)
131 check_nref_failed(after);
135 void check_nref_failed(
bool after);
138 inline std::ostream & operator << (std::ostream & out,
const request & req)
140 return req.
print(out);
145 __STXXL_END_NAMESPACE
147 #endif // !STXXL_IO__REQUEST_H_
Defines interface of file.
Definition: file.h:90
Request with basic properties like file and offset.
Definition: request.h:39
Completion handler class (Loki-style)
Definition: completion_handler.h:63
std::ostream & print(std::ostream &out) const
Dumps properties of a request.
Definition: request.cpp:83
void error_occured(const std::string &msg)
Inform the request object that an error occurred during the I/O execution.
Definition: request.h:95
Aquire a lock that's valid until the end of scope.
Definition: mutex.h:82
Implemented as reference counting smart pointer.
Definition: request_ptr.h:34
Functional interface of a request.
Definition: request_interface.h:37
void error_occured(const char *msg)
Inform the request object that an error occurred during the I/O execution.
Definition: request.h:88
void check_errors()
Rises an exception if there were error with the I/O.
Definition: request.h:101