iobject.h File Reference

#include <kaydara.h>

Go to the source code of this file.

Classes

class  IObject

Defines

#define IObjectID   0
 Basic includes.
#define IObjectDerived   public IObject
#define FncDefine(PFNC, ISPURE)   virtual PFNC##ISPURE
 MACRO Base definitions.
#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 unsigned long kInterfaceID
 other types
typedef HIObject(* kObjectCreatorFnc )(HIObject pOwner, const char *pName, void *pData)

Functions

 K_FORWARD (IObject)
 forwarding

Define Documentation

#define IObjectID   0

Basic includes.

Definition at line 42 of file iobject.h.

#define IObjectDerived   public IObject

Definition at line 43 of file iobject.h.

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

MACRO Base definitions.

Definition at line 52 of file iobject.h.

#define K_IMPLEMENTATION

Definition at line 53 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)

Definition at line 54 of file iobject.h.

#define IObjectEnd   return NULL; }

Definition at line 60 of file iobject.h.

#define ILOCAL   1

Definition at line 61 of file iobject.h.

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

Definition at line 63 of file iobject.h.

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

Definition at line 64 of file iobject.h.

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

Definition at line 66 of file iobject.h.

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

Definition at line 67 of file iobject.h.

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

Definition at line 68 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;\

Definition at line 75 of file iobject.h.

#define IQuery_Declare (   IsPure)
Value:
public:\
    virtual HIObject IQuery (kInterfaceID pInterfaceID, int IsLocal=0)IsPure;\

Definition at line 80 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.

#define K_INTERFACE (   Name,
  Id 
)
Value:
K_FORWARD( Name ); \
const int Name##ID = Id; \
class K_INTERFACE_SPECIAL Name : IObjectDerived { \
    Name##_Declare(abstract); \
}

Definition at line 98 of file iobject.h.


Typedef Documentation

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.


Function Documentation

K_FORWARD ( IObject  )