/[pdpsoft]/trunk/grid-mw-security/ees/include/common/pdl.h
ViewVC logotype

Contents of /trunk/grid-mw-security/ees/include/common/pdl.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 573 - (show annotations) (download) (as text)
Mon Jul 20 14:25:04 2009 UTC (12 years, 10 months ago) by aramv
File MIME type: text/x-csrc
File size: 1526 byte(s)
Made _pdl_path extern
1 #ifndef PDL_H
2 #define PDL_H
3 #include "nextgen.h"
4 #include <stdio.h>
5
6 #undef TRUE
7 #undef FALSE
8 #undef BOOL
9 #define TRUE 1
10 #define FALSE (!TRUE)
11
12 extern const char* _pdl_path;
13
14 extern int yylex(void);
15 extern int yyparse(void);
16 extern FILE* yyin;
17 FILE* file;
18 extern int yylex_destroy(void);
19
20 typedef struct record_s {
21 char* string; //!< Hold the symbol that lex has found.
22 int lineno; //!< Hold the line number the symbol has been found.
23 } record_t;
24
25 /*!
26 * \brief Structure keeps track of the state and the true/false
27 * braches.
28 *
29 */
30 typedef struct rule_s {
31 const char* state; //!< Name of the state.
32 unsigned int lineno; //!< Line number where rule appeared.
33 struct rule_s* true_branch; //!< Name of the true_branch, or 0 if none.
34 struct rule_s* false_branch; //!< Name of the false_branch, or 0 if none.
35 } rule_t;
36
37 typedef struct policy_s {
38 lcmaps_plugindl_t* current;
39 lcmaps_plugindl_t* next_success;
40 lcmaps_plugindl_t* next_failure;
41 struct rule_s* head_rule;
42 } policy_t;
43
44 NG_RC pdl_init(const char*);
45 NG_RC pdl_term();
46 record_t* concat_strings(record_t*, record_t*);
47 record_t* concat_strings_with_space(record_t*, record_t*);
48
49 int yyerror(const char*);
50 void set_path(record_t*);
51 void add_policy(record_t*, rule_t*);
52 rule_t* add_rule(record_t*, record_t*, record_t*);
53 const char* pdl_path(void);
54 void remove_policy(record_t* policy);
55 void add_variable(record_t* name, record_t* value);
56 NG_RC allow_rules(int);
57 NG_RC allowed_policy_rule(const char* label);
58
59 #endif

grid.support@nikhef.nl
ViewVC Help
Powered by ViewVC 1.1.28