From 04622f7d2210cbb8036502afadf5bcdcb0394d28 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Thu, 21 Feb 2008 13:27:51 +0000 Subject: first steps in implementing object interfaces (stage work for later dynamic class loading) --- var.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'var.h') diff --git a/var.h b/var.h index c02b93b2..f400b109 100644 --- a/var.h +++ b/var.h @@ -51,12 +51,20 @@ typedef struct var_s { } var_t; +/* interfaces */ +typedef struct var_if_s { + ifBEGIN; /* This MUST always be the first interface member */ + INTERFACEObjDebugPrint(var); + rsRetVal (*Construct)(var_t **ppThis); + rsRetVal (*ConstructFinalize)(var_t __attribute__((unused)) *pThis); + rsRetVal (*Destruct)(var_t **ppThis); + rsRetVal (*SetString)(var_t *pThis, cstr_t *pCStr); +} var_if_t; +#define varCURR_IF_VERSION 1 /* increment whenever you change the interface structure! */ + + /* prototypes */ -rsRetVal varConstruct(var_t **ppThis); -rsRetVal varConstructFinalize(var_t __attribute__((unused)) *pThis); -rsRetVal varDestruct(var_t **ppThis); -rsRetVal varSetString(var_t *pThis, cstr_t *pCStr); PROTOTYPEObjClassInit(var); -PROTOTYPEObjDebugPrint(var); +PROTOTYPEObjQueryInterface(var); #endif /* #ifndef INCLUDED_VAR_H */ -- cgit