|
|
|
|
|
|
|
|
|
#ifndef _TCLOODECLS |
|
#define _TCLOODECLS |
|
|
|
#ifndef TCLAPI |
|
# ifdef BUILD_tcl |
|
# define TCLAPI extern DLLEXPORT |
|
# else |
|
# define TCLAPI extern DLLIMPORT |
|
# endif |
|
#endif |
|
|
|
#ifdef USE_TCL_STUBS |
|
# undef USE_TCLOO_STUBS |
|
# define USE_TCLOO_STUBS |
|
#endif |
|
|
|
|
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
TCLAPI Tcl_Object Tcl_CopyObjectInstance(Tcl_Interp *interp, |
|
Tcl_Object sourceObject, |
|
const char *targetName, |
|
const char *targetNamespaceName); |
|
|
|
TCLAPI Tcl_Object Tcl_GetClassAsObject(Tcl_Class clazz); |
|
|
|
TCLAPI Tcl_Class Tcl_GetObjectAsClass(Tcl_Object object); |
|
|
|
TCLAPI Tcl_Command Tcl_GetObjectCommand(Tcl_Object object); |
|
|
|
TCLAPI Tcl_Object Tcl_GetObjectFromObj(Tcl_Interp *interp, |
|
Tcl_Obj *objPtr); |
|
|
|
TCLAPI Tcl_Namespace * Tcl_GetObjectNamespace(Tcl_Object object); |
|
|
|
TCLAPI Tcl_Class Tcl_MethodDeclarerClass(Tcl_Method method); |
|
|
|
TCLAPI Tcl_Object Tcl_MethodDeclarerObject(Tcl_Method method); |
|
|
|
TCLAPI int Tcl_MethodIsPublic(Tcl_Method method); |
|
|
|
TCLAPI int Tcl_MethodIsType(Tcl_Method method, |
|
const Tcl_MethodType *typePtr, |
|
void **clientDataPtr); |
|
|
|
TCLAPI Tcl_Obj * Tcl_MethodName(Tcl_Method method); |
|
|
|
TCLAPI Tcl_Method Tcl_NewInstanceMethod(Tcl_Interp *interp, |
|
Tcl_Object object, Tcl_Obj *nameObj, |
|
int isPublic, const Tcl_MethodType *typePtr, |
|
void *clientData); |
|
|
|
TCLAPI Tcl_Method Tcl_NewMethod(Tcl_Interp *interp, Tcl_Class cls, |
|
Tcl_Obj *nameObj, int isPublic, |
|
const Tcl_MethodType *typePtr, |
|
void *clientData); |
|
|
|
TCLAPI Tcl_Object Tcl_NewObjectInstance(Tcl_Interp *interp, |
|
Tcl_Class cls, const char *nameStr, |
|
const char *nsNameStr, int objc, |
|
Tcl_Obj *const *objv, int skip); |
|
|
|
TCLAPI int Tcl_ObjectDeleted(Tcl_Object object); |
|
|
|
TCLAPI int Tcl_ObjectContextIsFiltering( |
|
Tcl_ObjectContext context); |
|
|
|
TCLAPI Tcl_Method Tcl_ObjectContextMethod(Tcl_ObjectContext context); |
|
|
|
TCLAPI Tcl_Object Tcl_ObjectContextObject(Tcl_ObjectContext context); |
|
|
|
TCLAPI int Tcl_ObjectContextSkippedArgs( |
|
Tcl_ObjectContext context); |
|
|
|
TCLAPI void * Tcl_ClassGetMetadata(Tcl_Class clazz, |
|
const Tcl_ObjectMetadataType *typePtr); |
|
|
|
TCLAPI void Tcl_ClassSetMetadata(Tcl_Class clazz, |
|
const Tcl_ObjectMetadataType *typePtr, |
|
void *metadata); |
|
|
|
TCLAPI void * Tcl_ObjectGetMetadata(Tcl_Object object, |
|
const Tcl_ObjectMetadataType *typePtr); |
|
|
|
TCLAPI void Tcl_ObjectSetMetadata(Tcl_Object object, |
|
const Tcl_ObjectMetadataType *typePtr, |
|
void *metadata); |
|
|
|
TCLAPI int Tcl_ObjectContextInvokeNext(Tcl_Interp *interp, |
|
Tcl_ObjectContext context, int objc, |
|
Tcl_Obj *const *objv, int skip); |
|
|
|
TCLAPI Tcl_ObjectMapMethodNameProc * Tcl_ObjectGetMethodNameMapper( |
|
Tcl_Object object); |
|
|
|
TCLAPI void Tcl_ObjectSetMethodNameMapper(Tcl_Object object, |
|
Tcl_ObjectMapMethodNameProc *mapMethodNameProc); |
|
|
|
TCLAPI void Tcl_ClassSetConstructor(Tcl_Interp *interp, |
|
Tcl_Class clazz, Tcl_Method method); |
|
|
|
TCLAPI void Tcl_ClassSetDestructor(Tcl_Interp *interp, |
|
Tcl_Class clazz, Tcl_Method method); |
|
|
|
TCLAPI Tcl_Obj * Tcl_GetObjectName(Tcl_Interp *interp, |
|
Tcl_Object object); |
|
|
|
|
|
|
|
|
|
|
|
|
|
TCLAPI void TclOOUnusedStubEntry(void); |
|
|
|
typedef struct { |
|
const struct TclOOIntStubs *tclOOIntStubs; |
|
} TclOOStubHooks; |
|
|
|
typedef struct TclOOStubs { |
|
int magic; |
|
const TclOOStubHooks *hooks; |
|
|
|
Tcl_Object (*tcl_CopyObjectInstance) (Tcl_Interp *interp, Tcl_Object sourceObject, const char *targetName, const char *targetNamespaceName); |
|
Tcl_Object (*tcl_GetClassAsObject) (Tcl_Class clazz); |
|
Tcl_Class (*tcl_GetObjectAsClass) (Tcl_Object object); |
|
Tcl_Command (*tcl_GetObjectCommand) (Tcl_Object object); |
|
Tcl_Object (*tcl_GetObjectFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); |
|
Tcl_Namespace * (*tcl_GetObjectNamespace) (Tcl_Object object); |
|
Tcl_Class (*tcl_MethodDeclarerClass) (Tcl_Method method); |
|
Tcl_Object (*tcl_MethodDeclarerObject) (Tcl_Method method); |
|
int (*tcl_MethodIsPublic) (Tcl_Method method); |
|
int (*tcl_MethodIsType) (Tcl_Method method, const Tcl_MethodType *typePtr, void **clientDataPtr); |
|
Tcl_Obj * (*tcl_MethodName) (Tcl_Method method); |
|
Tcl_Method (*tcl_NewInstanceMethod) (Tcl_Interp *interp, Tcl_Object object, Tcl_Obj *nameObj, int isPublic, const Tcl_MethodType *typePtr, void *clientData); |
|
Tcl_Method (*tcl_NewMethod) (Tcl_Interp *interp, Tcl_Class cls, Tcl_Obj *nameObj, int isPublic, const Tcl_MethodType *typePtr, void *clientData); |
|
Tcl_Object (*tcl_NewObjectInstance) (Tcl_Interp *interp, Tcl_Class cls, const char *nameStr, const char *nsNameStr, int objc, Tcl_Obj *const *objv, int skip); |
|
int (*tcl_ObjectDeleted) (Tcl_Object object); |
|
int (*tcl_ObjectContextIsFiltering) (Tcl_ObjectContext context); |
|
Tcl_Method (*tcl_ObjectContextMethod) (Tcl_ObjectContext context); |
|
Tcl_Object (*tcl_ObjectContextObject) (Tcl_ObjectContext context); |
|
int (*tcl_ObjectContextSkippedArgs) (Tcl_ObjectContext context); |
|
void * (*tcl_ClassGetMetadata) (Tcl_Class clazz, const Tcl_ObjectMetadataType *typePtr); |
|
void (*tcl_ClassSetMetadata) (Tcl_Class clazz, const Tcl_ObjectMetadataType *typePtr, void *metadata); |
|
void * (*tcl_ObjectGetMetadata) (Tcl_Object object, const Tcl_ObjectMetadataType *typePtr); |
|
void (*tcl_ObjectSetMetadata) (Tcl_Object object, const Tcl_ObjectMetadataType *typePtr, void *metadata); |
|
int (*tcl_ObjectContextInvokeNext) (Tcl_Interp *interp, Tcl_ObjectContext context, int objc, Tcl_Obj *const *objv, int skip); |
|
Tcl_ObjectMapMethodNameProc * (*tcl_ObjectGetMethodNameMapper) (Tcl_Object object); |
|
void (*tcl_ObjectSetMethodNameMapper) (Tcl_Object object, Tcl_ObjectMapMethodNameProc *mapMethodNameProc); |
|
void (*tcl_ClassSetConstructor) (Tcl_Interp *interp, Tcl_Class clazz, Tcl_Method method); |
|
void (*tcl_ClassSetDestructor) (Tcl_Interp *interp, Tcl_Class clazz, Tcl_Method method); |
|
Tcl_Obj * (*tcl_GetObjectName) (Tcl_Interp *interp, Tcl_Object object); |
|
void (*reserved29)(void); |
|
void (*reserved30)(void); |
|
void (*reserved31)(void); |
|
void (*reserved32)(void); |
|
void (*reserved33)(void); |
|
void (*tclOOUnusedStubEntry) (void); |
|
} TclOOStubs; |
|
|
|
extern const TclOOStubs *tclOOStubsPtr; |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#if defined(USE_TCLOO_STUBS) |
|
|
|
|
|
|
|
|
|
|
|
#define Tcl_CopyObjectInstance \ |
|
(tclOOStubsPtr->tcl_CopyObjectInstance) |
|
#define Tcl_GetClassAsObject \ |
|
(tclOOStubsPtr->tcl_GetClassAsObject) |
|
#define Tcl_GetObjectAsClass \ |
|
(tclOOStubsPtr->tcl_GetObjectAsClass) |
|
#define Tcl_GetObjectCommand \ |
|
(tclOOStubsPtr->tcl_GetObjectCommand) |
|
#define Tcl_GetObjectFromObj \ |
|
(tclOOStubsPtr->tcl_GetObjectFromObj) |
|
#define Tcl_GetObjectNamespace \ |
|
(tclOOStubsPtr->tcl_GetObjectNamespace) |
|
#define Tcl_MethodDeclarerClass \ |
|
(tclOOStubsPtr->tcl_MethodDeclarerClass) |
|
#define Tcl_MethodDeclarerObject \ |
|
(tclOOStubsPtr->tcl_MethodDeclarerObject) |
|
#define Tcl_MethodIsPublic \ |
|
(tclOOStubsPtr->tcl_MethodIsPublic) |
|
#define Tcl_MethodIsType \ |
|
(tclOOStubsPtr->tcl_MethodIsType) |
|
#define Tcl_MethodName \ |
|
(tclOOStubsPtr->tcl_MethodName) |
|
#define Tcl_NewInstanceMethod \ |
|
(tclOOStubsPtr->tcl_NewInstanceMethod) |
|
#define Tcl_NewMethod \ |
|
(tclOOStubsPtr->tcl_NewMethod) |
|
#define Tcl_NewObjectInstance \ |
|
(tclOOStubsPtr->tcl_NewObjectInstance) |
|
#define Tcl_ObjectDeleted \ |
|
(tclOOStubsPtr->tcl_ObjectDeleted) |
|
#define Tcl_ObjectContextIsFiltering \ |
|
(tclOOStubsPtr->tcl_ObjectContextIsFiltering) |
|
#define Tcl_ObjectContextMethod \ |
|
(tclOOStubsPtr->tcl_ObjectContextMethod) |
|
#define Tcl_ObjectContextObject \ |
|
(tclOOStubsPtr->tcl_ObjectContextObject) |
|
#define Tcl_ObjectContextSkippedArgs \ |
|
(tclOOStubsPtr->tcl_ObjectContextSkippedArgs) |
|
#define Tcl_ClassGetMetadata \ |
|
(tclOOStubsPtr->tcl_ClassGetMetadata) |
|
#define Tcl_ClassSetMetadata \ |
|
(tclOOStubsPtr->tcl_ClassSetMetadata) |
|
#define Tcl_ObjectGetMetadata \ |
|
(tclOOStubsPtr->tcl_ObjectGetMetadata) |
|
#define Tcl_ObjectSetMetadata \ |
|
(tclOOStubsPtr->tcl_ObjectSetMetadata) |
|
#define Tcl_ObjectContextInvokeNext \ |
|
(tclOOStubsPtr->tcl_ObjectContextInvokeNext) |
|
#define Tcl_ObjectGetMethodNameMapper \ |
|
(tclOOStubsPtr->tcl_ObjectGetMethodNameMapper) |
|
#define Tcl_ObjectSetMethodNameMapper \ |
|
(tclOOStubsPtr->tcl_ObjectSetMethodNameMapper) |
|
#define Tcl_ClassSetConstructor \ |
|
(tclOOStubsPtr->tcl_ClassSetConstructor) |
|
#define Tcl_ClassSetDestructor \ |
|
(tclOOStubsPtr->tcl_ClassSetDestructor) |
|
#define Tcl_GetObjectName \ |
|
(tclOOStubsPtr->tcl_GetObjectName) |
|
|
|
|
|
|
|
|
|
|
|
#define TclOOUnusedStubEntry \ |
|
(tclOOStubsPtr->tclOOUnusedStubEntry) |
|
|
|
#endif |
|
|
|
|
|
|
|
#undef TclOOUnusedStubEntry |
|
|
|
#endif |
|
|