RAVE
compositegenerator.h
Go to the documentation of this file.
1/* --------------------------------------------------------------------
2Copyright (C) 2024 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 COMPOSITEGENERATOR_H
27#define COMPOSITEGENERATOR_H
28
29#include "cartesian.h"
32#include "compositearguments.h"
33#include "rave_object.h"
34#include "rave_types.h"
36#include "rave_properties.h"
37#include "limits.h"
38
39
44
49
58
67
72
82
90
96void CompositeGenerator_unregister(CompositeGenerator_t* generator, const char* id);
97
105
113
121
122#endif /* COMPOSITE_H */
Defines the functions available when working with cartesian products.
struct _Cartesian_t Cartesian_t
Defines a Cartesian product.
Definition cartesian.h:43
The arguments that should be passed on to the composite generator.
struct _CompositeArguments_t CompositeArguments_t
Defines a Geographical Area.
Definition compositearguments.h:41
Registry for keeping track of available composite generator factories.
struct _CompositeFactoryManager_t CompositeFactoryManager_t
Defines a Composite generator.
Definition compositefactorymanager.h:37
RaveCoreObjectType CompositeGenerator_TYPE
Type definition to use when creating a rave object.
Definition compositegenerator.c:646
CompositeGenerator_t * CompositeGenerator_create(CompositeFactoryManager_t *manager, const char *filename)
Creates a composite generator containing both factory manager and intialized with a factory filter.
Definition compositegenerator.c:360
void CompositeGenerator_unregister(CompositeGenerator_t *generator, const char *id)
Removes the factory with specified id.
Definition compositegenerator.c:495
int CompositeGenerator_setProperties(CompositeGenerator_t *generator, RaveProperties_t *properties)
Sets properties to the generator.
Definition compositegenerator.c:410
CompositeGeneratorFactory_t * CompositeGenerator_createFactory(CompositeGenerator_t *generator, CompositeArguments_t *arguments)
Will identify the factory, create a new instance of this factory and set the properties before return...
Definition compositegenerator.c:585
struct _CompositeGenerator_t CompositeGenerator_t
Defines a Composite generator.
Definition compositegenerator.h:43
RaveList_t * CompositeGenerator_getFactoryIDs(CompositeGenerator_t *generator)
Returns a list of registered factory ids.
Definition compositegenerator.c:469
int CompositeGenerator_register(CompositeGenerator_t *generator, const char *id, CompositeGeneratorFactory_t *factory, RaveObjectList_t *filters)
Registers a generator factory in the the generator.
Definition compositegenerator.c:426
Cartesian_t * CompositeGenerator_generate(CompositeGenerator_t *generator, CompositeArguments_t *arguments)
Generates a composite according to the configured parameters in the composite structure.
Definition compositegenerator.c:605
RaveProperties_t * CompositeGenerator_getProperties(CompositeGenerator_t *generator)
Definition compositegenerator.c:420
CompositeGeneratorFactory_t * CompositeGenerator_identify(CompositeGenerator_t *generator, CompositeArguments_t *arguments)
Will identify the candidate factory from the provided arguments.
Definition compositegenerator.c:514
Interface for defining your own compositing factory.
struct _CompositeGeneratorFactory_t CompositeGeneratorFactory_t
The basic composite algorithm that can be cast into a subclassed processor.
struct _RaveList_t RaveList_t
Defines a list.
Definition rave_list.h:33
Generic implementation of an object that is used within rave.
struct _raveobjecttype RaveCoreObjectType
The rave object type definition.
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.
Implementation of a rave object hashtable that maps between strings and rave core objects.
struct _RaveObjectList_t RaveObjectList_t
Defines a list.
Definition raveobject_list.h:38
Represents the cartesian product.
Definition compositegenerator.c:52
CompositeFactoryManager_t * manager
the factory manager
Definition compositegenerator.c:55
RaveProperties_t * properties
properties
Definition compositegenerator.c:56