IODA Bundle
odc::codec::IntStringCodecBase< ByteOrder, InternalCodec > Class Template Reference

#include <String.h>

Inheritance diagram for odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >:
[legend]
Collaboration diagram for odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >:
[legend]

Public Member Functions

 IntStringCodecBase (api::ColumnType type, const std::string &name)
 
 ~IntStringCodecBase () override
 
- Public Member Functions inherited from odc::codec::CodecChars< ByteOrder >
 CodecChars (api::ColumnType type, const std::string &name=codec_name())
 
 ~CodecChars () override
 
void load (core::DataStream< ByteOrder > &ds) override
 
void save (core::DataStream< ByteOrder > &ds) override
 
- Public Member Functions inherited from odc::core::DataStreamCodec< ByteOrder >
 DataStreamCodec (const std::string &name, api::ColumnType type)
 
void setDataStream (DataStream< ByteOrder > &ds) override
 
void clearDataStream () override
 
void setDataStream (GeneralDataStream &ds)
 
virtual void setDataStream (DataStream< SameByteOrder > &ds)
 
virtual void setDataStream (DataStream< OtherByteOrder > &ds)
 
- Public Member Functions inherited from odc::core::Codec
 Codec (const std::string &name, api::ColumnType type)
 
virtual ~Codec ()
 
const std::string & name () const
 
char * encode (char *p, const double &d)
 
void setDataStream (GeneralDataStream &ds)
 
virtual void setDataStream (DataStream< SameByteOrder > &ds)
 
virtual void setDataStream (DataStream< OtherByteOrder > &ds)
 
void load (GeneralDataStream &ds)
 
virtual void load (DataStream< SameByteOrder > &ds)
 
virtual void load (DataStream< OtherByteOrder > &ds)
 
void save (GeneralDataStream &ds)
 
virtual void save (DataStream< SameByteOrder > &ds)
 
virtual void save (DataStream< OtherByteOrder > &ds)
 
void resetStats ()
 
void hasMissing (bool h)
 
int32_t hasMissing () const
 
void min (double m)
 
double min () const
 
void max (double m)
 
double max () const
 
void missingValue (double v)
 
double missingValue () const
 

Private Types

using InternalInt = typename InternalCodec::value_type
 

Private Member Functions

std::unique_ptr< core::Codecclone () override
 
void setDataStream (core::DataStream< ByteOrder > &ds) override
 
void clearDataStream () override
 
unsigned char * encode (unsigned char *p, const double &d) override
 
void decode (double *out) override
 
void skip () override
 
void load (core::DataStream< ByteOrder > &ds) override
 
void save (core::DataStream< ByteOrder > &ds) override
 

Private Attributes

InternalCodec intCodec_
 

Additional Inherited Members

- Static Public Member Functions inherited from odc::codec::CodecChars< ByteOrder >
constexpr static const char * codec_name ()
 
- Protected Member Functions inherited from odc::core::DataStreamCodec< ByteOrder >
void load (DataStream< ByteOrder > &ds) override
 
void save (DataStream< ByteOrder > &ds) override
 
DataStream< ByteOrder > & ds ()
 
void load (GeneralDataStream &ds)
 
virtual void load (DataStream< SameByteOrder > &ds)
 
virtual void load (DataStream< OtherByteOrder > &ds)
 
void save (GeneralDataStream &ds)
 
virtual void save (DataStream< SameByteOrder > &ds)
 
virtual void save (DataStream< OtherByteOrder > &ds)
 
- Protected Attributes inherited from odc::codec::CodecChars< ByteOrder >
std::map< std::string, int64_t > stringLookup_
 
std::vector< std::string > strings_
 
size_t decodedSizeDoubles_
 
- Protected Attributes inherited from odc::core::DataStreamCodec< ByteOrder >
DataStream< ByteOrder > * ds_
 
- Protected Attributes inherited from odc::core::Codec
std::string name_
 
int32_t hasMissing_
 
double missingValue_
 
double min_
 
double max_
 
api::ColumnType type_
 

Detailed Description

template<typename ByteOrder, typename InternalCodec>
class odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >

Definition at line 74 of file String.h.

Member Typedef Documentation

◆ InternalInt

template<typename ByteOrder , typename InternalCodec >
using odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::InternalInt = typename InternalCodec::value_type
private

Definition at line 77 of file String.h.

Constructor & Destructor Documentation

◆ IntStringCodecBase()

template<typename ByteOrder , typename InternalCodec >
odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::IntStringCodecBase ( api::ColumnType  type,
const std::string &  name 
)
inline

Definition at line 81 of file String.h.

Here is the call graph for this function:

◆ ~IntStringCodecBase()

template<typename ByteOrder , typename InternalCodec >
odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::~IntStringCodecBase ( )
inlineoverride

Definition at line 90 of file String.h.

Member Function Documentation

◆ clearDataStream()

template<typename ByteOrder , typename InternalCodec >
void odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::clearDataStream ( )
inlineoverrideprivatevirtual

Implements odc::core::Codec.

Definition at line 111 of file String.h.

Here is the call graph for this function:

◆ clone()

template<typename ByteOrder , typename InternalCodec >
std::unique_ptr<core::Codec> odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::clone ( )
inlineoverrideprivatevirtual

Creates a clone of this codec. NOTE: the clone is not really usefull for coding/decoding, but has the same stats/missing values as the original codec, which can be useful sometimes.

Reimplemented from odc::codec::CodecChars< ByteOrder >.

Definition at line 94 of file String.h.

Here is the call graph for this function:

◆ decode()

template<typename ByteOrder , typename InternalCodec >
void odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::decode ( double *  out)
inlineoverrideprivatevirtual

Reimplemented from odc::codec::CodecChars< ByteOrder >.

Definition at line 134 of file String.h.

◆ encode()

template<typename ByteOrder , typename InternalCodec >
unsigned char* odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::encode ( unsigned char *  p,
const double &  d 
)
inlineoverrideprivatevirtual

n.b. Yes this is ugly. This is a hack into the existing API - and it assumes that the double& provided actually is the first element of a longer string.

Reimplemented from odc::codec::CodecChars< ByteOrder >.

Definition at line 116 of file String.h.

◆ load()

template<typename ByteOrder , typename InternalCodec >
void odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::load ( core::DataStream< ByteOrder > &  ds)
inlineoverrideprivate

Definition at line 155 of file String.h.

Here is the call graph for this function:

◆ save()

template<typename ByteOrder , typename InternalCodec >
void odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::save ( core::DataStream< ByteOrder > &  ds)
inlineoverrideprivate

Definition at line 192 of file String.h.

Here is the call graph for this function:

◆ setDataStream()

template<typename ByteOrder , typename InternalCodec >
void odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::setDataStream ( core::DataStream< ByteOrder > &  ds)
inlineoverrideprivate

Definition at line 106 of file String.h.

Here is the call graph for this function:

◆ skip()

template<typename ByteOrder , typename InternalCodec >
void odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::skip ( )
inlineoverrideprivatevirtual

Reimplemented from odc::codec::CodecChars< ByteOrder >.

Definition at line 150 of file String.h.

Member Data Documentation

◆ intCodec_

template<typename ByteOrder , typename InternalCodec >
InternalCodec odc::codec::IntStringCodecBase< ByteOrder, InternalCodec >::intCodec_
private

Definition at line 207 of file String.h.


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