IODA
ioda_c.h
Go to the documentation of this file.
1 #pragma once
2 /*
3  * (C) Copyright 2020-2021 UCAR
4  *
5  * This software is licensed under the terms of the Apache Licence Version 2.0
6  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
7  */
8 
9 /*! \defgroup ioda_c_api API
10  * \brief C API
11  * \ingroup ioda_c
12  *
13  * @{
14  * \file ioda_c.h
15  * \brief C bindings for ioda-engines. Provides a class-like structure.
16  */
17 
18 #include <stdbool.h>
19 
20 #include "../defs.h"
21 #include "Attribute_c.h"
22 #include "Dimensions_c.h"
23 #include "Engines_c.h"
24 #include "Group_c.h"
25 #include "Has_Attributes_c.h"
26 #include "Has_Variables_c.h"
27 #include "String_c.h"
29 #include "Variable_c.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct c_ioda {
36  struct c_ioda_engines Engines;
37  struct c_ioda_group Group;
38  struct c_attribute Attribute;
40  struct c_dimensions Dimensions;
41  struct c_strings Strings;
42  struct c_variable Variable;
45 };
47 
48 #ifdef __cplusplus
49 }
50 #endif
51 
52 /// @} // Close Doxygen block
C bindings for ioda::Attribute
C bindings for ioda::Dimensions
C bindings for ioda::Engines
C bindings for ioda::Group
C bindings for ioda::Has_Attributes
C bindings for ioda::Has_Variables
C bindings .
C bindings for ioda::VariableCreationParameters, used in ioda::Has_Variables::create.
C bindings for ioda::Variable
IODA_DL struct c_ioda use_c_ioda()
Creates and returns a c_ioda struct that has all of the function pointers filled in.
Definition: ioda_c.cpp:18
#define IODA_DL
A preprocessor tag that indicates that a symbol is to be exported/imported.
Definition: defs.h:110
Class-like encapsulation of C dimension-manipulating functions.
Definition: Dimensions_c.h:100
Class-like encapsulation of C has_attributes functions.
Class-like encapsulation of C has_variables functions.
Class-like encapsulation of ioda::Engines functions.
Definition: Engines_c.h:100
Spiffy C++-like container of function pointers for group methods.
Definition: Group_c.h:97
Definition: ioda_c.h:35
struct c_strings Strings
Definition: ioda_c.h:41
struct c_variable Variable
Definition: ioda_c.h:42
struct c_variable_creation_parameters VariableCreationParams
Definition: ioda_c.h:43
struct c_dimensions Dimensions
Definition: ioda_c.h:40
struct c_attribute Attribute
Definition: ioda_c.h:38
struct c_ioda_engines Engines
Definition: ioda_c.h:36
struct c_has_attributes Has_Attributes
Definition: ioda_c.h:39
struct c_ioda_group Group
Definition: ioda_c.h:37
struct c_has_variables Has_Variables
Definition: ioda_c.h:44
Namespace encapsulation for string functions.
Definition: String_c.h:33
Class-like encapsulation of C variable creation parameters functions.
Class-like encapsulation of C variable functions.
Definition: Variable_c.h:264