modsup.h File Reference

#include <limits.h>
#include "data.h"
#include "chromo.h"

This graph shows which files directly or indirectly include this file:


Data Structures

struct  modulehandler_t
 Structure describing a restriction handler. More...
struct  fitnessfunc_t
 Structure describing a fitness function. More...
struct  precalcfunc_t
 Structure describing a precalculate function. More...
struct  module_t
 Information about a module. More...
struct  modulelist_t
 Information about loaded modules. More...
struct  moduleoption_t
 Structure holding a module option. More...

Defines

#define EVENT_TYPE   "__EVENT__"
 Name of the special resource type used for event restrictions.
#define ANY_TYPE   "__ANY_TYPE__"
 Name of the special resource type used for resource restrictions that matches any resource type.

Typedefs

typedef moduleoption_t moduleoption
typedef modulelist_t modulelist
typedef module_t module
typedef precalcfunc_t precalcfunc
typedef modulehandler_t modulehandler
typedef fitnessfunc_t fitnessfunc
typedef int(*) fitness_f (chromo **c, ext **e, slist **s)
 Pointer to modules fitness function.
typedef int(*) handler_res_f (char *restriction, char *cont, resource *res)
 Pointer to module resource restriction handler.
typedef int(*) handler_tup_f (char *restriction, char *cont, tupleinfo *tuple)
 Pointer to module tuple restriction handler.
typedef int(*) init_f (moduleoption *opt)
 Pointer to module initialization function.

Functions

moduleoptionoption_new (moduleoption *opt, char *name, char *content)
 Inserts a new module option to the beginning of the moduleoption linked list.
moduleoptionoption_find (moduleoption *opt, char *name)
 Finds an option by name.
int option_int (moduleoption *opt, char *name)
 Finds an integer option by name.
char * option_str (moduleoption *opt, char *name)
 Finds a string option by name.
void option_free (moduleoption *opt)
 Free a linked list of options.
char * module_filename_combine (char *prefix, char *name)
 Combines the base module name with module path and extension.
modulemodule_load (char *name, moduleoption *opt)
 Loads a module. After the module is loaded, module_init() function is called.
int handler_res_call (resource *res, char *restriction, char *content)
 Call a resource restriction handler.
int handler_tup_call (tupleinfo *tuple, char *restriction, char *content)
 Call a tuple restriction handler.
modulehandlerhandler_tup_new (char *restriction, handler_tup_f handler)
 Registers a new tuple restriction handler.
modulehandlerhandler_res_new (char *restype, char *restriction, handler_res_f handler)
 Registers a new resource restriction handler.
precalcfuncprecalc_new (init_f func)
 Register a new precalc function.
int precalc_call ()
 Call all registered precalc functions.
fitnessfuncfitness_new (char *name, int weight, int man, fitness_f func)
 Registers a new fitness function.
int fitness_request_chromo (fitnessfunc *fitness, char *restype)
 Request a chromosome to be passed to a fitness function.
int fitness_request_ext (fitnessfunc *fitness, char *contype, char *vartype)
 Request an extension to be passed to a fitness function.
int fitness_request_slist (fitnessfunc *fitness, char *vartype)
 Request a slist to be passed to a fitness function.
void table_fitness (table *tab)
 Assign a fitness to a table by calling all fitness functions.

Variables

int mod_fitnessnum
 Number of all registered fitness functions.
fitnessfuncmod_fitnessfunc
 Linked list of all registered fitness functions.
char * mod_modulepath
 Path to fitness and export modules.

Detailed Description


Typedef Documentation

typedef int(*) fitness_f(chromo **c, ext **e, slist **s)

Pointer to modules fitness function.

Parameters:
c Array of pointers to requested chromosomes.
e Array of pointers to requested extensions.
s Array of pointers to requested slists.
Returns:
Error count

typedef int(*) handler_res_f(char *restriction, char *cont, resource *res)

Pointer to module resource restriction handler.

Parameters:
restriction Type of restriction.
cont Content of restriction tag.
res Resource for which restriction handler was called.
Returns:
0 on success and -1 on error.

typedef int(*) handler_tup_f(char *restriction, char *cont, tupleinfo *tuple)

Pointer to module tuple restriction handler.

Parameters:
restriction Type of restriction.
cont Content of restriction tag.
tuple Tuple for which restriction handler was called.
Returns:
0 on success and -1 on error.

typedef int(*) init_f(moduleoption *opt)

Pointer to module initialization function.

Parameters:
opt Pointer to the moduleoption structure with the options for the current module.
Returns:
0 on success and -1 on error.


Function Documentation

fitnessfunc* fitness_new ( char *  name,
int  weight,
int  man,
fitness_f  func 
)

Registers a new fitness function.

Parameters:
name Description of this fitness function.
weight Weight value for this function.
man Set to 1 if this is a mandatory weight and 0 if not.
func Pointer to the fitness function.
Returns:
Pointer to the fitnessfunc struct or NULL on error.

int fitness_request_chromo ( fitnessfunc fitness,
char *  restype 
)

Request a chromosome to be passed to a fitness function.

