RAVE
compositeengineqc.h
Go to the documentation of this file.
1/* --------------------------------------------------------------------
2Copyright (C) 2025 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------------------------------------------------------------------------*/
25 #ifndef COMPOSITE_ENGINE_QC_H
26 #define COMPOSITE_ENGINE_QC_H
27 #include "cartesian.h"
28 #include "cartesianvolume.h"
29 #include "compositearguments.h"
30 #include "rave_attribute.h"
31 #include "rave_object.h"
32 #include "rave_types.h"
33 #include "rave_value.h"
34 #include "raveobject_list.h"
35 #include "raveobject_hashtable.h"
36 #include "rave_properties.h"
37 #include "projection_pipeline.h"
38 #include "composite_utils.h"
39 #include "compositeenginebase.h"
40 #include <strings.h>
41
44
45typedef const char*(*composite_engine_qc_handler_getQualityFieldName_fun)(struct _CompositeEngineQcHandler_t* self);
46
47typedef int(*composite_engine_qc_handler_initialize_fun)(struct _CompositeEngineQcHandler_t* self, void* extradata, RaveProperties_t* properties, CompositeArguments_t* arguments, CompositeEngineObjectBinding_t* bindings, int nbindings);
48
49typedef int(*composite_engine_qc_handler_getQualityValue_fun)(struct _CompositeEngineQcHandler_t* self, void* extradata, CompositeArguments_t* arguments, RaveCoreObject* object, const char* quantity, const char* qiFieldName, PolarNavigationInfo* navinfo, double* qivalue);
50
51typedef CompositeQualityFlagDefinition_t*(*composite_engine_qc_handler_getFlagDefinition_fun)(struct _CompositeEngineQcHandler_t* self);
52
56#define COMPOSITE_ENGINE_QC_HANDLER_HEAD \
57 composite_engine_qc_handler_getQualityFieldName_fun getQualityFieldName; \
58 composite_engine_qc_handler_initialize_fun initialize; \
59 composite_engine_qc_handler_getQualityValue_fun getQualityValue; \
60 composite_engine_qc_handler_getFlagDefinition_fun getFlagDefinition;
61
69
70
76 #define CompositeEngineQcHandler_getQualityFieldName(self) \
77 ((CompositeEngineQcHandler_t*)self)->getQualityFieldName((CompositeEngineQcHandler_t*)self)
78
84 #define CompositeEngineQcHandler_initialize(self, extradata, properties, arguments, bindings, nbindings) \
85 ((CompositeEngineQcHandler_t*)self)->initialize((CompositeEngineQcHandler_t*)self, extradata, properties, arguments, bindings, nbindings)
86
92 #define CompositeEngineQcHandler_getQualityValue(self, extradata, args, obj, quantity, qfieldname, navinfo, v) \
93 ((CompositeEngineQcHandler_t*)self)->getQualityValue((CompositeEngineQcHandler_t*)self, extradata, args, obj, quantity, qfieldname, navinfo, v)
94
100 #define CompositeEngineQcHandler_getFlagDefinition(self) \
101 ((CompositeEngineQcHandler_t*)self)->getFlagDefinition((CompositeEngineQcHandler_t*)self)
102
104
107
112
113
115
127 RaveObjectHashTable_t* CompositeEngineQc_getQualityScanFields(CompositeEngineObjectBinding_t* bindings, int nbindings, const char* qualityFieldName);
129
130 #endif /* COMPOSITE_ENGINE_QC_H */
131
Defines the functions available when working with cartesian products.
Defines the functions available when working with cartesian volumes.
Contains various utility functions when creating composite factories.
The arguments that should be passed on to the composite generator.
struct _CompositeArguments_t CompositeArguments_t
Defines a Geographical Area.
Definition compositearguments.h:41
Contains definitions useful when working with the composite engine.
struct _CompositeEngineOvershootingQcHandler_t CompositeEngineOvershootingQcHandler_t
The QC overshooting handler when generating poo fields.
RaveCoreObjectType CompositeEngineOvershootingQcHandler_TYPE
Type definition to use when creating a rave object.
Definition compositeengineqc.c:197
#define COMPOSITE_ENGINE_QC_HANDLER_HEAD
Header to add to all subclasses of this instance.
Definition compositeengineqc.h:56
RaveObjectHashTable_t * CompositeEngineQc_getQualityScanFields(CompositeEngineObjectBinding_t *bindings, int nbindings, const char *qualityFieldName)
Will traverse all objects in the list and atempt to find a scan that contains a quality field that ha...
Definition compositeengineqc.c:207
struct _CompositeEngineQcHandler_t CompositeEngineQcHandler_t
CompositeEngineQcHandler.
Helper class to support both legacy PROJ.4 projection and > PROJ.4 This object supports RAVE_OBJECT_C...
Used for keeping track on attributes.
Generic implementation of an object that is used within rave.
struct _raveobject RaveCoreObject
The basic raveobject that contains the header information for all rave objects.
struct _raveobjecttype RaveCoreObjectType
The rave object type definition.
#define RAVE_OBJECT_HEAD
Always should be at top of a struct that implements a RaveObject.
Definition rave_object.h:33
Property handling This object supports RAVE_OBJECT_CLONE.
struct _RaveProperties_t RaveProperties_t
Defines the area registry.
Definition rave_properties.h:35
Type definitions for RAVE.
A value object that can represent standard types like int, double, .
Implementation of a rave object hashtable that maps between strings and rave core objects.
struct _RaveObjectHashTable_t RaveObjectHashTable_t
Defines a hash table.
Definition raveobject_hashtable.h:38
Implementation of a rave object list that ensures that the objects contained within the list are rele...
Binding for associating rave objects with pipelines, sources and other miscellaneous information.
Definition compositeenginebase.h:42
Can be used to define if a quality flag requires different gain/offset or datatype than the default v...
Definition composite_utils.h:105
Provides user with navigation information.
Definition rave_types.h:160
The QC overshooting handler when generating poo fields.
Definition compositeengineqc.c:70
CompositeEngineQcHandler.
Definition compositeengineqc.h:65