RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
HuffmanCode< CodeTag > Class Template Referencefinal

#include "codes/HuffmanCode.h"

Inheritance diagram for HuffmanCode< CodeTag >:
[legend]
Collaboration diagram for HuffmanCode< CodeTag >:
[legend]

Public Types

using Parent = AbstractPrefixCode<CodeTag>
using CodeSymbol = typename AbstractPrefixCode<CodeTag>::CodeSymbol
using Traits = typename AbstractPrefixCode<CodeTag>::Traits
using CodeValueTy = typename Traits::CodeValueTy

Public Member Functions

 HuffmanCode ()=default
std::vector< CodeSymbolgenerateCodeSymbols () const
bool operator== (const HuffmanCode &other) const
uint32_t setNCodesPerLength (Buffer data)
void setCodeValues (Array1DRef< const typename Traits::CodeValueTy > data)
 operator PrefixCode< CodeTag > ()

Public Attributes

std::vector< CodeValueTycodeValues

Protected Member Functions

size_t RAWSPEED_READONLY maxCodeLength () const
unsigned int RAWSPEED_READONLY maxCodesCount () const

Protected Attributes

std::vector< unsigned int > nCodesPerLength

Detailed Description

template<typename CodeTag>
class HuffmanCode< CodeTag >

Definition at line 42 of file HuffmanCode.h.

Member Typedef Documentation

◆ CodeSymbol

template<typename CodeTag>
using rawspeed::HuffmanCode< CodeTag >::CodeSymbol = typename AbstractPrefixCode<CodeTag>::CodeSymbol

Definition at line 45 of file HuffmanCode.h.

◆ CodeValueTy

template<typename CodeTag>
using rawspeed::AbstractPrefixCode< CodeTag >::CodeValueTy = typename Traits::CodeValueTy
inherited

Definition at line 141 of file AbstractPrefixCode.h.

◆ Parent

template<typename CodeTag>
using rawspeed::HuffmanCode< CodeTag >::Parent = AbstractPrefixCode<CodeTag>

Definition at line 44 of file HuffmanCode.h.

◆ Traits

template<typename CodeTag>
using rawspeed::HuffmanCode< CodeTag >::Traits = typename AbstractPrefixCode<CodeTag>::Traits

Definition at line 46 of file HuffmanCode.h.

Constructor & Destructor Documentation

◆ HuffmanCode()

template<typename CodeTag>
rawspeed::HuffmanCode< CodeTag >::HuffmanCode ( )
default

Member Function Documentation

◆ generateCodeSymbols()

template<typename CodeTag>
std::vector< CodeSymbol > rawspeed::HuffmanCode< CodeTag >::generateCodeSymbols ( ) const
inlinenodiscard

Definition at line 66 of file HuffmanCode.h.

◆ maxCodeLength()

template<typename CodeTag>
size_t RAWSPEED_READONLY rawspeed::HuffmanCode< CodeTag >::maxCodeLength ( ) const
inlinenodiscardprotected

Definition at line 51 of file HuffmanCode.h.

◆ maxCodesCount()

template<typename CodeTag>
unsigned int RAWSPEED_READONLY rawspeed::HuffmanCode< CodeTag >::maxCodesCount ( ) const
inlinenodiscardprotected

Definition at line 61 of file HuffmanCode.h.

◆ operator PrefixCode< CodeTag >()

template<typename CodeTag>
rawspeed::HuffmanCode< CodeTag >::operator PrefixCode< CodeTag > ( )
inlineexplicit

Definition at line 168 of file HuffmanCode.h.

◆ operator==()

template<typename CodeTag>
bool rawspeed::HuffmanCode< CodeTag >::operator== ( const HuffmanCode< CodeTag > & other) const
inline

Definition at line 94 of file HuffmanCode.h.

◆ setCodeValues()

template<typename CodeTag>
void rawspeed::HuffmanCode< CodeTag >::setCodeValues ( Array1DRef< const typename Traits::CodeValueTy > data)
inline

Definition at line 151 of file HuffmanCode.h.

◆ setNCodesPerLength()

template<typename CodeTag>
uint32_t rawspeed::HuffmanCode< CodeTag >::setNCodesPerLength ( Buffer data)
inline

Definition at line 99 of file HuffmanCode.h.

Member Data Documentation

◆ codeValues

◆ nCodesPerLength

template<typename CodeTag>
std::vector<unsigned int> rawspeed::HuffmanCode< CodeTag >::nCodesPerLength
protected

Definition at line 59 of file HuffmanCode.h.


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