HOPS
HOPS class reference
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
hops::MHO_JSONConverter Class Referenceabstract

Class MHO_JSONConverter. More...

#include <MHO_ContainerJSONConverter.hh>

Inheritance diagram for hops::MHO_JSONConverter:
[legend]

Public Member Functions

 MHO_JSONConverter ()
 
virtual ~MHO_JSONConverter ()
 
virtual void ConstructJSONRepresentation ()=0
 Constructs a JSON representation if fContainer is not nullptr. More...
 
mho_jsonGetJSON ()
 Getter for json. More...
 
std::size_t GetRank () const
 Getter for rank, needed for access to raw data in table containers this is a bit of a hack for 'hops2flat'. More...
 
std::size_t GetRawByteSize () const
 Getter for raw byte size. More...
 
const char * GetRawData () const
 Getter for raw data. More...
 
std::string GetRawDataDescriptor () const
 Getter for raw data descriptor. More...
 
void SetLevelOfDetail (int level)
 Setter for level of detail. More...
 
virtual void SetObjectToConvert (MHO_Serializable *)=0
 Setter for object to convert. More...
 

Protected Member Functions

void InsertElement (const std::complex< double > &value, mho_json &data)
 Inserts a complex double value into an mho_json data structure. More...
 
void InsertElement (const std::complex< float > &value, mho_json &data)
 Inserts a complex float value into the given mho_json data structure. More...
 
void InsertElement (const std::complex< long double > &value, mho_json &data)
 Inserts a complex value into a JSON data array, this is a specialization for complex<> element data insertion, and is needed because mho_json doesn't have a first-class complex type. More...
 
template<typename XValueType >
void InsertElement (const XValueType &value, mho_json &data)
 Inserts an element into a JSON data list (helper functions for generic data insertion for elements of a list) More...
 

Protected Attributes

mho_json fJSON
 
int fLOD
 
std::size_t fRank
 
std::size_t fRawByteSize
 
const char * fRawData
 
std::string fRawDataDescriptor
 

Detailed Description

Class MHO_JSONConverter.

Constructor & Destructor Documentation

◆ MHO_JSONConverter()

hops::MHO_JSONConverter::MHO_JSONConverter ( )
inline

◆ ~MHO_JSONConverter()

virtual hops::MHO_JSONConverter::~MHO_JSONConverter ( )
inlinevirtual

Member Function Documentation

◆ ConstructJSONRepresentation()

virtual void hops::MHO_JSONConverter::ConstructJSONRepresentation ( )
pure virtual

Constructs a JSON representation if fContainer is not nullptr.

Note
This is a virtual function.

Implemented in hops::MHO_ContainerJSONConverter< MHO_ObjectTags >, and hops::MHO_ContainerJSONConverter< XContainerType >.

◆ GetJSON()

mho_json* hops::MHO_JSONConverter::GetJSON ( )
inline

Getter for json.

Returns
Pointer to mho_json object

◆ GetRank()

std::size_t hops::MHO_JSONConverter::GetRank ( ) const
inline

Getter for rank, needed for access to raw data in table containers this is a bit of a hack for 'hops2flat'.

Returns
Current value of fRank as std::size_t

◆ GetRawByteSize()

std::size_t hops::MHO_JSONConverter::GetRawByteSize ( ) const
inline

Getter for raw byte size.

Returns
std::size_t representing the raw byte size.

◆ GetRawData()

const char* hops::MHO_JSONConverter::GetRawData ( ) const
inline

Getter for raw data.

Returns
Pointer to char representing the raw data.

◆ GetRawDataDescriptor()

std::string hops::MHO_JSONConverter::GetRawDataDescriptor ( ) const
inline

Getter for raw data descriptor.

Returns
Current raw data descriptor as a string.

◆ InsertElement() [1/4]

void hops::MHO_JSONConverter::InsertElement ( const std::complex< double > &  value,
mho_json data 
)
inlineprotected

Inserts a complex double value into an mho_json data structure.

Parameters
valueThe complex double value to insert.
data(mho_json&)

◆ InsertElement() [2/4]

void hops::MHO_JSONConverter::InsertElement ( const std::complex< float > &  value,
mho_json data 
)
inlineprotected

Inserts a complex float value into the given mho_json data structure.

Parameters
valueThe complex float value to insert.
data(mho_json&)

◆ InsertElement() [3/4]

void hops::MHO_JSONConverter::InsertElement ( const std::complex< long double > &  value,
mho_json data 
)
inlineprotected

Inserts a complex value into a JSON data array, this is a specialization for complex<> element data insertion, and is needed because mho_json doesn't have a first-class complex type.

Template Parameters
XValueTypeTemplate parameter XValueType
Parameters
valueThe complex value to insert.
data(mho_json&)

◆ InsertElement() [4/4]

template<typename XValueType >
void hops::MHO_JSONConverter::InsertElement ( const XValueType &  value,
mho_json data 
)
inlineprotected

Inserts an element into a JSON data list (helper functions for generic data insertion for elements of a list)

Parameters
valueThe value to insert of type XValueType.
data(mho_json&)
Returns
No return value (void)

◆ SetLevelOfDetail()

void hops::MHO_JSONConverter::SetLevelOfDetail ( int  level)
inline

Setter for level of detail.

Parameters
levelNew level of detail (eJSONBasicLevel, eJSONTagsLevel, or eJSONAxesLevel)

◆ SetObjectToConvert()

virtual void hops::MHO_JSONConverter::SetObjectToConvert ( MHO_Serializable )
pure virtual

Setter for object to convert.

Parameters
!objParameter description
Note
This is a virtual function.

Implemented in hops::MHO_ContainerJSONConverter< MHO_ObjectTags >, and hops::MHO_ContainerJSONConverter< XContainerType >.

Member Data Documentation

◆ fJSON

mho_json hops::MHO_JSONConverter::fJSON
protected

◆ fLOD

int hops::MHO_JSONConverter::fLOD
protected

◆ fRank

std::size_t hops::MHO_JSONConverter::fRank
protected

◆ fRawByteSize

std::size_t hops::MHO_JSONConverter::fRawByteSize
protected

◆ fRawData

const char* hops::MHO_JSONConverter::fRawData
protected

◆ fRawDataDescriptor

std::string hops::MHO_JSONConverter::fRawDataDescriptor
protected

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