diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2008-02-21 13:27:51 +0000 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2008-02-21 13:27:51 +0000 |
commit | 04622f7d2210cbb8036502afadf5bcdcb0394d28 (patch) | |
tree | 1ba5f0321aaf86f6050193dd8283d85a7f4acd39 /vmprg.h | |
parent | 1cc790fae01e4392d4cf96820f6402528f611c44 (diff) | |
download | rsyslog-04622f7d2210cbb8036502afadf5bcdcb0394d28.tar.gz rsyslog-04622f7d2210cbb8036502afadf5bcdcb0394d28.tar.bz2 rsyslog-04622f7d2210cbb8036502afadf5bcdcb0394d28.zip |
first steps in implementing object interfaces (stage work for later dynamic
class loading)
Diffstat (limited to 'vmprg.h')
-rw-r--r-- | vmprg.h | 21 |
1 files changed, 15 insertions, 6 deletions
@@ -47,13 +47,22 @@ typedef struct vmprg_s { } vmprg_t; +/* interfaces */ +typedef struct vmprg_if_s { + ifBEGIN; /* This MUST always be the first interface member */ + INTERFACEObjDebugPrint(vmprg); + rsRetVal (*Construct)(vmprg_t **ppThis); + rsRetVal (*ConstructFinalize)(vmprg_t __attribute__((unused)) *pThis); + rsRetVal (*Destruct)(vmprg_t **ppThis); + rsRetVal (*AddOperation)(vmprg_t *pThis, vmop_t *pOp); + rsRetVal (*AddVarOperation)(vmprg_t *pThis, opcode_t opcode, var_t *pVar); +} vmprg_if_t; + +#define vmprgCURR_IF_VERSION 1 /* increment whenever you change the interface structure! */ + + /* prototypes */ -rsRetVal vmprgConstruct(vmprg_t **ppThis); -rsRetVal vmprgConstructFinalize(vmprg_t __attribute__((unused)) *pThis); -rsRetVal vmprgDestruct(vmprg_t **ppThis); -rsRetVal vmprgAddOperation(vmprg_t *pThis, vmop_t *pOp); -rsRetVal vmprgAddVarOperation(vmprg_t *pThis, opcode_t opcode, var_t *pVar); PROTOTYPEObjClassInit(vmprg); -PROTOTYPEObjDebugPrint(vmprg); +PROTOTYPEObjQueryInterface(vmprg); #endif /* #ifndef INCLUDED_VMPRG_H */ |