X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=ir-tclp.h;h=ebf7cb2c7a9124ebfd168c1fbae2f295cceb2814;hb=6ddbb3991cc5ad6089410078695f574b2bd8388e;hp=eec70178be195db941bdd3a498029e4d462882da;hpb=9a5dea72c18197bf3f06c4300f01875d69934609;p=ir-tcl-moved-to-github.git diff --git a/ir-tclp.h b/ir-tclp.h index eec7017..ebf7cb2 100644 --- a/ir-tclp.h +++ b/ir-tclp.h @@ -5,7 +5,21 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: ir-tclp.h,v $ - * Revision 1.10 1995-06-16 12:28:20 adam + * Revision 1.14 1995-08-04 11:32:40 adam + * More work on output queue. Memory related routines moved + * to mem.c + * + * Revision 1.13 1995/08/03 13:23:00 adam + * Request queue. + * + * Revision 1.12 1995/07/28 10:28:38 adam + * First work on request queue. + * + * Revision 1.11 1995/06/20 08:07:35 adam + * New setting: failInfo. + * Working on better cancel mechanism. + * + * Revision 1.10 1995/06/16 12:28:20 adam * Implemented preferredRecordSyntax. * Minor changes in diagnostic handling. * Record list deleted when connection closes. @@ -89,8 +103,10 @@ typedef struct { char *cs_type; int protocol_type; - int connectFlag; + int failInfo; COMSTACK cs_link; + + int state; int preferredMessageSize; int maximumRecordSize; @@ -113,12 +129,8 @@ typedef struct { char *hostname; - char *buf_out; - int len_out; char *buf_in; int len_in; - char *sbuf; - int slen; ODR odr_in; ODR odr_out; ODR odr_pr; @@ -130,13 +142,22 @@ typedef struct { #if CCL2RPN CCL_bibset bibset; #endif - - struct IrTcl_SetObj_ *set_child; - struct IrTcl_ScanObj_ *scan_child; + struct IrTcl_Request_ *request_queue; IrTcl_SetCObj set_inher; } IrTcl_Obj; +typedef struct IrTcl_Request_ { + struct IrTcl_Request_ *next; + + char *object_name; + + char *buf_out; + int len_out; + + char *callback; +} IrTcl_Request; + typedef struct { int condition; char *addinfo; @@ -219,5 +240,25 @@ struct ir_named_entry { int ir_tcl_get_marc (Tcl_Interp *interp, const char *buf, int argc, char **argv); +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); + char *ir_tcl_fread_marc (FILE *inf, size_t *size); + +#define IR_TCL_FAIL_CONNECT 1 +#define IR_TCL_FAIL_READ 2 +#define IR_TCL_FAIL_WRITE 3 +#define IR_TCL_FAIL_IN_APDU 4 +#define IR_TCL_FAIL_UNKNOWN_APDU 5 + +#define IR_TCL_R_Idle 0 +#define IR_TCL_R_Writing 1 +#define IR_TCL_R_Waiting 2 +#define IR_TCL_R_Reading 3 +#define IR_TCL_R_Connecting 4 #endif