RAVE
vp_odim_io.h
Go to the documentation of this file.
1/* --------------------------------------------------------------------
2Copyright (C) 2012 Swedish Meteorological and Hydrological Institute, SMHI,
3
4This file is part of RAVE.
5
6RAVE is free software: you can redistribute it and/or modify
7it under the terms of the GNU Lesser General Public License as published by
8the Free Software Foundation, either version 3 of the License, or
9(at your option) any later version.
10
11RAVE is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU Lesser General Public License for more details.
15
16You should have received a copy of the GNU Lesser General Public License
17along with RAVE. If not, see <http://www.gnu.org/licenses/>.
18------------------------------------------------------------------------*/
26#ifndef VP_ODIM_IO_H
27#define VP_ODIM_IO_H
28#include "rave_object.h"
29#include "hlhdf.h"
30#include "vertical_profile.h"
31#include "lazy_nodelist_reader.h"
32
36typedef struct _VpOdimIO_t VpOdimIO_t;
37
42
49
56
63void VpOdimIO_setStrict(VpOdimIO_t* self, int strict);
64
72
79const char* VpOdimIO_getErrorMessage(VpOdimIO_t* self);
80
89
97int VpOdimIO_fill(VpOdimIO_t* self, VerticalProfile_t* vp, HL_NodeList* nodelist);
98
106
107#endif
Generic implementation of an object that is used within rave.
RaveIO_ODIM_Version
The /Conventions version in a ODIM HDF5 file.
Definition rave_types.h:43
Represents the lazy nodelist loader.
Definition lazy_nodelist_reader.c:21
Represents one vertical profile.
Definition vertical_profile.c:46
The Vertical Profile ODIM IO adaptor.
Definition vp_odim_io.c:42
int strict
If strict compliance should be enforced for some attributes.
Definition vp_odim_io.c:45
RAVE_OBJECT_HEAD RaveIO_ODIM_Version version
Always on top.
Definition vp_odim_io.c:44
The rave object type definition.
Definition rave_object.h:52
Defines the functions available when working with vertical profiles.
RaveIO_ODIM_Version VpOdimIO_getVersion(VpOdimIO_t *self)
Returns the version that this io class handles.
Definition vp_odim_io.c:532
int VpOdimIO_isStrict(VpOdimIO_t *self)
If writing should be done strictly.
Definition vp_odim_io.c:544
void VpOdimIO_setVersion(VpOdimIO_t *self, RaveIO_ODIM_Version version)
Sets the version that this io class should handle.
Definition vp_odim_io.c:526
int VpOdimIO_read(VpOdimIO_t *self, LazyNodeListReader_t *lazyReader, VerticalProfile_t *vp)
Reads a vp from the nodelist and sets the data in the vp.
Definition vp_odim_io.c:556
int VpOdimIO_validateVpHowAttributes(VpOdimIO_t *self, VerticalProfile_t *vp)
Validates a vertical profile according to strictness and version in order to verify if it contains ne...
Definition vp_odim_io.c:734
const char * VpOdimIO_getErrorMessage(VpOdimIO_t *self)
If an error occurs during writing, you might get an indication for why by checking the error message.
Definition vp_odim_io.c:550
int VpOdimIO_fill(VpOdimIO_t *self, VerticalProfile_t *vp, HL_NodeList *nodelist)
Fills a nodelist with information about a vertical profile.
Definition vp_odim_io.c:594
RaveCoreObjectType VpOdimIO_TYPE
Type definition to use when creating a rave object.
Definition vp_odim_io.c:772
void VpOdimIO_setStrict(VpOdimIO_t *self, int strict)
If writing should be done strictly.
Definition vp_odim_io.c:538