RAVE
compositefactorymanager.c File Reference

Registry for keeping track of available composite generator factories. More...

#include "compositefactorymanager.h"
#include "rave_object.h"
#include "raveobject_hashtable.h"
#include "raveobject_list.h"
#include "rave_types.h"
#include "rave_debug.h"
#include "rave_alloc.h"
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include "nearestcompositegeneratorfactory.h"
#include "legacycompositegeneratorfactory.h"
#include "acqvacompositegeneratorfactory.h"

Classes

struct  _CompositeFactoryManager_t
 Represents the composite manager product. More...
 

Functions

int CompositeFactoryManager_add (CompositeFactoryManager_t *manager, CompositeGeneratorFactory_t *factory)
 Adds generator factory in the manager.
 
RaveList_tCompositeFactoryManager_getRegisteredFactoryNames (CompositeFactoryManager_t *manager)
 Returns a list of registered factory names.
 
RaveObjectList_tCompositeFactoryManager_getRegisteredFactories (CompositeFactoryManager_t *manager)
 Returns the registered factories.
 
void CompositeFactoryManager_remove (CompositeFactoryManager_t *manager, const char *name)
 Removes the factory with specified id.
 
CompositeGeneratorFactory_tCompositeFactoryManager_get (CompositeFactoryManager_t *manager, const char *name)
 Returns the factory with specified name.
 
int CompositeFactoryManager_size (CompositeFactoryManager_t *manager)
 Returns the number of registered factories.
 
int CompositeFactoryManager_isRegistered (CompositeFactoryManager_t *manager, const char *name)
 Returns if the specified factory class is registered or not.
 

Variables

RaveCoreObjectType CompositeFactoryManager_TYPE
 Type definition to use when creating a rave object.
 

Detailed Description

Registry for keeping track of available composite generator factories.

Author
Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
Date
2025-01-29

Function Documentation

◆ CompositeFactoryManager_add()

int CompositeFactoryManager_add ( CompositeFactoryManager_t * manager,
CompositeGeneratorFactory_t * factory )

Adds generator factory in the manager.

Parameters
[in]manager- self
[in]id- the id of the factory
[in]factory- the actual factory
Returns
1 if factory added successfully, otherwise 0

◆ CompositeFactoryManager_get()

CompositeGeneratorFactory_t * CompositeFactoryManager_get ( CompositeFactoryManager_t * manager,
const char * name )

Returns the factory with specified name.

Parameters
[in]manager- self
[in]name- name of the factory
Returns
the found factory or NULL if not

◆ CompositeFactoryManager_getRegisteredFactories()

RaveObjectList_t * CompositeFactoryManager_getRegisteredFactories ( CompositeFactoryManager_t * manager)

Returns the registered factories.

Parameters
[in]manager- self
Returns
the registered factories

◆ CompositeFactoryManager_getRegisteredFactoryNames()

RaveList_t * CompositeFactoryManager_getRegisteredFactoryNames ( CompositeFactoryManager_t * manager)

Returns a list of registered factory names.

NOTE: Remember to use RaveList_freeAndDestroy to release all memory in the returned RaveList_t.

Parameters
[in]manager- self
Returns
a list of registered factory names

◆ CompositeFactoryManager_isRegistered()

int CompositeFactoryManager_isRegistered ( CompositeFactoryManager_t * manager,
const char * name )

Returns if the specified factory class is registered or not.

Parameters
[in]manager- self
[in]name- queried name
Returns
1 if registered otherwise 0

◆ CompositeFactoryManager_remove()

void CompositeFactoryManager_remove ( CompositeFactoryManager_t * manager,
const char * name )

Removes the factory with specified id.

If id doesn't exist nothing will be done,

Parameters
[in]manager- self
[in]id- the id of the factory to remove

◆ CompositeFactoryManager_size()

int CompositeFactoryManager_size ( CompositeFactoryManager_t * manager)

Returns the number of registered factories.

Parameters
[in]manager- self
Returns
number of registered factories

Variable Documentation

◆ CompositeFactoryManager_TYPE

RaveCoreObjectType CompositeFactoryManager_TYPE
Initial value:
= {
"CompositeFactoryManager",
CompositeFactoryManager_constructor,
CompositeFactoryManager_destructor,
CompositeFactoryManager_copyconstructor
}
struct _CompositeFactoryManager_t CompositeFactoryManager_t
Defines a Composite generator.
Definition compositefactorymanager.h:37

Type definition to use when creating a rave object.