Macros For Typesafe Inheritance


Macros To Be Used In Inheriting Classes

#define GWEN_INHERIT(bt, t)   uint32_t t##__INHERIT_ID=0;
#define GWEN_INHERIT_GETDATA(bt, t, element)   ((t*)GWEN_Inherit_FindData(bt##__INHERIT_GETLIST(element),t##__INHERIT_ID,0))
#define GWEN_INHERIT_ISOFTYPE(bt, t, element)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
#define GWEN_INHERIT_UNLINK(bt, t, element)

Macros To Be Used In Inherited Classes - Header Files

#define GWEN_INHERIT_ELEMENT(t)   GWEN_INHERITDATA_LIST *INHERIT__list;
#define GWEN_INHERIT_FUNCTION_DEFS(t)   GWEN_INHERIT_FUNCTION_LIB_DEFS(t, GWEN_DUMMY_EMPTY_ARG)
#define GWEN_INHERIT_FUNCTION_LIB_DEFS(t, decl)

Macros To Be Used In Inherited Classes - C Files

#define GWEN_INHERIT_FINI(t, element)
#define GWEN_INHERIT_FUNCTIONS(t)
#define GWEN_INHERIT_INIT(t, element)

Typedefs

typedef void GWENHYWFAR_CB(* GWEN_INHERIT_FREEDATAFN )(void *baseData, void *data)

Functions

GWENHYWFAR_API void * GWEN_Inherit_FindData (GWEN_INHERITDATA_LIST *l, uint32_t id, int wantCreate)
GWENHYWFAR_API GWEN_INHERITDATAGWEN_Inherit_FindEntry (GWEN_INHERITDATA_LIST *l, uint32_t id, int wantCreate)
GWENHYWFAR_API uint32_t GWEN_Inherit_MakeId (const char *typeName)
GWENHYWFAR_API void GWEN_InheritData_clear (GWEN_INHERITDATA *d)
GWENHYWFAR_API void GWEN_InheritData_free (GWEN_INHERITDATA *d)
GWENHYWFAR_API void GWEN_InheritData_freeAllData (GWEN_INHERITDATA *d)
GWENHYWFAR_API void GWEN_InheritData_freeData (GWEN_INHERITDATA *d)
GWENHYWFAR_API void * GWEN_InheritData_GetData (const GWEN_INHERITDATA *d)
GWENHYWFAR_API
GWEN_INHERIT_FREEDATAFN 
GWEN_InheritData_GetFreeDataFn (const GWEN_INHERITDATA *d)
GWENHYWFAR_API uint32_t GWEN_InheritData_GetId (const GWEN_INHERITDATA *d)
GWENHYWFAR_API const char * GWEN_InheritData_GetTypeName (const GWEN_INHERITDATA *d)
GWENHYWFAR_API GWEN_INHERITDATAGWEN_InheritData_new (const char *t, uint32_t id, void *data, void *baseData, GWEN_INHERIT_FREEDATAFN fn)

Define Documentation

#define GWEN_INHERIT ( bt,
 )     uint32_t t##__INHERIT_ID=0;

Use this in the C file of inheriting classes. It initializes a global variable with a hash of the inheriting type name. This is used to speed up inheritance functions. This variable will be filled with a value upon the first invocation of the macro GWEN_INHERIT_SETDATA.

Definition at line 264 of file inherit.h.

#define GWEN_INHERIT_ELEMENT (  )     GWEN_INHERITDATA_LIST *INHERIT__list;

Use this macro inside the struct which you want to make inheritable. This macro defines some new elements for the struct for administration of inheritance.

Definition at line 112 of file inherit.h.

#define GWEN_INHERIT_FINI ( t,
element   ) 

Value:

{\
    GWEN_INHERITDATA *inherit__data;\
    \
    assert(element);\
    assert(element->INHERIT__list);\
    \
    while( (inherit__data=GWEN_InheritData_List_First(element->INHERIT__list)) ) {\
      GWEN_InheritData_freeData(inherit__data); \
      GWEN_InheritData_List_Del(inherit__data); \
      GWEN_InheritData_free(inherit__data); \
    } \
    GWEN_InheritData_List_free(element->INHERIT__list);\
  }
