irods
4.2.8
About: iRODS (the integrated Rule Oriented Data System) is a distributed data-management system for creating data grids, digital libraries, persistent archives, and real-time data systems. Fossies Dox: irods-4.2.8.tar.gz ("unofficial" and yet experimental doxygen-generated source code documentation) 
|
Go to the documentation of this file.
3 #ifndef _CONFIGURATION_HPP
4 #define _CONFIGURATION_HPP
12 #define RESC_CORE_RULE_SET 0x1
13 #define RESC_APP_RULE_SET 0x2
14 #define RESC_EXT_RULE_SET 0x4
15 #define RESC_SYS_FUNC_DESC_INDEX 0x10
16 #define RESC_CORE_FUNC_DESC_INDEX 0x20
17 #define RESC_APP_FUNC_DESC_INDEX 0x40
18 #define RESC_EXT_FUNC_DESC_INDEX 0x80
19 #define RESC_REGION_SYS 0x100
20 #define RESC_REGION_CORE 0x200
21 #define RESC_REGION_APP 0x400
22 #define RESC_REGION_EXT 0x800
23 #define RESC_CACHE 0x1000
72 #define isComponentInitialized(x) ((x)==INITIALIZED || (x)==COMPRESSED)
73 #define isComponentAllocated(x) ((x)==INITIALIZED)
74 #define clearRegion(u, l) \
75 if((resources & RESC_REGION_##u) && isComponentAllocated(ruleEngineConfig.l##Region##Status)) { \
76 region_free(ruleEngineConfig.l##Region); \
77 ruleEngineConfig.l##Region = NULL; \
78 ruleEngineConfig.l##Region##Status = UNINITIALIZED; \
81 #define delayClearRegion(u, l) \
82 if((resources & RESC_REGION_##u) && isComponentAllocated(ruleEngineConfig.l##Region##Status)) { \
83 listAppendNoRegion(®ionsToClear, ruleEngineConfig.l##Region); \
84 ruleEngineConfig.l##Region = NULL; \
85 ruleEngineConfig.l##Region##Status = UNINITIALIZED; \
88 #define createRegion(u, l) \
89 if(ruleEngineConfig.l##Region##Status != INITIALIZED) { \
90 ruleEngineConfig.l##Region = make_region(0, NULL); \
91 ruleEngineConfig.l##Region##Status = INITIALIZED; \
94 #define clearRuleSet(u, l) \
95 if((resources & RESC_##u##_RULE_SET) && isComponentInitialized(ruleEngineConfig.l##RuleSetStatus)) { \
96 ruleEngineConfig.l##RuleSet = NULL; \
97 ruleEngineConfig.l##RuleSetStatus = UNINITIALIZED; \
100 #define delayClearRuleSet(u, l) \
101 if((resources & RESC_##u##_RULE_SET) && isComponentInitialized(ruleEngineConfig.l##RuleSetStatus)) { \
102 ruleEngineConfig.l##RuleSet = NULL; \
103 ruleEngineConfig.l##RuleSetStatus = UNINITIALIZED; \
106 #define delayClearFuncDescIndex(u, l) \
107 if((resources & RESC_##u##_FUNC_DESC_INDEX) && isComponentInitialized(ruleEngineConfig.l##FuncDescIndexStatus)) { \
108 listAppendNoRegion(&envToClear, ruleEngineConfig.l##FuncDescIndex); \
109 ruleEngineConfig.l##FuncDescIndex = NULL; \
110 ruleEngineConfig.l##FuncDescIndexStatus = UNINITIALIZED; \
111 } else if((resources & RESC_##u##_FUNC_DESC_INDEX) && ruleEngineConfig.l##FuncDescIndexStatus == COMPRESSED) { \
112 ruleEngineConfig.l##FuncDescIndexStatus = UNINITIALIZED; \
115 #define createRuleSet(u, l) \
116 if(!isComponentInitialized(ruleEngineConfig.l##RuleSetStatus)) { \
117 ruleEngineConfig.l##RuleSet = (RuleSet *)region_alloc(ruleEngineConfig.l##Region, sizeof(RuleSet)); \
118 ruleEngineConfig.l##RuleSet->len = 0; \
119 ruleEngineConfig.l##RuleSetStatus = INITIALIZED; \
122 #define clearFuncDescIndex(u, l) \
123 if((resources & RESC_##u##_FUNC_DESC_INDEX) && isComponentInitialized(ruleEngineConfig.l##FuncDescIndexStatus)) { \
125 ruleEngineConfig.l##FuncDescIndex = NULL; \
126 ruleEngineConfig.l##FuncDescIndexStatus = UNINITIALIZED; \
129 #define createFuncDescIndex(u, l) \
130 if(!isComponentInitialized(ruleEngineConfig.l##FuncDescIndexStatus)) { \
131 ruleEngineConfig.l##FuncDescIndex = newEnv(NULL, NULL, NULL, ruleEngineConfig.l##Region); \
132 ruleEngineConfig.l##FuncDescIndex->current = newHashTable2(1000, ruleEngineConfig.l##Region); \
133 ruleEngineConfig.l##FuncDescIndexStatus = INITIALIZED; \
164 #define RE_LOGGING_ATTR "rulelogging"
RuleEngineStatus _ruleEngineStatus
RuleEngineStatus appFuncDescIndexStatus
void prependAppRule(RuleDesc *rd, Region *r)
int clearResources(int resources)
enum ruleEngineStatus RuleEngineStatus
int createCoreRuleIndex()
int readICatUserLogging(char *userName, int *logging, rsComm_t *rsComm)
int unlinkFuncDescIndex()
RuleEngineStatus coreRegionStatus
RuleEngineStatus sysRegionStatus
int checkPointExtRuleSet(Region *r)
void appendRuleIntoExtIndex(RuleDesc *rule, int i, Region *r)
RuleEngineStatus getRuleEngineStatus()
void popExtRuleSet(int checkPoint)
int readICatUserInfo(char *userName, char *attr, char userInfo[(1024+64)], rsComm_t *rsComm)
RuleEngineStatus ruleEngineStatus
int writeICatUserLogging(char *userName, int logging, rsComm_t *rsComm)
void appendAppRule(RuleDesc *rd, Region *r)
RuleEngineStatus appRegionStatus
#define RULE_SET_DEF_LENGTH
RuleEngineStatus extFuncDescIndexStatus
int generateFunctionDescriptionTables()
void removeRuleFromExtIndex(char *ruleName, int i)
RuleEngineStatus appRuleSetStatus
char ruleBase[10 *(1024+64)]
RuleEngineStatus coreFuncDescIndexStatus
void prependRuleIntoAppIndex(RuleDesc *rule, int i, Region *r)
int readRuleStructAndRuleSetFromFile(const char *ruleBaseName, const char *rulesFileName)
int writeICatUserInfo(char *userName, char *attr, char *userInfo, rsComm_t *rsComm)
RuleEngineStatus cacheStatus
RuleEngineStatus sysFuncDescIndexStatus
RuleEngineStatus coreRuleSetStatus
RuleEngineStatus extRuleSetStatus
RuleEngineStatus extRegionStatus
int loadRuleFromCacheOrFile(const char *, const char *irbSet)