aboutsummaryrefslogtreecommitdiff
path: root/jim.h
diff options
context:
space:
mode:
authorpatthoyts <patthoyts>2005-03-05 10:45:15 +0000
committerpatthoyts <patthoyts>2005-03-05 10:45:15 +0000
commitcace04153ec0bbeb804dea9ddf32595320b1cc39 (patch)
treee9c86911b2422f20c3d7aa1879d0e7c2438f760c /jim.h
parentf461c42d9a83e1e4a18b02793d20d09d041d391e (diff)
downloadjimtcl-cace04153ec0bbeb804dea9ddf32595320b1cc39.zip
jimtcl-cace04153ec0bbeb804dea9ddf32595320b1cc39.tar.gz
jimtcl-cace04153ec0bbeb804dea9ddf32595320b1cc39.tar.bz2
Added Jim_GetAssocData api. This for permitting packages to register a
data structure with a Jim interpreter.
Diffstat (limited to 'jim.h')
-rw-r--r--jim.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/jim.h b/jim.h
index 8239f10..81604fa 100644
--- a/jim.h
+++ b/jim.h
@@ -1,7 +1,7 @@
/* Jim - A small embeddable Tcl interpreter
* Copyright 2005 Salvatore Sanfilippo <antirez@invece.org>
*
- * $Id: jim.h,v 1.34 2005/03/05 09:46:12 antirez Exp $
+ * $Id: jim.h,v 1.35 2005/03/05 10:45:15 patthoyts Exp $
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -430,6 +430,7 @@ typedef struct Jim_Interp {
struct Jim_HashTable stub; /* Stub hash table to export API */
void *getApiFuncPtr; /* Jim_GetApi() function pointer. */
struct Jim_CallFrame *freeFramesList; /* list of CallFrame structures. */
+ struct Jim_HashTable assocData; /* per-interp storage for use by packages */
} Jim_Interp;
/* Currently provided as macro that performs the increment.
@@ -678,6 +679,13 @@ JIM_STATIC void JIM_API(Jim_ReleaseSharedString) (Jim_Interp *interp,
JIM_STATIC void JIM_API(Jim_WrongNumArgs) (Jim_Interp *interp, int argc,
Jim_Obj *const *argv, const char *msg);
+/* package utilities */
+typedef void (Jim_InterpDeleteProc)(Jim_Interp *interp, void *data);
+JIM_STATIC void * JIM_API(Jim_GetAssocData)(Jim_Interp *interp, const char *key);
+JIM_STATIC int JIM_API(Jim_SetAssocData)(Jim_Interp *interp, const char *key,
+ Jim_InterpDeleteProc *delProc, void *data);
+JIM_STATIC int JIM_API(Jim_DeleteAssocData)(Jim_Interp *interp, const char *key);
+
/* API import/export functions */
JIM_STATIC void* JIM_API(Jim_GetApi) (Jim_Interp *interp, const char *funcname);
JIM_STATIC int JIM_API(Jim_RegisterApi) (Jim_Interp *interp,
@@ -785,6 +793,9 @@ static void Jim_InitExtension(Jim_Interp *interp, const char *version)
JIM_GET_API(UnsetVariable);
JIM_GET_API(GetVariableStr);
JIM_GET_API(GetGlobalVariableStr);
+ JIM_GET_API(GetAssocData);
+ JIM_GET_API(SetAssocData);
+ JIM_GET_API(DeleteAssocData);
Jim_SetResultString(interp, version, -1);
}