#include <CompressibleEngines.h>
Public Types | |
typedef AndCombine | Combine_t |
These functors wrap the functions necessary to perform compressed evaluation with compressible bricks. This layer is necessary, because there are engines that can contain compressible brick engines, which should therefore work with compressed evaluation. We don't want to force those engines to support the compressible brick member functions, however, so we perform all the queries through this functor class.
These functors are separate entities, because not all three are implemented for all engines. You should query Compressible<Engine>::compressible before even attempting to instantiate the other two classes.
The required interface of a specialization of Compressible<Engine> is:
If the engine supports compressed reads then CompressedRead<Engine> has:
T compressedRead(const Engine &) - returns the compressed value
If the engine can be written to, then it must support the following interface in CompressedReadWrite<Engine>:
T& compressedReadWrite(const Engine &) - a reference to the compressed value bool compressedBrickIsWholeView(const Engine &) typedef ... ViewEngine_t; - Tag for efficient uncompressed view engine. ViewEngine_t viewEngine(const Engine &) - an uncompressed view.
typedef AndCombine Compressible::Combine_t |