Project
Loading...
Searching...
No Matches
o2::data_compression::DataDeflater< TargetType, Codec > Class Template Reference

#include <DataDeflater.h>

Public Types

using target_type = TargetType
 
using Writer = std::function< bool(const target_type &)>
 

Public Member Functions

 DataDeflater ()
 
 ~DataDeflater ()
 
int reset ()
 
template<typename WriterT >
int close (WriterT &writer)
 
template<typename ValueType , typename WriterT >
int writeRaw (ValueType value, uint16_t bitlength, WriterT writer)
 
template<typename T , typename WriterT >
int write (T value, WriterT writer)
 
int align ()
 

Static Public Attributes

static const std::size_t TargetBitWidth = 8 * sizeof(target_type)
 

Detailed Description

template<typename TargetType, class Codec = CodecIdentity<TargetType>>
class o2::data_compression::DataDeflater< TargetType, Codec >

Definition at line 65 of file DataDeflater.h.

Member Typedef Documentation

◆ target_type

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
using o2::data_compression::DataDeflater< TargetType, Codec >::target_type = TargetType

Definition at line 68 of file DataDeflater.h.

◆ Writer

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
using o2::data_compression::DataDeflater< TargetType, Codec >::Writer = std::function<bool(const target_type&)>

Definition at line 70 of file DataDeflater.h.

Constructor & Destructor Documentation

◆ DataDeflater()

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
o2::data_compression::DataDeflater< TargetType, Codec >::DataDeflater ( )
inline

Definition at line 72 of file DataDeflater.h.

◆ ~DataDeflater()

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
o2::data_compression::DataDeflater< TargetType, Codec >::~DataDeflater ( )
inline

Definition at line 73 of file DataDeflater.h.

Member Function Documentation

◆ align()

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
int o2::data_compression::DataDeflater< TargetType, Codec >::align ( )
inline

Align bit output Schedules the write out of the current word at the next occasion (either write or close).

Returns
number of forward bits

Definition at line 166 of file DataDeflater.h.

◆ close()

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
template<typename WriterT >
int o2::data_compression::DataDeflater< TargetType, Codec >::close ( WriterT &  writer)
inline

Flush and close Write the pending target word

Returns
Number of written words during close

Definition at line 97 of file DataDeflater.h.

◆ reset()

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
int o2::data_compression::DataDeflater< TargetType, Codec >::reset ( )
inline

Reset deflater Drop the current word if a clean start is needed.

Definition at line 83 of file DataDeflater.h.

◆ write()

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
template<typename T , typename WriterT >
int o2::data_compression::DataDeflater< TargetType, Codec >::write ( value,
WriterT  writer 
)
inline

Definition at line 153 of file DataDeflater.h.

◆ writeRaw()

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
template<typename ValueType , typename WriterT >
int o2::data_compression::DataDeflater< TargetType, Codec >::writeRaw ( ValueType  value,
uint16_t  bitlength,
WriterT  writer 
)
inline

Write number of bits value contains number of valid LSBs given by bitlength

TODO: that function might be renamed to simply 'write' in conjunction with a mixin approach. Every deflater mixin instance has only one 'write' function and does internally the necessary conversions to finally use 'write' of the mixin base.

Definition at line 118 of file DataDeflater.h.

Member Data Documentation

◆ TargetBitWidth

template<typename TargetType , class Codec = CodecIdentity<TargetType>>
const std::size_t o2::data_compression::DataDeflater< TargetType, Codec >::TargetBitWidth = 8 * sizeof(target_type)
static

Definition at line 69 of file DataDeflater.h.


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