Use this macro in your C file in destructor functions for the base class. This macro deinitializes the elements defined by the macro GWEN_INHERIT_ELEMENT. This should be the first instruction in that function, because it also gives inheriting classes the opportunity to free their own data associated with the given element. It causes the least problems if inheriting classes free their data before the base class does.

Definition at line 238 of file inherit.h.

Referenced by GWEN_BufferedIO_free(), GWEN_ConfigMgr_free(), GWEN_Crypt_Key_free(), GWEN_Crypt_Token_Context_free(), GWEN_Crypt_Token_free(), GWEN_DBIO_free(), GWEN_Filter_free(), GWEN_Gui_free(), GWEN_HttpSession_free(), GWEN_Io_Layer_free(), GWEN_IpcRequest_free(), GWEN_List_free(), GWEN_MsgEngine_free(), GWEN_Plugin_free(), GWEN_PluginManager_free(), GWEN_XmlCtx_free(), and GWEN_XsdNode_free().

#define GWEN_INHERIT_FUNCTION_DEFS (  )     GWEN_INHERIT_FUNCTION_LIB_DEFS(t, GWEN_DUMMY_EMPTY_ARG)

Use this macro in the header file of the base class. This defines the prototypes of some inheritance functions. This macro should be used in applications, not in libraries. In libraries please use the macro GWEN_INHERIT_FUNCTION_LIB_DEFS.

You should not care about these functions here, since you should not use them directly. Please use GWEN_INHERIT_GETDATA and GWEN_INHERIT_SETDATA instead.

Definition at line 147 of file inherit.h.

#define GWEN_INHERIT_FUNCTION_LIB_DEFS ( t,
decl   ) 

Value:

decl void t##__INHERIT_SETDATA(t *element, \
                                 const char *typeName,\
                                 uint32_t id,\
                                 void *data,\
                                 GWEN_INHERIT_FREEDATAFN f);\
  decl int t##__INHERIT_ISOFTYPE(const t *element, uint32_t id);\
  decl GWEN_INHERITDATA_LIST *t##__INHERIT_GETLIST(const t *element);\
  decl void t##__INHERIT_UNLINK(t *element, \
                                const char *typeName,\
                                uint32_t id);
Use this macro in the header file of the base class. This defines the prototypes of some inheritance functions. This macro should be used in libraries with the __declspec(dllexport) as the decl argument.

You should not care about these functions here, since you should not use them directly. Please use GWEN_INHERIT_GETDATA and GWEN_INHERIT_SETDATA instead.

Definition at line 125 of file inherit.h.

#define GWEN_INHERIT_FUNCTIONS (  ) 

Use this macro in the C file of the base class. It defines the implementations of the inheritance functions. This macro MUST be placed after the include statement which includes the classes header file.

Definition at line 163 of file inherit.h.

