Tagged union containing either a read_request or a write_request. More...
#include <tpie/compressed/request.h>
Public Member Functions | |
compressor_request (const compressor_request &other) | |
read_request & | set_read_request (const read_request::buffer_t &buffer, read_request::file_accessor_t *fileAccessor, stream_size_type readOffset, read_direction::type readDirection, compressor_response *response) |
read_request & | set_read_request (const read_request &other) |
write_request & | set_write_request (const write_request::buffer_t &buffer, write_request::file_accessor_t *fileAccessor, temp_file *tempFile, stream_size_type writeOffset, memory_size_type blockItems, stream_size_type blockNumber, compressor_response *response) |
write_request & | set_write_request (const write_request &other) |
read_request & | get_read_request () |
const read_request & | get_read_request () const |
write_request & | get_write_request () |
const write_request & | get_write_request () const |
request_base & | get_request_base () |
const request_base & | get_request_base () const |
compressor_request_kind::type | kind () const |
Tagged union containing either a read_request or a write_request.
In C++11, this can be implemented more elegantly since the C++11 standard allows unions with member types having constructors and destructors. In C++03, we have to emulate this with a char buffer that is large enough.
To turn the tagged union into a T, call set_T(ctor params) which returns a reference to T. When the tagged union is a T (check with kind()), use get_T() to get the reference to T.