Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

pdl_main.c File Reference

All functions that do not fit elsewhere can be found here. More...

#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "_lcmaps_pluginmanager.h"
#include "lcmaps_log.h"
#include "pdl.h"
#include "pdl_variable.h"
#include "pdl_policy.h"
#include "pdl_rule.h"

Include dependency graph for pdl_main.c:

Include dependency graph

Go to the source code of this file.

Functions

void _set_path (const record_t *_path)
record_t_concat_strings (const record_t *s1, const record_t *s2, const char *extra)
void reduce_policies (void)
BOOL plugin_exists (const char *string)
int find_first_space (const char *string)
int pdl_init (const char *name)
int yyparse_errors (void)
const plugin_tget_plugins (void)
const char* pdl_path (void)
int yyerror (const char *s)
void set_path (record_t *path)
void free_path (void)
record_tconcat_strings (record_t *s1, record_t *s2)
record_tconcat_strings_with_space (record_t *s1, record_t *s2)
const char* pdl_next_plugin (plugin_status_t status)
void free_resources (void)
void warning (pdl_error_t error, const char *s,...)

Variables

const char* script_name = NULL
 If non NULL, the name of the configuration script.

const char* d_path = "/usr/lib"
 Default path where plugins can be found.

const char* path = 0
 Path where plugins can be found.

int path_lineno = 0
 ???

plugin_ttop_plugin = NULL
 First node of the list.

BOOL default_path = TRUE
 Has the default vallue of the path been changed.

BOOL parse_error = FALSE
 Tell if there have been any error during parsing.

char* level_str [PDL_SAME]
 When a message is printed, how do we spell warning in a given language.

unsigned int lineno = 1
 The first line of a configuration sctipt is labeled 1.


Detailed Description

All functions that do not fit elsewhere can be found here.

In here one can find the more general functions. Most of them are accessible to outside sources. For a complete list of usable function to out side sources,

See also:
pdl.h.

Author:
G.M. Venekamp (venekamp@nikhef.nl)
Version:
Revision:
1.34
Date:
Date:
2003/10/07 11:21:17

Definition in file pdl_main.c.


Function Documentation

record_t * _concat_strings ( const record_t * s1,
const record_t * s2,
const char * extra )
 

Concatenate two string.

Parameters:
s1   first half of the string.
s2   second half of the string.
Returns:
new string which is the concatenation of s1 and s2.

Definition at line 414 of file pdl_main.c.

Referenced by concat_strings(), and concat_strings_with_space().

void _set_path ( const record_t * _path )
 

Overwrite the default path with the new value. If this function is called more than once, a warning message is displayed for each occurent.

Parameters:
_path   The new path.

Definition at line 353 of file pdl_main.c.

Referenced by set_path().

record_t* concat_strings ( record_t * s1,
record_t * s2 )
 

Concatenate two strings. The orginal two strings are freed. When the concatenation fails, the origial strings are still freed. The actual concatenation is done by _concat_strings().

Parameters:
s1   First string.
s2   Second string
Returns:
Concatenated strings of s1 + s2.

Definition at line 393 of file pdl_main.c.

record_t* concat_strings_with_space ( record_t * s1,
record_t * s2 )
 

Concatenate two strings. The orginal two strings are freed. When the concatenation fails, the origial strings are still freed. The actual concatenation is done by _concat_strings().

Parameters:
s1   First string.
s2   Second string
Returns:
Concatenated strings of s1 + s2.

Definition at line 448 of file pdl_main.c.

int find_first_space ( const char * string )
 

Find the first occurrence of a space in a string.

Parameters:
string   String where the first space needs to be found.
Returns:
Position of the first occurrence of the space. If no space could be found, the position is set to the length of the string.

Definition at line 289 of file pdl_main.c.

Referenced by plugin_exists().

void free_path ( void )
 

Free the string allocated to hold the path

Definition at line 372 of file pdl_main.c.

Referenced by free_resources().

void free_resources ( void )
 

Free the resources.

Definition at line 612 of file pdl_main.c.

const plugin_t* get_plugins ( void )
 

Get a list of plugins as known by the configuration file.

Returns:
Plugin list (linked list).

Definition at line 134 of file pdl_main.c.

int pdl_init ( const char * name )
 

Init the pdl engine. The function takes one arguments, the name of a configuration file to use.

Parameters:
name   Name of the configuration file to use.
Returns:
0 in case the initialization is successful; -1 in case of not being successful.

Definition at line 74 of file pdl_main.c.

Referenced by startEvaluationManager().

const char* pdl_next_plugin ( plugin_status_t status )
 

Find the next plugin to evaluate based on the return status of the previous plugin evaluation. There are three statuses, two of which are rather obvious: either the previous evaluation has succeeded (EVALUATION_SUCCESS), or it has failed (EVALUATION_FAILURE). Based on these results, the next plugin should be the true_branch or false_branch respectively. There is one situation where there is no previous evaluation and that is at the very beginning. The very first call to this function should have (EVALUATION_START) as arguments. In this case the current state of the rule is returned as the next plugin to evaluate.

Parameters:
status   Status of previous evaluation.
Returns:
plugin name to be evaluation according to the configuration file.

Definition at line 498 of file pdl_main.c.

Referenced by runEvaluationManager().

const char* pdl_path ( void )
 

Get the path.

Returns:
Path.

Definition at line 306 of file pdl_main.c.

BOOL plugin_exists ( const char * string )
 

Check if a plugin as specified by the string argument exists.

Parameters:
string   Name of the plugin.
Returns:
TRUE if the plugin exists, FALSE otherwise.

Definition at line 187 of file pdl_main.c.

void reduce_policies ( void )
 

Reduce_policies to its elemantry form, i.e. each policy has a list of rules which need to be reduced.

Definition at line 217 of file pdl_policy.c.

Referenced by startEvaluationManager().

void set_path ( record_t * path )
 

Function is called when the parser has found the value of the reserved path word. This function acts as a wrapper for the _set_path() function.

Parameters:
path  

Definition at line 336 of file pdl_main.c.

void warning ( pdl_error_t error,
const char * s,
... )
 

Display a warning message.

Parameters:
error   Severity of the error.
s   The text string.
...   Additional values; much like printf(char *, ...);

Definition at line 648 of file pdl_main.c.

Referenced by _add_policy(), _add_rule(), _add_variable(), _concat_strings(), _set_path(), check_rule_for_recursion(), has_recursion(), pdl_init(), pdl_next_plugin(), reduce_to_var(), and yyerror().

int yyerror ( const char * s )
 

When yacc encounters an error during the parsing process of the configuration file, it calls yyerror(). The actual message formatting is done in waring();

Parameters:
s   error string.

Definition at line 319 of file pdl_main.c.

int yyparse_errors ( void )
 

Tell if there were errors/warning during parsing.

Returns:
0, if the are no errors/warnings, -1 otherwise.

Definition at line 122 of file pdl_main.c.


Generated at Thu Mar 4 17:39:39 2004 for edg-lcmaps by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001