#define GWEN_INHERIT_GETDATA ( bt,
t,
element   )     ((t*)GWEN_Inherit_FindData(bt##__INHERIT_GETLIST(element),t##__INHERIT_ID,0))

This macros returns the private data of an inheriting class associated with an element of its base class.

Definition at line 271 of file inherit.h.

Referenced by GWEN_BufferedIO_Buffer__Close(), GWEN_BufferedIO_Buffer__Read(), GWEN_BufferedIO_Buffer__Write(), GWEN_BufferedIO_File__Close(), GWEN_BufferedIO_File__Read(), GWEN_BufferedIO_File__Write(), GWEN_BufferedIO_Socket__Close(), GWEN_BufferedIO_Socket__Read(), GWEN_BufferedIO_Socket__Write(), GWEN_ConfigMgr_Plugin_Factory(), GWEN_ConfigMgr_Plugin_SetFactoryFn(), GWEN_Crypt_KeyDes3K_SetIV(), GWEN_Crypt_KeyRsa__GetNamedElement(), GWEN_Crypt_KeyRsa_AddFlags(), GWEN_Crypt_KeyRsa_Decipher(), GWEN_Crypt_KeyRsa_dup(), GWEN_Crypt_KeyRsa_Encipher(), GWEN_Crypt_KeyRsa_GetFlags(), GWEN_Crypt_KeyRsa_SetFlags(), GWEN_Crypt_KeyRsa_Sign(), GWEN_Crypt_KeyRsa_SubFlags(), GWEN_Crypt_KeyRsa_toDb(), GWEN_Crypt_KeyRsa_Verify(), GWEN_Crypt_KeySym_Decipher(), GWEN_Crypt_KeySym_dup(), GWEN_Crypt_KeySym_Encipher(), GWEN_Crypt_KeySym_GetKeyDataLen(), GWEN_Crypt_KeySym_GetKeyDataPtr(), GWEN_Crypt_KeySym_SetKeyData(), GWEN_Crypt_KeySym_toDb(), GWEN_Crypt_Token_Plugin_CheckToken(), GWEN_Crypt_Token_Plugin_CreateToken(), GWEN_Crypt_Token_Plugin_GetDeviceType(), GWEN_Crypt_Token_Plugin_SetCheckTokenFn(), GWEN_Crypt_Token_Plugin_SetCreateTokenFn(), GWEN_Crypt_TokenFile__CloseFile(), GWEN_Crypt_TokenFile__Decipher(), GWEN_Crypt_TokenFile__Encipher(), GWEN_Crypt_TokenFile__GenerateKey(), GWEN_Crypt_TokenFile__GetContext(), GWEN_Crypt_TokenFile__GetContextIdList(), GWEN_Crypt_TokenFile__GetKey(), GWEN_Crypt_TokenFile__GetKeyIdList(), GWEN_Crypt_TokenFile__GetKeyInfo(), GWEN_Crypt_TokenFile__OpenFile(), GWEN_Crypt_TokenFile__Read(), GWEN_Crypt_TokenFile__ReadFile(), GWEN_Crypt_TokenFile__ReloadIfNeeded(), GWEN_Crypt_TokenFile__SetContext(), GWEN_Crypt_TokenFile__SetKeyInfo(), GWEN_Crypt_TokenFile__Sign(), GWEN_Crypt_TokenFile__Verify(), GWEN_Crypt_TokenFile__Write(), GWEN_Crypt_TokenFile__WriteFile(), GWEN_Crypt_TokenFile_AddContext(), GWEN_Crypt_TokenFile_Close(), GWEN_Crypt_TokenFile_Create(), GWEN_Crypt_TokenFile_GetContext(), GWEN_Crypt_TokenFile_Open(), GWEN_Crypt_TokenFile_SetReadFn(), GWEN_Crypt_TokenFile_SetWriteFn(), GWEN_CTF_Context_GetLocalAuthKey(), GWEN_CTF_Context_GetLocalAuthKeyInfo(), GWEN_CTF_Context_GetLocalCryptKey(), GWEN_CTF_Context_GetLocalCryptKeyInfo(), GWEN_CTF_Context_GetLocalSignKey(), GWEN_CTF_Context_GetLocalSignKeyInfo(), GWEN_CTF_Context_GetRemoteAuthKey(), GWEN_CTF_Context_GetRemoteAuthKeyInfo(), GWEN_CTF_Context_GetRemoteCryptKey(), GWEN_CTF_Context_GetRemoteCryptKeyInfo(), GWEN_CTF_Context_GetRemoteSignKey(), GWEN_CTF_Context_GetRemoteSignKeyInfo(), GWEN_CTF_Context_SetLocalAuthKey(), GWEN_CTF_Context_SetLocalAuthKeyInfo(), GWEN_CTF_Context_SetLocalCryptKey(), GWEN_CTF_Context_SetLocalCryptKeyInfo(), GWEN_CTF_Context_SetLocalSignKey(), GWEN_CTF_Context_SetLocalSignKeyInfo(), GWEN_CTF_Context_SetRemoteAuthKey(), GWEN_CTF_Context_SetRemoteAuthKeyInfo(), GWEN_CTF_Context_SetRemoteCryptKey(), GWEN_CTF_Context_SetRemoteCryptKeyInfo(), GWEN_CTF_Context_SetRemoteSignKey(), GWEN_CTF_Context_SetRemoteSignKeyInfo(), GWEN_DBIO_Plugin_Factory(), GWEN_DBIO_Plugin_SetFactoryFn(), GWEN_Gui_CGui__ConvertFromUtf8(), GWEN_Gui_CGui__findProgress(), GWEN_Gui_CGui_CheckCert(), GWEN_Gui_CGui_GetCertDb(), GWEN_Gui_CGui_GetCharSet(), GWEN_Gui_CGui_GetIsNonInteractive(), GWEN_Gui_CGui_GetPassword(), GWEN_Gui_CGui_GetPasswordDb(), GWEN_Gui_CGui_HideBox(), GWEN_Gui_CGui_MessageBox(), GWEN_Gui_CGui_ProgressAdvance(), GWEN_Gui_CGui_ProgressEnd(), GWEN_Gui_CGui_ProgressLog(), GWEN_Gui_CGui_ProgressStart(), GWEN_Gui_CGui_SetCertDb(), GWEN_Gui_CGui_SetCharSet(), GWEN_Gui_CGui_SetIsNonInteractive(), GWEN_Gui_CGui_SetPasswordDb(), GWEN_Gui_CGui_SetPasswordStatus(), GWEN_Gui_CGui_ShowBox(), GWEN_Io_LayerBuffered_AbortInRequests(), GWEN_Io_LayerBuffered_AbortOutRequests(), GWEN_Io_LayerBuffered_AddRequest(), GWEN_Io_LayerBuffered_DelRequest(), GWEN_Io_LayerBuffered_GetReadLineCount(), GWEN_Io_LayerBuffered_GetReadLinePos(), GWEN_Io_LayerBuffered_HasWaitingRequests(), GWEN_Io_LayerBuffered_ResetLinePosAndCounter(), GWEN_Io_LayerBuffered_TryFlush(), GWEN_Io_LayerBuffered_WorkOnReadRequest(), GWEN_Io_LayerBuffered_WorkOnRequests(), GWEN_Io_LayerBuffered_WorkOnWriteRequest(), GWEN_Io_LayerCodec_AbortInRequests(), GWEN_Io_LayerCodec_AbortOutRequests(), GWEN_Io_LayerCodec_AbortRequests(), GWEN_Io_LayerCodec_AddRequest(), GWEN_Io_LayerCodec_CheckWriteOut(), GWEN_Io_LayerCodec_Decode(), GWEN_Io_LayerCodec_DelRequest(), GWEN_Io_LayerCodec_Encode(), GWEN_Io_LayerCodec_EnsureReadOk(), GWEN_Io_LayerCodec_GetCurrentGuiId(), GWEN_Io_LayerCodec_GetReadBuffer(), GWEN_Io_LayerCodec_GetWriteBuffer(), GWEN_Io_LayerCodec_HasWaitingRequests(), GWEN_Io_LayerCodec_Reset(), GWEN_Io_LayerCodec_SetCurrentGuiId(), GWEN_Io_LayerCodec_SetDecodeFn(), GWEN_Io_LayerCodec_SetEncodeFn(), GWEN_Io_LayerCodec_WorkOnOutRequests(), GWEN_Io_LayerCodec_WorkOnReadRequest(), GWEN_Io_LayerCodec_WorkOnRequests(), GWEN_Io_LayerCodec_WorkOnWriteRequest(), GWEN_Io_LayerFile_AddRequest(), GWEN_Io_LayerFile_DelRequest(), GWEN_Io_LayerFile_GetReadFileDescriptor(), GWEN_Io_LayerFile_GetWriteFileDescriptor(), GWEN_Io_LayerFile_HasWaitingRequests(), GWEN_Io_LayerFile_WorkOnRequests(), GWEN_Io_LayerHttp_AbortInRequests(), GWEN_Io_LayerHttp_AbortOutRequests(), GWEN_Io_LayerHttp_AddRequest(), GWEN_Io_LayerHttp_DelRequest(), GWEN_Io_LayerHttp_GetDbCommandIn(), GWEN_Io_LayerHttp_GetDbCommandOut(), GWEN_Io_LayerHttp_GetDbHeaderIn(), GWEN_Io_LayerHttp_GetDbHeaderOut(), GWEN_Io_LayerHttp_GetDbStatusIn(), GWEN_Io_LayerHttp_GetDbStatusOut(), GWEN_Io_LayerHttp_HasWaitingRequests(), GWEN_Io_LayerHttp_ParseCommand(), GWEN_Io_LayerHttp_ParseHeader(), GWEN_Io_LayerHttp_ParseStatus(), GWEN_Io_LayerHttp_WorkOnReadRequest(), GWEN_Io_LayerHttp_WorkOnReadRequest1(), GWEN_Io_LayerHttp_WorkOnReadRequest2(), GWEN_Io_LayerHttp_WorkOnRequests(), GWEN_Io_LayerHttp_WorkOnWriteRequest(), GWEN_Io_LayerHttp_WorkOnWriteRequest1(), GWEN_Io_LayerHttp_WorkOnWriteRequest2(), GWEN_Io_LayerHttp_WriteCommand(), GWEN_Io_LayerHttp_WriteHeader(), GWEN_Io_LayerHttp_WriteStatus(), GWEN_Io_LayerMemory_AddRequest(), GWEN_Io_LayerMemory_GetBuffer(), GWEN_Io_LayerMemory_WorkOnRequests(), GWEN_Io_LayerPackets_Abort(), GWEN_Io_LayerPackets_AddRequest(), GWEN_Io_LayerPackets_DelRequest(), GWEN_Io_LayerPackets_GetMaxReadQueue(), GWEN_Io_LayerPackets_GetMaxWriteQueue(), GWEN_Io_LayerPackets_GetReadRequest(), GWEN_Io_LayerPackets_GetReadSize(), GWEN_Io_LayerPackets_HasReadRequests(), GWEN_Io_LayerPackets_HasWaitingRequests(), GWEN_Io_LayerPackets_SetMaxReadQueue(), GWEN_Io_LayerPackets_SetMaxWriteQueue(), GWEN_Io_LayerPackets_SetReadSize(), GWEN_Io_LayerPackets_WorkOnReadRequests(), GWEN_Io_LayerPackets_WorkOnRequests(), GWEN_Io_LayerPackets_WorkOnWriteRequests(), GWEN_Io_LayerSocket_AbortRequests(), GWEN_Io_LayerSocket_AddRequest(), GWEN_Io_LayerSocket_AddWaitingSockets(), GWEN_Io_LayerSocket_CheckForIncoming(), GWEN_Io_LayerSocket_DelRequest(), GWEN_Io_LayerSocket_GetLocalAddr(), GWEN_Io_LayerSocket_GetPeerAddr(), GWEN_Io_LayerSocket_GetSocket(), GWEN_Io_LayerSocket_HasWaitingRequests(), GWEN_Io_LayerSocket_Listen(), GWEN_Io_LayerSocket_SetLocalAddr(), GWEN_Io_LayerSocket_SetPeerAddr(), GWEN_Io_LayerSocket_WorkOnRequests(), GWEN_Io_LayerTls_AddRequest(), GWEN_Io_LayerTls_Decode(), GWEN_Io_LayerTls_DelRequest(), GWEN_Io_LayerTls_Encode(), GWEN_Io_LayerTls_GetDhParamFile(), GWEN_Io_LayerTls_GetLocalCertFile(), GWEN_Io_LayerTls_GetLocalKeyFile(), GWEN_Io_LayerTls_GetLocalTrustFile(), GWEN_Io_LayerTls_GetPeerCert(), GWEN_Io_LayerTls_GetPeerCertDescr(), GWEN_Io_LayerTls_GetRemoteHostName(), GWEN_Io_LayerTls_HasWaitingRequests(), GWEN_Io_LayerTls_Prepare(), GWEN_Io_LayerTls_Pull(), GWEN_Io_LayerTls_Push(), GWEN_Io_LayerTls_SetDhParamFile(), GWEN_Io_LayerTls_SetLocalCertFile(), GWEN_Io_LayerTls_SetLocalKeyFile(), GWEN_Io_LayerTls_SetLocalTrustFile(), GWEN_Io_LayerTls_SetRemoteHostName(), GWEN_Io_LayerTls_WorkOnRequests(), GWEN_MDigest_Gc_Begin(), GWEN_MDigest_Gc_End(), GWEN_MDigest_Gc_Update(), GWEN_MDigest_Md5_new(), GWEN_MDigest_Rmd160_new(), and GWEN_MDigest_Sha1_new().

#define GWEN_INHERIT_INIT ( t,
element   ) 

Value:

{\
    assert(element);\
    element->INHERIT__list=GWEN_InheritData_List_new();\
  }
Use this macro in your C file in constructor functions for the base class. This macro initializes the elements defined by the macro GWEN_INHERIT_ELEMENT.

Definition at line 223 of file inherit.h.

Referenced by GWEN_BufferedIO_new(), GWEN_ConfigMgr_new(), GWEN_Crypt_Key_new(), GWEN_Crypt_Token_Context_new(), GWEN_Crypt_Token_new(), GWEN_DBIO_new(), GWEN_Filter_new(), GWEN_Gui_new(), GWEN_HttpSession_new(), GWEN_Io_Layer_new(), GWEN_IpcRequest_new(), GWEN_List_new(), GWEN_MDigest_new(), GWEN_MsgEngine_new(), GWEN_Plugin_new(), GWEN_PluginManager_new(), GWEN_XmlCtx_new(), and GWEN_XsdNode_new().

#define GWEN_INHERIT_ISOFTYPE ( bt,
t,
element   ) 

