1/* -----------------------------------------------------------------------------
2 * SWIG API. Portion that goes into the runtime
3 * ----------------------------------------------------------------------------- */
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8/* -----------------------------------------------------------------------------
9 * Constant declarations
10 * ----------------------------------------------------------------------------- */
11
12/* Constant Types */
13#define SWIG_TCL_POINTER 4
14#define SWIG_TCL_BINARY  5
15
16/* Constant information structure */
17typedef struct swig_const_info {
18    int type;
19    char *name;
20    long lvalue;
21    double dvalue;
22    void   *pvalue;
23    swig_type_info **ptype;
24} swig_const_info;
25
26typedef int   (*swig_wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
27typedef int   (*swig_wrapper_func)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
28typedef char *(*swig_variable_func)(ClientData, Tcl_Interp *, char *, char *, int);
29typedef void  (*swig_delete_func)(ClientData);
30
31typedef struct swig_method {
32  const char     *name;
33  swig_wrapper   method;
34} swig_method;
35
36typedef struct swig_attribute {
37  const char     *name;
38  swig_wrapper   getmethod;
39  swig_wrapper   setmethod;
40} swig_attribute;
41
42typedef struct swig_class {
43  const char         *name;
44  swig_type_info   **type;
45  swig_wrapper       constructor;
46  void              (*destructor)(void *);
47  swig_method        *methods;
48  swig_attribute     *attributes;
49  struct swig_class **bases;
50  const char              **base_names;
51  swig_module_info   *module;
52  Tcl_HashTable       hashtable;
53} swig_class;
54
55typedef struct swig_instance {
56  Tcl_Obj       *thisptr;
57  void          *thisvalue;
58  swig_class   *classptr;
59  int            destroy;
60  Tcl_Command    cmdtok;
61} swig_instance;
62
63/* Structure for command table */
64typedef struct {
65  const char *name;
66  int       (*wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
67  ClientData  clientdata;
68} swig_command_info;
69
70/* Structure for variable linking table */
71typedef struct {
72  const char *name;
73  void *addr;
74  char * (*get)(ClientData, Tcl_Interp *, char *, char *, int);
75  char * (*set)(ClientData, Tcl_Interp *, char *, char *, int);
76} swig_var_info;
77
78
79/* -----------------------------------------------------------------------------*
80 *  Install a constant object
81 * -----------------------------------------------------------------------------*/
82
83static Tcl_HashTable   swigconstTable;
84static int             swigconstTableinit = 0;
85
86SWIGINTERN void
87SWIG_Tcl_SetConstantObj(Tcl_Interp *interp, const char* name, Tcl_Obj *obj) {
88  int newobj;
89  Tcl_ObjSetVar2(interp,Tcl_NewStringObj(name,-1), NULL, obj, TCL_GLOBAL_ONLY);
90  Tcl_SetHashValue(Tcl_CreateHashEntry(&swigconstTable, name, &newobj), (ClientData) obj);
91}
92
93SWIGINTERN Tcl_Obj *
94SWIG_Tcl_GetConstantObj(const char *key) {
95  Tcl_HashEntry *entryPtr;
96  if (!swigconstTableinit) return 0;
97  entryPtr = Tcl_FindHashEntry(&swigconstTable, key);
98  if (entryPtr) {
99    return (Tcl_Obj *) Tcl_GetHashValue(entryPtr);
100  }
101  return 0;
102}
103
104#ifdef __cplusplus
105}
106#endif
107
108
109