File indexing completed on 2025-11-03 10:09:33
0001 
0002 
0003 
0004 
0005 #ifndef _TCLOODECLS
0006 #define _TCLOODECLS
0007 
0008 #ifndef TCLAPI
0009 #   ifdef BUILD_tcl
0010 #   define TCLAPI extern DLLEXPORT
0011 #   else
0012 #   define TCLAPI extern DLLIMPORT
0013 #   endif
0014 #endif
0015 
0016 #ifdef USE_TCL_STUBS
0017 #   undef USE_TCLOO_STUBS
0018 #   define USE_TCLOO_STUBS
0019 #endif
0020 
0021 
0022 
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026 
0027 
0028 
0029 
0030 
0031 
0032 TCLAPI Tcl_Object   Tcl_CopyObjectInstance(Tcl_Interp *interp,
0033                 Tcl_Object sourceObject,
0034                 const char *targetName,
0035                 const char *targetNamespaceName);
0036 
0037 TCLAPI Tcl_Object   Tcl_GetClassAsObject(Tcl_Class clazz);
0038 
0039 TCLAPI Tcl_Class    Tcl_GetObjectAsClass(Tcl_Object object);
0040 
0041 TCLAPI Tcl_Command  Tcl_GetObjectCommand(Tcl_Object object);
0042 
0043 TCLAPI Tcl_Object   Tcl_GetObjectFromObj(Tcl_Interp *interp,
0044                 Tcl_Obj *objPtr);
0045 
0046 TCLAPI Tcl_Namespace *  Tcl_GetObjectNamespace(Tcl_Object object);
0047 
0048 TCLAPI Tcl_Class    Tcl_MethodDeclarerClass(Tcl_Method method);
0049 
0050 TCLAPI Tcl_Object   Tcl_MethodDeclarerObject(Tcl_Method method);
0051 
0052 TCLAPI int      Tcl_MethodIsPublic(Tcl_Method method);
0053 
0054 TCLAPI int      Tcl_MethodIsType(Tcl_Method method,
0055                 const Tcl_MethodType *typePtr,
0056                 ClientData *clientDataPtr);
0057 
0058 TCLAPI Tcl_Obj *    Tcl_MethodName(Tcl_Method method);
0059 
0060 TCLAPI Tcl_Method   Tcl_NewInstanceMethod(Tcl_Interp *interp,
0061                 Tcl_Object object, Tcl_Obj *nameObj,
0062                 int isPublic, const Tcl_MethodType *typePtr,
0063                 ClientData clientData);
0064 
0065 TCLAPI Tcl_Method   Tcl_NewMethod(Tcl_Interp *interp, Tcl_Class cls,
0066                 Tcl_Obj *nameObj, int isPublic,
0067                 const Tcl_MethodType *typePtr,
0068                 ClientData clientData);
0069 
0070 TCLAPI Tcl_Object   Tcl_NewObjectInstance(Tcl_Interp *interp,
0071                 Tcl_Class cls, const char *nameStr,
0072                 const char *nsNameStr, int objc,
0073                 Tcl_Obj *const *objv, int skip);
0074 
0075 TCLAPI int      Tcl_ObjectDeleted(Tcl_Object object);
0076 
0077 TCLAPI int      Tcl_ObjectContextIsFiltering(
0078                 Tcl_ObjectContext context);
0079 
0080 TCLAPI Tcl_Method   Tcl_ObjectContextMethod(Tcl_ObjectContext context);
0081 
0082 TCLAPI Tcl_Object   Tcl_ObjectContextObject(Tcl_ObjectContext context);
0083 
0084 TCLAPI int      Tcl_ObjectContextSkippedArgs(
0085                 Tcl_ObjectContext context);
0086 
0087 TCLAPI ClientData   Tcl_ClassGetMetadata(Tcl_Class clazz,
0088                 const Tcl_ObjectMetadataType *typePtr);
0089 
0090 TCLAPI void     Tcl_ClassSetMetadata(Tcl_Class clazz,
0091                 const Tcl_ObjectMetadataType *typePtr,
0092                 ClientData metadata);
0093 
0094 TCLAPI ClientData   Tcl_ObjectGetMetadata(Tcl_Object object,
0095                 const Tcl_ObjectMetadataType *typePtr);
0096 
0097 TCLAPI void     Tcl_ObjectSetMetadata(Tcl_Object object,
0098                 const Tcl_ObjectMetadataType *typePtr,
0099                 ClientData metadata);
0100 
0101 TCLAPI int      Tcl_ObjectContextInvokeNext(Tcl_Interp *interp,
0102                 Tcl_ObjectContext context, int objc,
0103                 Tcl_Obj *const *objv, int skip);
0104 
0105 TCLAPI Tcl_ObjectMapMethodNameProc * Tcl_ObjectGetMethodNameMapper(
0106                 Tcl_Object object);
0107 
0108 TCLAPI void     Tcl_ObjectSetMethodNameMapper(Tcl_Object object,
0109                 Tcl_ObjectMapMethodNameProc *mapMethodNameProc);
0110 
0111 TCLAPI void     Tcl_ClassSetConstructor(Tcl_Interp *interp,
0112                 Tcl_Class clazz, Tcl_Method method);
0113 
0114 TCLAPI void     Tcl_ClassSetDestructor(Tcl_Interp *interp,
0115                 Tcl_Class clazz, Tcl_Method method);
0116 
0117 TCLAPI Tcl_Obj *    Tcl_GetObjectName(Tcl_Interp *interp,
0118                 Tcl_Object object);
0119 
0120 
0121 
0122 TCLAPI void     TclOOUnusedStubEntry(void);
0123 
0124 typedef struct {
0125     const struct TclOOIntStubs *tclOOIntStubs;
0126 } TclOOStubHooks;
0127 
0128 typedef struct TclOOStubs {
0129     int magic;
0130     const TclOOStubHooks *hooks;
0131 
0132     Tcl_Object (*tcl_CopyObjectInstance) (Tcl_Interp *interp, Tcl_Object sourceObject, const char *targetName, const char *targetNamespaceName); 
0133     Tcl_Object (*tcl_GetClassAsObject) (Tcl_Class clazz); 
0134     Tcl_Class (*tcl_GetObjectAsClass) (Tcl_Object object); 
0135     Tcl_Command (*tcl_GetObjectCommand) (Tcl_Object object); 
0136     Tcl_Object (*tcl_GetObjectFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); 
0137     Tcl_Namespace * (*tcl_GetObjectNamespace) (Tcl_Object object); 
0138     Tcl_Class (*tcl_MethodDeclarerClass) (Tcl_Method method); 
0139     Tcl_Object (*tcl_MethodDeclarerObject) (Tcl_Method method); 
0140     int (*tcl_MethodIsPublic) (Tcl_Method method); 
0141     int (*tcl_MethodIsType) (Tcl_Method method, const Tcl_MethodType *typePtr, ClientData *clientDataPtr); 
0142     Tcl_Obj * (*tcl_MethodName) (Tcl_Method method); 
0143     Tcl_Method (*tcl_NewInstanceMethod) (Tcl_Interp *interp, Tcl_Object object, Tcl_Obj *nameObj, int isPublic, const Tcl_MethodType *typePtr, ClientData clientData); 
0144     Tcl_Method (*tcl_NewMethod) (Tcl_Interp *interp, Tcl_Class cls, Tcl_Obj *nameObj, int isPublic, const Tcl_MethodType *typePtr, ClientData clientData); 
0145     Tcl_Object (*tcl_NewObjectInstance) (Tcl_Interp *interp, Tcl_Class cls, const char *nameStr, const char *nsNameStr, int objc, Tcl_Obj *const *objv, int skip); 
0146     int (*tcl_ObjectDeleted) (Tcl_Object object); 
0147     int (*tcl_ObjectContextIsFiltering) (Tcl_ObjectContext context); 
0148     Tcl_Method (*tcl_ObjectContextMethod) (Tcl_ObjectContext context); 
0149     Tcl_Object (*tcl_ObjectContextObject) (Tcl_ObjectContext context); 
0150     int (*tcl_ObjectContextSkippedArgs) (Tcl_ObjectContext context); 
0151     ClientData (*tcl_ClassGetMetadata) (Tcl_Class clazz, const Tcl_ObjectMetadataType *typePtr); 
0152     void (*tcl_ClassSetMetadata) (Tcl_Class clazz, const Tcl_ObjectMetadataType *typePtr, ClientData metadata); 
0153     ClientData (*tcl_ObjectGetMetadata) (Tcl_Object object, const Tcl_ObjectMetadataType *typePtr); 
0154     void (*tcl_ObjectSetMetadata) (Tcl_Object object, const Tcl_ObjectMetadataType *typePtr, ClientData metadata); 
0155     int (*tcl_ObjectContextInvokeNext) (Tcl_Interp *interp, Tcl_ObjectContext context, int objc, Tcl_Obj *const *objv, int skip); 
0156     Tcl_ObjectMapMethodNameProc * (*tcl_ObjectGetMethodNameMapper) (Tcl_Object object); 
0157     void (*tcl_ObjectSetMethodNameMapper) (Tcl_Object object, Tcl_ObjectMapMethodNameProc *mapMethodNameProc); 
0158     void (*tcl_ClassSetConstructor) (Tcl_Interp *interp, Tcl_Class clazz, Tcl_Method method); 
0159     void (*tcl_ClassSetDestructor) (Tcl_Interp *interp, Tcl_Class clazz, Tcl_Method method); 
0160     Tcl_Obj * (*tcl_GetObjectName) (Tcl_Interp *interp, Tcl_Object object); 
0161     void (*reserved29)(void);
0162     void (*reserved30)(void);
0163     void (*tclOOUnusedStubEntry) (void); 
0164 } TclOOStubs;
0165 
0166 extern const TclOOStubs *tclOOStubsPtr;
0167 
0168 #ifdef __cplusplus
0169 }
0170 #endif
0171 
0172 #if defined(USE_TCLOO_STUBS)
0173 
0174 
0175 
0176 
0177 
0178 #define Tcl_CopyObjectInstance \
0179     (tclOOStubsPtr->tcl_CopyObjectInstance) 
0180 #define Tcl_GetClassAsObject \
0181     (tclOOStubsPtr->tcl_GetClassAsObject) 
0182 #define Tcl_GetObjectAsClass \
0183     (tclOOStubsPtr->tcl_GetObjectAsClass) 
0184 #define Tcl_GetObjectCommand \
0185     (tclOOStubsPtr->tcl_GetObjectCommand) 
0186 #define Tcl_GetObjectFromObj \
0187     (tclOOStubsPtr->tcl_GetObjectFromObj) 
0188 #define Tcl_GetObjectNamespace \
0189     (tclOOStubsPtr->tcl_GetObjectNamespace) 
0190 #define Tcl_MethodDeclarerClass \
0191     (tclOOStubsPtr->tcl_MethodDeclarerClass) 
0192 #define Tcl_MethodDeclarerObject \
0193     (tclOOStubsPtr->tcl_MethodDeclarerObject) 
0194 #define Tcl_MethodIsPublic \
0195     (tclOOStubsPtr->tcl_MethodIsPublic) 
0196 #define Tcl_MethodIsType \
0197     (tclOOStubsPtr->tcl_MethodIsType) 
0198 #define Tcl_MethodName \
0199     (tclOOStubsPtr->tcl_MethodName) 
0200 #define Tcl_NewInstanceMethod \
0201     (tclOOStubsPtr->tcl_NewInstanceMethod) 
0202 #define Tcl_NewMethod \
0203     (tclOOStubsPtr->tcl_NewMethod) 
0204 #define Tcl_NewObjectInstance \
0205     (tclOOStubsPtr->tcl_NewObjectInstance) 
0206 #define Tcl_ObjectDeleted \
0207     (tclOOStubsPtr->tcl_ObjectDeleted) 
0208 #define Tcl_ObjectContextIsFiltering \
0209     (tclOOStubsPtr->tcl_ObjectContextIsFiltering) 
0210 #define Tcl_ObjectContextMethod \
0211     (tclOOStubsPtr->tcl_ObjectContextMethod) 
0212 #define Tcl_ObjectContextObject \
0213     (tclOOStubsPtr->tcl_ObjectContextObject) 
0214 #define Tcl_ObjectContextSkippedArgs \
0215     (tclOOStubsPtr->tcl_ObjectContextSkippedArgs) 
0216 #define Tcl_ClassGetMetadata \
0217     (tclOOStubsPtr->tcl_ClassGetMetadata) 
0218 #define Tcl_ClassSetMetadata \
0219     (tclOOStubsPtr->tcl_ClassSetMetadata) 
0220 #define Tcl_ObjectGetMetadata \
0221     (tclOOStubsPtr->tcl_ObjectGetMetadata) 
0222 #define Tcl_ObjectSetMetadata \
0223     (tclOOStubsPtr->tcl_ObjectSetMetadata) 
0224 #define Tcl_ObjectContextInvokeNext \
0225     (tclOOStubsPtr->tcl_ObjectContextInvokeNext) 
0226 #define Tcl_ObjectGetMethodNameMapper \
0227     (tclOOStubsPtr->tcl_ObjectGetMethodNameMapper) 
0228 #define Tcl_ObjectSetMethodNameMapper \
0229     (tclOOStubsPtr->tcl_ObjectSetMethodNameMapper) 
0230 #define Tcl_ClassSetConstructor \
0231     (tclOOStubsPtr->tcl_ClassSetConstructor) 
0232 #define Tcl_ClassSetDestructor \
0233     (tclOOStubsPtr->tcl_ClassSetDestructor) 
0234 #define Tcl_GetObjectName \
0235     (tclOOStubsPtr->tcl_GetObjectName) 
0236 
0237 
0238 #define TclOOUnusedStubEntry \
0239     (tclOOStubsPtr->tclOOUnusedStubEntry) 
0240 
0241 #endif 
0242 
0243 
0244 
0245 #undef TclOOUnusedStubEntry
0246 
0247 #endif