Parameters:
fitness Pointer to the fitnessfunc structure.
restype Resource type of the chromosome to be passed to the fitness function.
Returns:
0 on success or -1 on error.

int fitness_request_ext ( fitnessfunc fitness,
char *  contype,
char *  vartype 
)

Request an extension to be passed to a fitness function.

Parameters:
fitness Pointer to the fitnessfunc structure.
contype Name of the constant resource.
vartype Name of the variable resource.
Returns:
0 on success or -1 on error.

int fitness_request_slist ( fitnessfunc fitness,
char *  vartype 
)

Request a slist to be passed to a fitness function.

Parameters:
fitness Pointer to the fitnessfunc structure.
vartype Variable resource ID. fitness function.
Returns:
0 on success or -1 on error.

int handler_res_call ( resource res,
char *  restriction,
char *  content 
)

Call a resource restriction handler.

Parameters:
res Pointer to the resource for this restriction.
restriction Type of this restriction.
content Content of this restriction.
Returns:
0 if all handlers were successful, 1 if some or all handlers returned errors, 2 if no handlers were found.

modulehandler* handler_res_new ( char *  restype,
char *  restriction,
handler_res_f  handler 
)

Registers a new resource restriction handler.

Parameters:
restype Name of the resource type. If equal to NULL then handler will be registered for all resource types.
restriction Type of the restriction.
handler Pointer to the restriction handler function.
Returns:
Pointer to the modulehandler struct or NULL on error.

int handler_tup_call ( tupleinfo tuple,
char *  restriction,
char *  content 
)

Call a tuple restriction handler.

Parameters:
tuple Pointer to the tuple for this restriction.
restriction Type of this restriction.
content Content of this restriction.
Returns:
0 if all handlers were successful, 1 if some or all handlers returned errors, 2 if no handlers were found.

modulehandler* handler_tup_new ( char *  restriction,
handler_tup_f  handler 
)

Registers a new tuple restriction handler.

Parameters:
restriction Type of the restriction.
handler Pointer to the restriction handler function.
Returns:
Pointer to the modulehandler struct or NULL on error.

char* module_filename_combine ( char *  prefix,
char *  name 
)

Combines the base module name with module path and extension.

If file name has no extension the default shared library extension for this system will be appended.

If file name has a ".so" extension this extension will be replaced with the default shared library extension to remain backward compatible.

Parameters:
name File name of the module
prefix Module prefix (for example "export_" for export modules)
Returns:
Absolute path to the module with proper extension. Must be freed after use. Returns NULL on memory allocation error.

module* module_load ( char *  name,
moduleoption opt 
)

Loads a module. After the module is loaded, module_init() function is called.

See also:
module_filename_combine()
Parameters:
name File name of the module (example: "timeplace").
opt Linked list of options for this module.
Returns:
Pointer to the module structure of the loaded module or NULL on error.

moduleoption* option_find ( moduleoption opt,
char *  name 
)

Finds an option by name.

If there many options with the same name in the linked list, you can find them all with the following loop:

 moduleoption *result;

 // "list" is the pointer to the linked list to search
 result=option_find(list, "name");
 while(result!=NULL) {
        // do something with "result"
        result=option_find(result->next, "name");
 }

Parameters:
opt Pointer to the first element in the linked list.
name Name of the option to find.
Returns:
Pointer to the moduleoption struct or NULL if not found.

void option_free ( moduleoption opt  ) 

Free a linked list of options.

Parameters:
opt Pointer to the first element in the linked list.

int option_int ( moduleoption opt,
char *  name 
)

Finds an integer option by name.

Note that if more than one option with the same name is defined then this function returns the value of the option that was added last to the linked list by option_new()

See also:
option_find()
Parameters:
opt Pointer to the first element in the linked list.
name Name of the option to find.
Returns:
Integer value of the module option or INT_MIN if not found or if the module option does not contain an integer value.

moduleoption* option_new ( moduleoption opt,
char *  name,
char *  content 
)

Inserts a new module option to the beginning of the moduleoption linked list.

Parameters:
opt Pointer to the first element in the linked list (can be NULL).
name Name of the option.
content Content of the option.
Returns:
Pointer to the allocated moduleoption struct or NULL on error.

char* option_str ( moduleoption opt,
char *  name 
)

Finds a string option by name.

Note that if more than one option with the same name is defined then this function returns the value of the option that was added last to the linked list by option_new()

See also:
option_find()
Parameters:
opt Pointer to the first element in the linked list.
name Name of the option to find.
Returns:
Content of the module option or NULL if not found.

int precalc_call (  ) 

Call all registered precalc functions.

Returns:
0 on success and -1 on error.

precalcfunc* precalc_new ( init_f  func  ) 

Register a new precalc function.

Parameters:
func Pointer to the precalc function.
Returns:
Pointer to the new precalcfunc struct or NULL on error.

void table_fitness ( table tab  ) 

Assign a fitness to a table by calling all fitness functions.

Parameters:
tab Pointer to the table to be fitnessd.


Variable Documentation

char* mod_modulepath

Path to fitness and export modules.

Defaults to the location where modules were installed by "make install".


Generated on Tue Jul 3 13:23:36 2007 for Tablix by  doxygen 1.5.2