File indexing completed on 2025-01-17 09:56:07
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