TPIE

2362a60
tpie::compressor_request Class Reference

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_requestset_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_requestset_read_request (const read_request &other)
 
write_requestset_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_requestset_write_request (const write_request &other)
 
read_requestget_read_request ()
 
const read_requestget_read_request () const
 
write_requestget_write_request ()
 
const write_requestget_write_request () const
 
request_baseget_request_base ()
 
const request_baseget_request_base () const
 
compressor_request_kind::type kind () const
 

Detailed Description

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.

Definition at line 346 of file request.h.


The documentation for this class was generated from the following file: