IODA
ObsStore Engine

Implementation of the in-memory ObsStore backend. More...

Collaboration diagram for ObsStore Engine:

Files

file  Attributes.cpp
 Functions for ObsStore Attribute and Has_Attributes.
 
file  Attributes.hpp
 Functions for ObsStore Attribute and Has_Attributes.
 
file  Engines/ObsStore/Group.cpp
 Functions for ObsStore Group and Has_Groups.
 
file  Group.hpp
 Functions for ObsStore Group and Has_Groups.
 
file  ObsStore-attributes.cpp
 Functions for ObsStore Attribute and Has_Attributes.
 
file  ObsStore-attributes.h
 Functions for ObsStore Attribute and Has_Attributes.
 
file  ObsStore-groups.h
 Functions for ioda::Group backed by ObsStore.
 
file  ObsStore-selection.cpp
 Functions for transfering ioda::Selection to ObsStore.
 
file  ObsStore-selection.h
 Functions for transfering ioda::Selection to ObsStore.
 
file  ObsStore-types.cpp
 Functions for translating ioda::Types to ObsStore Types.
 
file  ObsStore-types.h
 Functions for translating ioda::Types to ObsStore Types.
 
file  ObsStore-variables.cpp
 Functions for ioda::Variable and ioda::Has_Variables backed by ObsStore.
 
file  ObsStore-variables.h
 Functions for ioda::Variable and ioda::Has_Variables backed by ObsStore.
 
file  Engines/ObsStore/Selection.cpp
 Functions for ObsStore Selection.
 
file  Selection.hpp
 Functions for ObsStore Selection.
 
file  Types.hpp
 Functions for ObsStore type markers.
 
file  VarAttrStore.hpp
 Functions for ObsStore variable and attribute data storage.
 
file  Variables.cpp
 Functions for ObsStore Variable and Has_Variables.
 
file  Variables.hpp
 Functions for ObsStore Variable and Has_Variables.
 

Classes

class  ioda::ObsStore::Attribute
 
class  ioda::ObsStore::Has_Attributes
 
class  ioda::ObsStore::Group
 
class  ioda::Engines::ObsStore::ObsStore_Attribute_Backend
 This is the implementation of Attributes in ioda::ObsStore. More...
 
class  ioda::Engines::ObsStore::ObsStore_HasAttributes_Backend
 This is the implementation of Has_Attributes in ioda::ObsStore. More...
 
class  ioda::Engines::ObsStore::ObsStore_Group_Backend
 This is the implementation of Groups using ObsStore. More...
 
class  ioda::Engines::ObsStore::ObsStore_Type_Provider
 set of functions to return ObsStore Types More...
 
class  ioda::Engines::ObsStore::ObsStore_Type
 
class  ioda::Engines::ObsStore::ObsStore_Variable_Backend
 This is the implementation of Variable in ioda::ObsStore. More...
 
class  ioda::Engines::ObsStore::ObsStore_HasVariables_Backend
 This is the implementation of Has_Variables in ioda::ObsStore. More...
 
class  ioda::ObsStore::SelectCounter
 
class  ioda::ObsStore::Selection
 
class  ioda::ObsStore::VarAttrStore_Base
 
class  ioda::ObsStore::VarAttrStore< DataType >
 
class  ioda::ObsStore::VarAttrStore< std::string >
 
struct  ioda::ObsStore::VarCreateParams
 parameters for creating a new variable More...
 
class  ioda::ObsStore::Variable
 
class  ioda::ObsStore::Has_Variables
 

Typedefs

typedef std::vector< std::size_t > ioda::ObsStore::SelectSpecs
 container of selection indices More...
 

Enumerations

enum class  ioda::ObsStore::SelectionModes { ioda::ObsStore::ALL , ioda::ObsStore::INTERSECT , ioda::ObsStore::POINT }
 ObsStore selection modes. More...
 
enum class  ioda::ObsStore::ObsTypes {
  ioda::ObsStore::NOTYPE , ioda::ObsStore::BOOL , ioda::ObsStore::FLOAT , ioda::ObsStore::DOUBLE ,
  ioda::ObsStore::LDOUBLE , ioda::ObsStore::SCHAR , ioda::ObsStore::SHORT , ioda::ObsStore::INT ,
  ioda::ObsStore::LONG , ioda::ObsStore::LLONG , ioda::ObsStore::UCHAR , ioda::ObsStore::UINT ,
  ioda::ObsStore::USHORT , ioda::ObsStore::ULONG , ioda::ObsStore::ULLONG , ioda::ObsStore::CHAR ,
  ioda::ObsStore::WCHAR , ioda::ObsStore::CHAR16 , ioda::ObsStore::CHAR32 , ioda::ObsStore::STRING
}
 ObsStore data type markers. More...
 

