summaryrefslogtreecommitdiffstats
path: root/expr.h
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-02-21 13:27:51 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2008-02-21 13:27:51 +0000
commit04622f7d2210cbb8036502afadf5bcdcb0394d28 (patch)
tree1ba5f0321aaf86f6050193dd8283d85a7f4acd39 /expr.h
parent1cc790fae01e4392d4cf96820f6402528f611c44 (diff)
downloadrsyslog-04622f7d2210cbb8036502afadf5bcdcb0394d28.tar.gz
rsyslog-04622f7d2210cbb8036502afadf5bcdcb0394d28.tar.xz
rsyslog-04622f7d2210cbb8036502afadf5bcdcb0394d28.zip
first steps in implementing object interfaces (stage work for later dynamic
class loading)
Diffstat (limited to 'expr.h')
-rw-r--r--expr.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/expr.h b/expr.h
index 66516d7d..78005a5a 100644
--- a/expr.h
+++ b/expr.h
@@ -39,11 +39,19 @@ typedef struct expr_s {
} expr_t;
+/* interfaces */
+typedef struct expr_if_s {
+ ifBEGIN; /* This MUST always be the first interface member */
+ INTERFACEObjDebugPrint(expr);
+ rsRetVal (*Construct)(expr_t **ppThis);
+ rsRetVal (*ConstructFinalize)(expr_t __attribute__((unused)) *pThis);
+ rsRetVal (*Destruct)(expr_t **ppThis);
+ rsRetVal (*Parse)(expr_t *pThis, ctok_t *ctok);
+} expr_if_t;
+#define exprCURR_IF_VERSION 1 /* increment whenever you change the interface structure! */
+
/* prototypes */
-rsRetVal exprConstruct(expr_t **ppThis);
-rsRetVal exprConstructFinalize(expr_t __attribute__((unused)) *pThis);
-rsRetVal exprDestruct(expr_t **ppThis);
-rsRetVal exprParse(expr_t *pThis, ctok_t *ctok);
PROTOTYPEObjClassInit(expr);
+PROTOTYPEObjQueryInterface(expr);
#endif /* #ifndef INCLUDED_EXPR_H */