home *** CD-ROM | disk | FTP | other *** search
- #ifndef __INC_POS_PEXEC_CLASS_H
- #define __INC_POS_PEXEC_CLASS_H
- /*******************************************************************
- Includes Release 24
- (C) Copyright 1995-1997 proDAD
- All Rights Reserved
-
- $AUT Holger Burkarth
- $DAT >>Class.h<< 26 Oct 1996 08:17:52 - (C) ProDAD
- *******************************************************************/
- #ifndef __INC_POS_PEXEC_LIST_H
- #include <pExec/List.h>
- #endif
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_Class
- {
- ULONG (*cl_Dispatcher)(_R_LB struct pOS_ExecBase*,_R_A0 const struct pOS_Class*,_R_A1 APTR,_R_A2 struct pOS_Method*);
- size_t cl_ObjSize; /* without sizeof(pOS_Object) */
- size_t cl_ObjOffset;
- UWORD cl_ClassNr;
- UWORD cl_Pad; /* damit sizeof==16 wird */
- };
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_Method
- {
- ULONG mth_ID;
- };
-
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_Member
- {
- struct pOS_NClass *mb_NClass;
- size_t mb_MembOffset;
- };
-
-
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_NClass
- {
- struct pOS_ExNode ncl_Node; /* Public-Class => ln_Name for ClassName */
- UWORD ncl_OpenCnt;
- UWORD ncl_Version;
- size_t ncl_SumSize; /* with sizeof(pOS_Object) */
- ULONG ncl_UserData; /* for the User own use */
- struct pOS_Library *ncl_Library; /* ~NULL, wurde nachgeladen */
- size_t ncl_NASize; /* beinhaltet die dynamische Länge von pOS_NClass */
- /* Null => wurde nicht dyn. erzeugt */
- const struct pOS_NClass *ncl_SupClass; /* ~NULL => SuperClass */
-
- UBYTE ncl_Reserved[18];
-
- UWORD ncl_MembCnt; /* Anzahl der Member-Objekte */
- UWORD ncl_ClassCnt; /* Anzahl der Klassen */
- struct pOS_Class ncl_Class[1];
-
- /*\
- *** pOS_Class x[ncl_ClassCnt-1]
- *** pOS_Member y[ncl_MembCnt]
- \*/
- };
-
-
- /*----------------------------------
- -----------------------------------*/
- struct pOS_Object
- {
- struct pOS_NClass *obj_Class;
- };
-
-
-
-
-
-
-
-
-
- struct pOS_NClass* pOS_GETNCLASS(APTR);
-
- #define pOS_GETNCLASS(obj) \
- ( (((struct pOS_Object*)(obj))-1)->obj_Class )
-
-
- /* Error from Dispatcher */
- #define pOS_CLASSERR (~0l)
-
- #endif
-