Functions

ioda::ObsStore::Selection ioda::Engines::ObsStore::createObsStoreSelection (const ioda::Selection &selection, const std::vector< Dimensions_t > &dim_sizes)
 translate a ioda::Selection to and ObsStore Selection More...
 
void ioda::Engines::ObsStore::genDimSelects (const Selection::VecDimensions_t &start, const Selection::VecDimensions_t &count, const Selection::VecDimensions_t &stride, const Selection::VecDimensions_t &block, std::vector< ioda::ObsStore::SelectSpecs > &selects)
 generate the dimension selection structure from hyperslab specs More...
 
void ioda::Engines::ObsStore::genDimSelects (const std::vector< Selection::VecDimensions_t > &points, std::vector< ioda::ObsStore::SelectSpecs > &selects)
 generate the dimension selection structure from point specs More...
 
void ioda::Engines::ObsStore::genDimSelects (const std::vector< Selection::SingleSelection > &actions, const std::vector< Dimensions_t > &dim_sizes, std::vector< ioda::ObsStore::SelectSpecs > &selects)
 generate the dimension selection structure from dimension index specs More...
 
VarAttrStore_Baseioda::ObsStore::createVarAttrStore (ObsTypes dtype)
 factory style function to create a new templated object More...
 

Detailed Description

Implementation of the in-memory ObsStore backend.

Typedef Documentation

◆ SelectSpecs

typedef std::vector<std::size_t> ioda::ObsStore::SelectSpecs

container of selection indices

Definition at line 28 of file Selection.hpp.

Enumeration Type Documentation

◆ ObsTypes

ObsStore data type markers.

ObsStore data type markers are one-for-one with C++ POD types. These are needed for translating the frontend structure that holds POD types to an equivalent in ObsStore. These are primarily used for constructing templated objects that hold data values.

Enumerator
NOTYPE 
BOOL 
FLOAT 
DOUBLE 
LDOUBLE 
SCHAR 
SHORT 
INT 
LONG 
LLONG 
UCHAR 
UINT 
USHORT 
ULONG 
ULLONG 
CHAR 
WCHAR 
CHAR16 
CHAR32 
STRING 

Definition at line 30 of file Types.hpp.

◆ SelectionModes

ObsStore selection modes.

Selection mode meanings ALL - select all points INTERSECT - select points in intersection of dim indices if dim indices are dim 0: 1, 7, 8 dim 1: 2, 4, 10 then select the 9 points: (1,2) (1,4) (1,10) (7,2) (7,4) (7,10) (8,2) (8,4) (8,10) POINT - select points given by each entry in dim indices if dim indices are dim 0: 1, 7, 8 dim 1: 2, 4, 10 then select the 3 points: (1,2) (7,4) (8,10)

Enumerator
ALL 
INTERSECT 
POINT 

Definition at line 56 of file Selection.hpp.

Function Documentation

◆ createObsStoreSelection()

ioda::ObsStore::Selection ioda::Engines::ObsStore::createObsStoreSelection ( const ioda::Selection selection,
const std::vector< Dimensions_t > &  dim_sizes 
)

translate a ioda::Selection to and ObsStore Selection

Definition at line 24 of file ObsStore-selection.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createVarAttrStore()

VarAttrStore_Base* ioda::ObsStore::createVarAttrStore ( ObsTypes  dtype)
inline

factory style function to create a new templated object

Definition at line 203 of file VarAttrStore.hpp.

Here is the caller graph for this function:

◆ genDimSelects() [1/3]

void ioda::Engines::ObsStore::genDimSelects ( const Selection::VecDimensions_t start,
const Selection::VecDimensions_t count,
const Selection::VecDimensions_t stride,
const Selection::VecDimensions_t block,
std::vector< ioda::ObsStore::SelectSpecs > &  selects 
)

generate the dimension selection structure from hyperslab specs

Definition at line 72 of file ObsStore-selection.cpp.

Here is the caller graph for this function:

◆ genDimSelects() [2/3]

void ioda::Engines::ObsStore::genDimSelects ( const std::vector< Selection::SingleSelection > &  actions,
const std::vector< Dimensions_t > &  dim_sizes,
std::vector< ioda::ObsStore::SelectSpecs > &  selects 
)

generate the dimension selection structure from dimension index specs

Definition at line 122 of file ObsStore-selection.cpp.

◆ genDimSelects() [3/3]

void ioda::Engines::ObsStore::genDimSelects ( const std::vector< Selection::VecDimensions_t > &  points,
std::vector< ioda::ObsStore::SelectSpecs > &  selects 
)

generate the dimension selection structure from point specs

Definition at line 103 of file ObsStore-selection.cpp.