object/i/iobject.h File Reference

iobject.h File Reference
#include <kaydara.h>

Classes

class  IObject
 

Macros

#define IObjectID   0
 Basic includes. More...
 
#define IObjectDerived   public IObject
 
#define FncDefine(PFNC, ISPURE)   virtual PFNC##ISPURE
 MACRO Base definitions. More...
 
#define K_IMPLEMENTATION
 
#define IObjectImplement(ClassName, IObjectOwner)
 
#define IObjectEnd   return NULL; }
 
#define ILOCAL   1
 
#define IQUERY(Object, Interface)   ((H##Interface)((Object)->IQuery(Interface##ID,0)))
 
#define IQUERYLOCAL(Object, Interface)   ( (H##Interface)((Object)->IQuery(Interface##ID,ILOCAL)))
 
#define IQ(Object, Interface)   IQUERY(Object,Interface)
 
#define IQT(Object, Interface)   ((Object) ? IQUERY(Object,Interface):NULL)
 
#define IQL(Object, Interface)   IQUERYLOCAL(Object,Interface)
 
#define IObject_Declare(IsPure)
 
#define IQuery_Declare(IsPure)
 
#define K_INTERFACE_SPECIAL
 
#define NO_DLL
 
#define K_INTERFACE(Name, Id)
 

Typedefs

typedef IObjectHIObject
 
typedef unsigned long kInterfaceID
 other types More...
 
typedef HIObject(* kObjectCreatorFnc) (HIObject pOwner, const char *pName, void *pData)
 

Macro Definition Documentation

#define FncDefine (   PFNC,
  ISPURE 
)    virtual PFNC##ISPURE

MACRO Base definitions.

Definition at line 52 of file iobject.h.

#define ILOCAL   1

Definition at line 61 of file iobject.h.

#define IObject_Declare (   IsPure)
Value:
public:\
virtual HIObject IQuery(kInterfaceID pInterfaceID, int IsLocal=0)IsPure;\
virtual void Destroy(int IsLocal=0)IsPure;\
unsigned long kInterfaceID
other types
Definition: iobject.h:49

Definition at line 75 of file iobject.h.

#define IObjectDerived   public IObject

Definition at line 43 of file iobject.h.

#define IObjectEnd   return NULL; }

Definition at line 60 of file iobject.h.

#define IObjectID   0

Basic includes.

Definition at line 42 of file iobject.h.

#define IObjectImplement (   ClassName,
  IObjectOwner 
)
Value:
HIObject ClassName##::IQuery(kInterfaceID pInterfaceID,int IsLocal) {\
if ((IObjectOwner!=NULL) && (!IsLocal)) {\
return IObjectOwner->IQuery(pInterfaceID);\
}\
switch (pInterfaceID)
#define NULL
Definition: kaydara.h:169
unsigned long kInterfaceID
other types
Definition: iobject.h:49
virtual HIObject IQuery(kInterfaceID pInterfaceID, int IsLocal=0)=0

Definition at line 54 of file iobject.h.

#define IQ (   Object,
  Interface 
)    IQUERY(Object,Interface)

Definition at line 66 of file iobject.h.

#define IQL (   Object,
  Interface 
)    IQUERYLOCAL(Object,Interface)

Definition at line 68 of file iobject.h.

#define IQT (   Object,
  Interface 
)    ((Object) ? IQUERY(Object,Interface):NULL)

Definition at line 67 of file iobject.h.

#define IQUERY (   Object,
  Interface 
)    ((H##Interface)((Object)->IQuery(Interface##ID,0)))

Definition at line 63 of file iobject.h.

#define IQuery_Declare (   IsPure)
Value:
public:\
virtual HIObject IQuery (kInterfaceID pInterfaceID, int IsLocal=0)IsPure;\
unsigned long kInterfaceID
other types
Definition: iobject.h:49

Definition at line 80 of file iobject.h.

#define IQUERYLOCAL (   Object,
  Interface 
)    ( (H##Interface)((Object)->IQuery(Interface##ID,ILOCAL)))

Definition at line 64 of file iobject.h.

#define K_IMPLEMENTATION

Definition at line 53 of file iobject.h.

#define K_INTERFACE (   Name,
  Id 
)
Value:
const int Name##ID = Id; \
Name##_Declare(abstract); \
}
K_FORWARD(KStringList)
#define IObjectDerived
Definition: iobject.h:43
#define Name(a0, a1, a2, a3, a4)
Definition: Python-ast.h:502
#define K_INTERFACE_SPECIAL
Definition: iobject.h:94

Definition at line 98 of file iobject.h.

#define K_INTERFACE_SPECIAL

Definition at line 94 of file iobject.h.

#define NO_DLL

Definition at line 95 of file iobject.h.

Typedef Documentation

typedef IObject* HIObject

Definition at line 46 of file iobject.h.

typedef unsigned long kInterfaceID

other types

Definition at line 49 of file iobject.h.

typedef HIObject(* kObjectCreatorFnc) (HIObject pOwner, const char *pName, void *pData)

Definition at line 88 of file iobject.h.

Go to the source code of this file.