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 ()=default
 
 ~CustomDataContainer ()=default
 
MediumDataoperator[] (const T &key)
 
bool empty () const
 
int size () const
 
const std::optional< 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 std::optional< 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

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

Protected Member Functions

std::optional< 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 = false
 
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

◆ CDCCIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCCIt = typename CustomContainer::const_iterator
protected

◆ CDCCRIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCCRIt = typename CustomContainer::const_reverse_iterator
protected

◆ CDCInnerCIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCInnerCIt = typename InnerData::const_iterator
protected

◆ CDCInnerCRIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCInnerCRIt = typename InnerData::const_reverse_iterator
protected

◆ CDCInnerIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCInnerIt = typename InnerData::iterator
protected

◆ CDCInnerRIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCInnerRIt = typename InnerData::reverse_iterator
protected

◆ CDCIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCIt = typename CustomContainer::iterator
protected

◆ CDCMediumCIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCMediumCIt = typename MediumData::const_iterator
protected

◆ CDCMediumCRIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCMediumCRIt = typename MediumData::const_reverse_iterator
protected

◆ CDCMediumIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCMediumIt = typename MediumData::iterator
protected

◆ CDCMediumRIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCMediumRIt = typename MediumData::reverse_iterator
protected

◆ CDCRIt

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CDCRIt = typename CustomContainer::reverse_iterator
protected

◆ 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>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::CustomContainer = typename std::map< T, MediumData, OutComp >
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>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::InnerData = typename std::map< double, Data, InComp >
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>>
using woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::MediumData = typename std::map< double, InnerData, MidComp >
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 ( )
default

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 ( )
default

CustomDataContainer destructor

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 ( )

Clears the map

◆ 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 >
std::optional< 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.

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
std::optional to a Data object

Referenced by woss::WossDbManager::setCustomSediment().

◆ get() [1/2]

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
const std::optional< 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
std::optional to Data

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 std::optional< 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
std::optional to Data

◆ 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

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

◆ DB_CDATA_ALL_INNER_KEYS [1/2]

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
constexpr double woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::DB_CDATA_ALL_INNER_KEYS = -10.0
staticconstexpr

◆ DB_CDATA_ALL_INNER_KEYS [2/2]

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
const double woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::DB_CDATA_ALL_INNER_KEYS = -10.0
static

◆ DB_CDATA_ALL_MEDIUM_KEYS [1/2]

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
constexpr double woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::DB_CDATA_ALL_MEDIUM_KEYS = -190.0
staticconstexpr

◆ DB_CDATA_ALL_MEDIUM_KEYS [2/2]

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp = std::less<T>, class MidComp = std::less<double>, class InComp = std::less<double>>
const double woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::DB_CDATA_ALL_MEDIUM_KEYS = -190.0
static

◆ DB_CDATA_ALL_OUTER_KEYS

template<class T , class MidFunctor , class InFunctor , class Data , class OutComp , class MidComp , class InComp >
const T woss::CustomDataContainer< T, MidFunctor, InFunctor, Data, OutComp, MidComp, InComp >::DB_CDATA_ALL_OUTER_KEYS = T()
static

◆ 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 = false
protected

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