World Ocean Simulation System (WOSS) library
woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp > Class Template Reference

Class for managing custom db data. More...

#include <woss-db-custom-data-container.h>

Inheritance diagram for woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >:
Inheritance graph
Collaboration diagram for woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >:
Collaboration graph

Public Member Functions

 CustomDataContainer ()
 
 ~CustomDataContainer ()
 
MediumDataoperator[] (const T &key)
 
bool empty () const
 
int size () const
 
const Data * get (const T &t=DB_CDATA_ALL_OUTER_KEYS, double b=DB_CDATA_ALL_MEDIUM_KEYS, double r=DB_CDATA_ALL_INNER_KEYS) const
 
const Data * get (const T &tx, const T &rx) const
 
bool insert (const Data &data, const T &t=DB_CDATA_ALL_OUTER_KEYS, double b=DB_CDATA_ALL_MEDIUM_KEYS, double r=DB_CDATA_ALL_INNER_KEYS)
 
void replace (const Data &data, const T &t=DB_CDATA_ALL_OUTER_KEYS, double b=DB_CDATA_ALL_MEDIUM_KEYS, double r=DB_CDATA_ALL_INNER_KEYS)
 
void erase (const T &t=DB_CDATA_ALL_OUTER_KEYS, double b=DB_CDATA_ALL_MEDIUM_KEYS, double r=DB_CDATA_ALL_INNER_KEYS)
 
void clear ()
 
void setDebug (bool flag)
 
bool usingDebug ()
 

Static Public Attributes

static constexpr double DB_CDATA_ALL_MEDIUM_KEYS = -190.0
 
static constexpr double DB_CDATA_ALL_INNER_KEYS = -10.0
 
static const double DB_CDATA_ALL_MEDIUM_KEYS = -190.0
 
static const double DB_CDATA_ALL_INNER_KEYS = -10.0
 
static const T DB_CDATA_ALL_OUTER_KEYS = T()
 

Protected Types

typedef ::std::map< double, Data, InComp > InnerData
 
typedef InnerData::iterator CDCInnerIt
 
typedef InnerData::reverse_iterator CDCInnerRIt
 
typedef InnerData::const_iterator CDCInnerCIt
 
typedef InnerData::const_reverse_iterator CDCInnerCRIt
 
typedef ::std::map< double, InnerData, MidComp > MediumData
 
typedef MediumData::iterator CDCMediumIt
 
typedef MediumData::const_iterator CDCMediumCIt
 
typedef MediumData::reverse_iterator CDCMediumRIt
 
typedef MediumData::const_reverse_iterator CDCMediumCRIt
 
typedef ::std::map< T, MediumData, OutComp > CustomContainer
 
typedef CustomContainer::iterator CDCIt
 
typedef CustomContainer::reverse_iterator CDCRIt
 
typedef CustomContainer::const_iterator CDCCIt
 
typedef CustomContainer::const_reverse_iterator CDCCRIt
 

Protected Member Functions

const Data * find (const T &t=DB_CDATA_ALL_OUTER_KEYS, double b=DB_CDATA_ALL_MEDIUM_KEYS, double r=DB_CDATA_ALL_INNER_KEYS) const
 

Protected Attributes

bool debug
 
CustomContainer data_map
 

Detailed Description

template<class T, class MidFunctor, class InFunctor, class Data, class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
class woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >

Class for managing custom db data.

CustomDataContainer is a template that manages environmental data provided by the user. It sorts data by the first template parameter then by two doubles, (e.g. bearing and range)

Member Typedef Documentation

◆ CustomContainer

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
typedef ::std::map< T, MediumData, OutComp > woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CustomContainer
protected

The outer level map, that links a the first template parameter to a MediumData instance

◆ InnerData

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
typedef ::std::map< double, Data, InComp > woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::InnerData
protected

The inner level map, that links a double to actual data

◆ MediumData

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
typedef ::std::map< double, InnerData, MidComp > woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::MediumData
protected

The medium level map, that links a double to a InnerData instance

Constructor & Destructor Documentation

◆ CustomDataContainer()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CustomDataContainer ( )
inline

CustomDataContainer default constructor

◆ ~CustomDataContainer()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::~CustomDataContainer ( )
inline

Member Function Documentation

◆ clear()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
void woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::clear

◆ empty()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
bool woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::empty ( ) const
inline

◆ erase()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
void woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::erase ( const T &  t = DB_CDATA_ALL_OUTER_KEYS,
double  b = DB_CDATA_ALL_MEDIUM_KEYS,
double  r = DB_CDATA_ALL_INNER_KEYS 
)

Erases a Data object for given parameters.

Parameters
tconst reference to a T instance, default value is DB_CDATA_ALL_OUTER_KEYS. Default value means valid for all possible instances of T
bdouble, default value is DB_CDATA_ALL_MEDIUM_KEYS. Default value means valid for all possible doubles of MediumData
rdouble, default value is DB_CDATA_ALL_INNER_KEYS. Default value means valid for all possible doubles of InnerData
Returns
true if function was successful, false otherwise