Value:

((bt##__INHERIT_ISOFTYPE(element,\
                           ((t##__INHERIT_ID==0)?\
                            ((t##__INHERIT_ID=GWEN_Inherit_MakeId(__STRING(t)))):\
                            t##__INHERIT_ID)))?1:0)
This macro checks whether the given element is of the given type.
Returns:
!=0 if the pointer is of the expected type, 0 otherwise
Parameters:
bt base type
t derived type
element pointer which is to be checked

Definition at line 305 of file inherit.h.

Referenced by GWEN_CTF_Context_IsOfThisType().

#define GWEN_INHERIT_SETDATA ( bt,
t,
element,
data,
fn   ) 

Value:

{\
    if (!t##__INHERIT_ID)\
      t##__INHERIT_ID=GWEN_Inherit_MakeId(__STRING(t));\
    bt##__INHERIT_SETDATA(element, __STRING(t), t##__INHERIT_ID, data, fn);\
  }
This macro sets the private data of an inheriting class associated with an element of its base class. The last argument is a pointer to a function which frees the associated data. That function will be called when the element of the base class given is freed or new data is to be associated with the element. The prototype of that function is this:
 typedef void (*function)(void *baseData, void *data);
Please note that the argument to that function is a pointer to the base type element. If you want to get the private data associated with the base type element (and you probably do) you must call GWEN_INHERIT_GETDATA. Every time the macro GWEN_INHERIT_SETDATA is used the previously associated data will be freed by calling the function whose prototype you've just learned.

Definition at line 292 of file inherit.h.

Referenced by GWEN_BufferedIO_Buffer2_new(), GWEN_BufferedIO_File_new(), GWEN_BufferedIO_Socket_new(), GWEN_ConfigMgr_Plugin_new(), GWEN_Crypt_KeyRsa_fromDb(), GWEN_Crypt_KeyRsa_GeneratePair(), GWEN_Crypt_KeySym_fromData(), GWEN_Crypt_KeySym_fromDb(), GWEN_Crypt_KeySym_Generate(), GWEN_Crypt_Token_Plugin_new(), GWEN_Crypt_TokenFile_new(), GWEN_CTF_Context_new(), GWEN_DBIO_Plugin_new(), GWEN_Gui_CGui_new(), GWEN_Io_LayerBuffered_new(), GWEN_Io_LayerCodec_new(), GWEN_Io_LayerFile_new(), GWEN_Io_LayerHttp_new(), GWEN_Io_LayerMemory_new(), GWEN_Io_LayerPackets_new(), GWEN_Io_LayerSocket_new(), GWEN_Io_LayerTls_new(), and GWEN_MDigest_Gc_new().

#define GWEN_INHERIT_UNLINK ( bt,
t,
element   ) 

Value:

{\
    if (!t##__INHERIT_ID)\
      t##__INHERIT_ID=GWEN_Inherit_MakeId(__STRING(t));\
    bt##__INHERIT_UNLINK(element, __STRING(t), t##__INHERIT_ID);\
  }
This macro gives up the inheritance for the given type. After this macro has been executed there is no link left between the type and its base type.
Parameters:
bt base type
t derived type

Definition at line 318 of file inherit.h.


Typedef Documentation

typedef void GWENHYWFAR_CB(* GWEN_INHERIT_FREEDATAFN)(void *baseData, void *data)

Definition at line 53 of file inherit.h.


Function Documentation

GWENHYWFAR_API void* GWEN_Inherit_FindData ( GWEN_INHERITDATA_LIST l,
uint32_t  id,
int  wantCreate 
)

GWENHYWFAR_API GWEN_INHERITDATA* GWEN_Inherit_FindEntry ( GWEN_INHERITDATA_LIST l,
uint32_t  id,
int  wantCreate 
)

GWENHYWFAR_API uint32_t GWEN_Inherit_MakeId ( const char *  typeName  ) 

Definition at line 136 of file inherit.c.

References DBG_VERBOUS, and GWEN_LOGDOMAIN.

Referenced by GWEN_SignalObject_MkTypeId().

GWENHYWFAR_API void GWEN_InheritData_clear ( GWEN_INHERITDATA d  ) 

Definition at line 97 of file inherit.c.

GWENHYWFAR_API void GWEN_InheritData_free ( GWEN_INHERITDATA d  ) 

Definition at line 71 of file inherit.c.

References GWEN_FREE_OBJECT, and GWEN_LIST_FINI.

GWENHYWFAR_API void GWEN_InheritData_freeAllData ( GWEN_INHERITDATA d  ) 

GWENHYWFAR_API void GWEN_InheritData_freeData ( GWEN_INHERITDATA d  ) 

Definition at line 83 of file inherit.c.

References DBG_VERBOUS, GWEN_LOGDOMAIN, and NULL.

GWENHYWFAR_API void* GWEN_InheritData_GetData ( const GWEN_INHERITDATA d  ) 

Definition at line 119 of file inherit.c.

GWENHYWFAR_API GWEN_INHERIT_FREEDATAFN GWEN_InheritData_GetFreeDataFn ( const GWEN_INHERITDATA d  ) 

Definition at line 127 of file inherit.c.

GWENHYWFAR_API uint32_t GWEN_InheritData_GetId ( const GWEN_INHERITDATA d  ) 

Definition at line 112 of file inherit.c.

GWENHYWFAR_API const char* GWEN_InheritData_GetTypeName ( const GWEN_INHERITDATA d  ) 

Definition at line 105 of file inherit.c.

GWENHYWFAR_API GWEN_INHERITDATA* GWEN_InheritData_new ( const char *  t,
uint32_t  id,
void *  data,
void *  baseData,
GWEN_INHERIT_FREEDATAFN  fn 
)

Definition at line 48 of file inherit.c.

References DBG_VERBOUS, GWEN_LIST_INIT, GWEN_LOGDOMAIN, and GWEN_NEW_OBJECT.


Generated on Wed Sep 3 15:22:02 2008 for gwenhywfar by  doxygen 1.5.6