diff options
Diffstat (limited to 'generic/tclOO.h')
-rw-r--r-- | generic/tclOO.h | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/generic/tclOO.h b/generic/tclOO.h deleted file mode 100644 index cd6124f..0000000 --- a/generic/tclOO.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * tclOO.c -- - * - * This file contains the structures for the object-system (NB: - * not Tcl_Obj, but ::oo) - * - * Copyright (c) 2005 by Donal K. Fellows - * - * See the file "license.terms" for information on usage and redistribution of - * this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * RCS: @(#) $Id: tclOO.h,v 1.1.2.1 2006/07/10 01:17:32 dkf Exp $ - */ - -struct Class; -struct Object; -struct Method; -struct CallContext; -//struct Foundation; - -typedef int (*Tcl_OOMethodCallProc)(ClientData clientData, Tcl_Interp *interp, - struct CallContext *contextPtr, int objc, Tcl_Obj *const *objv); -typedef void (*Tcl_OOMethodDeleteProc)(ClientData clientData); - -typedef struct Method { - Tcl_OOMethodCallProc callPtr; - ClientData clientData; - Tcl_OOMethodDeleteProc deletePtr; - int epoch; - int flags; -} Method; - -typedef struct ProcedureMethod { - Tcl_Obj *bodyObj; - Proc *procPtr; - int formalc; - Tcl_Obj **formalv; -} ProcedureMethod; - -typedef struct ForwardMethod { - Tcl_Obj *prefixObj; -} ForwardMethod; - - -typedef struct Object { - Namespace *nsPtr; /* This object's tame namespace. */ - Tcl_Command command; /* Reference to this object's public - * command. */ - Tcl_Command myCommand; /* Reference to this object's internal - * command. */ - struct Class *selfCls; /* This object's class. */ - Tcl_HashTable methods; /* Tcl_Obj (method name) to Method* - * mapping. */ - int numMixins; /* Number of classes mixed into this - * object. */ - struct Class **mixins; /* References to classes mixed into this - * object. */ - int numFilters; - Tcl_Obj **filterObjs; - struct Class *classPtr; /* All classes have this non-NULL; it points - * to the class structure. Everything else has - * this NULL. */ - Tcl_Interp *interp; /* The interpreter (for the PushObject and - * PopObject callbacks. */ - Tcl_HashTable publicContextCache; /* Place to keep unused contexts. */ - Tcl_HashTable privateContextCache; /* Place to keep unused contexts. */ -} Object; - -typedef struct Class { - struct Object *thisPtr; - int flags; - int numSuperclasses; - struct Class **superclasses; - int numSubclasses; - struct Class **subclasses; - int subclassesSize; - int numInstances; - struct Object **instances; - int instancesSize; - Tcl_HashTable classMethods; - struct Method *constructorPtr; - struct Method *destructorPtr; -} Class; - -typedef struct ObjectStack { - Object *oPtr; - struct ObjectStack *nextPtr; -} ObjectStack; - -typedef struct Foundation { - struct Class *objectCls; - struct Class *classCls; - struct Class *definerCls; - struct Class *structCls; - Tcl_Namespace *helpersNs; - int epoch; - int nsCount; - Tcl_Obj *unknownMethodNameObj; - ObjectStack *objStack; // should this be in stack frames? -} Foundation; - -#define CALL_CHAIN_STATIC_SIZE 4 - -struct MInvoke { - Method *mPtr; - int isFilter; -}; -typedef struct CallContext { - Object *oPtr; - int epoch; - int flags; - int index; - int numCallChain; - struct MInvoke **callChain; - struct MInvoke *staticCallChain[CALL_CHAIN_STATIC_SIZE]; - int filterLength; -} CallContext; - -#define OO_UNKNOWN_METHOD 1 -#define PUBLIC_METHOD 2 - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ |