X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=ir-tclp.h;h=12a97c40a3c75fe05758cc2a918fb65eb8aa8da0;hb=0252d40eabf62f04e77b5e3895a93394d8acce25;hp=29598754521356737623ce4e6175c7aa04cadc8f;hpb=0c66cddf6e923db676ed30691cd1d47b50db0d4a;p=ir-tcl-moved-to-github.git diff --git a/ir-tclp.h b/ir-tclp.h index 2959875..12a97c4 100644 --- a/ir-tclp.h +++ b/ir-tclp.h @@ -5,7 +5,23 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: ir-tclp.h,v $ - * Revision 1.25 1996-02-05 17:58:04 adam + * Revision 1.30 1996-02-29 15:30:23 adam + * Export of IrTcl functionality to extensions. + * + * Revision 1.29 1996/02/26 18:38:33 adam + * Work on export of set methods. + * + * Revision 1.28 1996/02/23 17:31:41 adam + * More functions made available to the wais tcl extension. + * + * Revision 1.27 1996/02/23 13:41:41 adam + * Work on public access to simple ir class system. + * + * Revision 1.26 1996/02/21 10:16:20 adam + * Simplified select handling. Only one function ir_tcl_select_set has + * to be externally defined. + * + * Revision 1.25 1996/02/05 17:58:04 adam * Ported ir-tcl to use the beta releases of tcl7.5/tk4.1. * * Revision 1.24 1996/01/29 11:35:27 adam @@ -126,6 +142,17 @@ #include "ir-tcl.h" typedef struct { + char *name; + int (*method) (void *obj, Tcl_Interp *interp, int argc, char **argv); + char *desc; +} IrTcl_Method; + +typedef struct { + void *obj; + IrTcl_Method *tab; +} IrTcl_Methods; + +typedef struct { char **databaseNames; int num_databaseNames; char *queryType; @@ -329,7 +356,6 @@ int ir_tcl_send_APDU (Tcl_Interp *interp, IrTcl_Obj *p, Z_APDU *apdu, const char *msg, const char *object_name); int ir_tcl_send_q (IrTcl_Obj *p, IrTcl_Request *rq, const char *msg); void ir_tcl_del_q (IrTcl_Obj *p); -void *ir_tcl_malloc (size_t size); int ir_tcl_strdup (Tcl_Interp *interp, char** p, const char *s); int ir_tcl_strdel (Tcl_Interp *interp, char **p); @@ -338,6 +364,30 @@ void ir_tcl_read_grs (Z_GenericRecord *r, IrTcl_GRS_Record **grs_record); int ir_tcl_get_grs (Tcl_Interp *interp, IrTcl_GRS_Record *grs_record, int argc, char **argv); +int ir_tcl_method (Tcl_Interp *interp, int argc, char **argv, + IrTcl_Methods *tab, int *ret); +int ir_tcl_get_set_int (int *val, Tcl_Interp *interp, int argc, char **argv); + +typedef struct { + const char *name; + int (*ir_init) (ClientData clientData, Tcl_Interp *interp, + int argc, char **argv, ClientData *subData, + ClientData parentData); + int (*ir_method) (ClientData clientData, Tcl_Interp *interp, + int argc, char **argv); + void (*ir_delete)(ClientData clientData); +} IrTcl_Class; + +extern IrTcl_Class ir_obj_class; +extern IrTcl_Class ir_set_obj_class; + +void ir_select_add (int fd, void *obj); +void ir_select_add_write (int fd, void *obj); +void ir_select_remove (int fd, void *obj); +void ir_select_remove_write (int fd, void *obj); + +int ir_tcl_eval (Tcl_Interp *interp, const char *command); + #define IR_TCL_FAIL_CONNECT 1 #define IR_TCL_FAIL_READ 2 #define IR_TCL_FAIL_WRITE 3