diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-20 16:11:22 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-20 16:11:22 +0200 |
commit | 7351fcc0e2635bf29c556b189190507c8c5202c9 (patch) | |
tree | a76d4dcfcb78cea364e98218a68149d2eb6d0d1b /runtime/ruleset.c | |
parent | f5e7e35dca91df2d9ed00c7b542716c60bd7161a (diff) | |
download | rsyslog-7351fcc0e2635bf29c556b189190507c8c5202c9.tar.gz rsyslog-7351fcc0e2635bf29c556b189190507c8c5202c9.tar.xz rsyslog-7351fcc0e2635bf29c556b189190507c8c5202c9.zip |
Add skeleton for RainerScript optimizer
actual optimization is not yet done
Diffstat (limited to 'runtime/ruleset.c')
-rw-r--r-- | runtime/ruleset.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/runtime/ruleset.c b/runtime/ruleset.c index bcccb79d..ea8849e2 100644 --- a/runtime/ruleset.c +++ b/runtime/ruleset.c @@ -756,6 +756,40 @@ debugPrintAll(rsconf_t *conf) RETiRet; } +static inline void +rulesetOptimize(ruleset_t *pRuleset) +{ + if(Debug) { + dbgprintf("ruleset '%s' before optimization:\n", + pRuleset->pszName); + rulesetDebugPrint((ruleset_t*) pRuleset); + } + cnfstmtOptimize(pRuleset->root); + if(Debug) { + dbgprintf("ruleset '%s' after optimization:\n", + pRuleset->pszName); + rulesetDebugPrint((ruleset_t*) pRuleset); + } +} + +/* helper for rulsetOptimizeAll(), optimizes a single ruleset */ +DEFFUNC_llExecFunc(doRulesetOptimizeAll) +{ + rulesetOptimize((ruleset_t*) pData); + return RS_RET_OK; +} +/* optimize all rulesets + */ +rsRetVal +rulesetOptimizeAll(rsconf_t *conf) +{ + DEFiRet; + dbgprintf("begin ruleset optimization phase\n"); + llExecFunc(&(conf->rulesets.llRulesets), doRulesetOptimizeAll, NULL); + dbgprintf("ruleset optimization phase finished.\n"); + RETiRet; +} + /* Create a ruleset-specific "main" queue for this ruleset. If one is already * defined, an error message is emitted but nothing else is done. |