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  Pure   abstract;
#define  Implementation   ;
#define  Override   override;
#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, 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 Pure   abstract;

Definition at line 53 of file iobject.h.

#define Implementation   ;

Definition at line 54 of file iobject.h.

#define Override   override;

Definition at line 55 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 56 of file iobject.h.

#define IObjectEnd   return NULL; }

Definition at line 62 of file iobject.h.

#define ILOCAL   1

Definition at line 63 of file iobject.h.

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

Definition at line 65 of file iobject.h.

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

Definition at line 66 of file iobject.h.

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

Definition at line 68 of file iobject.h.

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

Definition at line 69 of file iobject.h.

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

Definition at line 70 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 77 of file iobject.h.

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

Definition at line 82 of file iobject.h.

#define K_INTERFACE_SPECIAL

Definition at line 96 of file iobject.h.

#define NO_DLL

Definition at line 97 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(Pure); \
}

Definition at line 100 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, char *pName, void *pData)

Definition at line 90 of file iobject.h.


Function Documentation

K_FORWARD ( IObject  )