Referenced by woss::WossDbManager::eraseCustomAltimetry(), woss::WossDbManager::eraseCustomBathymetry(), and woss::WossDbManager::eraseCustomSediment().

◆ find()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
const Data * woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::find ( const T &  t = DB_CDATA_ALL_OUTER_KEYS,
double  b = DB_CDATA_ALL_MEDIUM_KEYS,
double  r = DB_CDATA_ALL_INNER_KEYS 
) const
protected

Finds the given keys. Returns NULL if not found

Parameters
tconst reference to a T instance, default value is DB_CDATA_ALL_OUTER_KEYS. Default value means valid for all possible instances of T
bdouble, default value is DB_CDATA_ALL_MEDIUM_KEYS. Default value means valid for all possible doubles of MediumData
rdouble, default value is DB_CDATA_ALL_INNER_KEYS. Default value means valid for all possible doubles of InnerData
Returns
const pointer to a Data object, NULL if not found

Referenced by woss::CustomDataContainer< T, MidFunctor, InFunctor, Data *, OutComp, MidComp, InComp >::erase(), and woss::CustomDataContainer< T, MidFunctor, InFunctor, Data *, OutComp, MidComp, InComp >::insert().

◆ get() [1/2]

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
const Data * woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::get ( const T &  t = DB_CDATA_ALL_OUTER_KEYS,
double  b = DB_CDATA_ALL_MEDIUM_KEYS,
double  r = DB_CDATA_ALL_INNER_KEYS 
) const

Finds and returns a const pointer to a Data for given parameters

Parameters
tconst reference to a T instance, default value is DB_CDATA_ALL_OUTER_KEYS. Default value means valid for all possible instances of T
bdouble, default value is DB_CDATA_ALL_MEDIUM_KEYS. Default value means valid for all possible doubles of MediumData
rdouble, default value is DB_CDATA_ALL_INNER_KEYS. Default value means valid for all possible doubles of InnerData
Returns
const pointer to a Data if found, NULL otherwise

Referenced by woss::WossDbManager::getAltimetry(), woss::WossDbManager::getBathymetry(), woss::WossDbManager::getCustomAltimetry(), woss::WossDbManager::getCustomBathymetry(), woss::WossDbManager::getCustomSediment(), and woss::WossDbManager::getSediment().

◆ get() [2/2]

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
const Data * woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::get ( const T &  tx,
const T &  rx 
) const

Finds and returns a const pointer to a Data for the nearest match in all generated keys

Parameters
generatorconst reference to a T instance
tobefoundconst reference to a T instance
Returns
const pointer to a Data if found, NULL otherwise

◆ insert()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
bool woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::insert ( const Data &  data,
const T &  t = DB_CDATA_ALL_OUTER_KEYS,
double  b = DB_CDATA_ALL_MEDIUM_KEYS,
double  r = DB_CDATA_ALL_INNER_KEYS 
)

Inserts a Data object for given parameters. If keys are already present, the object is discarded

Parameters
dataconst reference to a Data object to be inserted
tconst reference to a T instance, default value is DB_CDATA_ALL_OUTER_KEYS. Default value means valid for all possible instances of T
bdouble, default value is DB_CDATA_ALL_MEDIUM_KEYS. Default value means valid for all possible doubles of MediumData
rdouble, default value is DB_CDATA_ALL_INNER_KEYS. Default value means valid for all possible doubles of InnerData
Returns
true if function was successful, false otherwise

Referenced by woss::WossDbManager::setCustomAltimetry(), woss::WossDbManager::setCustomBathymetry(), and woss::WossDbManager::setCustomSediment().

◆ operator[]()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
MediumData & woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::operator[] ( const T &  key)
inline

operator[]

Parameters
keya const reference to a T type ( first class parameter of template )
Returns
a reference to the linked MediumData

References woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::data_map.

◆ replace()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
void woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::replace ( const Data &  data,
const T &  t = DB_CDATA_ALL_OUTER_KEYS,
double  b = DB_CDATA_ALL_MEDIUM_KEYS,
double  r = DB_CDATA_ALL_INNER_KEYS 
)

Replaces a Data object for given parameters. If keys are not present, the object is inserted

Parameters
dataconst reference to a Data object to be inserted
tconst reference to a T instance, default value is DB_CDATA_ALL_OUTER_KEYS. Default value means valid for all possible instances of T
bdouble, default value is DB_CDATA_ALL_MEDIUM_KEYS. Default value means valid for all possible doubles of MediumData
rdouble, default value is DB_CDATA_ALL_INNER_KEYS. Default value means valid for all possible doubles of InnerData
Returns
true if function was successful, false otherwise

◆ setDebug()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
void woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::setDebug ( bool  flag)
inline

◆ size()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
int woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::size ( ) const
inline

◆ usingDebug()

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
bool woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::usingDebug ( )
inline

Member Data Documentation

◆ data_map

◆ debug

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = ::std::less<T>, class MidComp = ::std::less<double>, class InComp = ::std::less<double>>
bool woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::debug
protected

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