Simplified select handling. Only one function ir_tcl_select_set has
[ir-tcl-moved-to-github.git] / ir-tclp.h
index c58b52f..4813c41 100644 (file)
--- a/ir-tclp.h
+++ b/ir-tclp.h
@@ -5,7 +5,37 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: ir-tclp.h,v $
- * Revision 1.18  1995-10-18 16:42:44  adam
+ * 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
+ * Bug fix: cs_type member renamed to comstackType to avoid conflict with
+ * cs_type macro defined by YAZ.
+ *
+ * Revision 1.23  1996/01/19  16:22:40  adam
+ * New method: apduDump - returns information about last incoming APDU.
+ *
+ * Revision 1.22  1996/01/10  09:18:44  adam
+ * PDU specific callbacks implemented: initRespnse, searchResponse,
+ *  presentResponse and scanResponse.
+ * Bug fix in the command line shell (tclmain.c) - discovered on OSF/1.
+ *
+ * Revision 1.21  1996/01/04  16:12:14  adam
+ * Setting PDUType renamed to eventType.
+ *
+ * Revision 1.20  1996/01/04  11:05:23  adam
+ * New setting: PDUType - returns type of last PDU returned from the target.
+ * Fixed a bug in configure/Makefile.
+ *
+ * Revision 1.19  1995/11/13  09:55:46  adam
+ * Multiple records at a position in a result-set with differnt
+ * element specs.
+ *
+ * Revision 1.18  1995/10/18  16:42:44  adam
  * New settings: smallSetElementSetNames and mediumSetElementSetNames.
  *
  * Revision 1.17  1995/10/16  17:00:56  adam
@@ -119,10 +149,13 @@ typedef struct {
 typedef struct {
     int         ref_count;
 
-    char       *cs_type;
+    char       *comstackType;
     int         protocol_type;
     int         failInfo;
     COMSTACK    cs_link;
+#if IRTCL_GENERIC_FILES
+    Tcl_File    csFile;
+#endif
     
     int         state;
 
@@ -146,6 +179,7 @@ typedef struct {
     char       *userInformationField;
 
     char       *hostname;
+    char       *eventType;
    
     char       *buf_in;
     int         len_in;
@@ -156,6 +190,10 @@ typedef struct {
     Tcl_Interp *interp;
     char       *callback;
     char       *failback;
+    char       *initResponse;
+
+    int        apduLen;
+    int        apduOffset;
 
 #if CCL2RPN
     CCL_bibset  bibset;
@@ -208,6 +246,7 @@ typedef struct IrTcl_GRS_Record_ {
 
 typedef struct IrTcl_RecordList_ {
     int no;
+    char *elements;
     int which;
     union {
         struct {
@@ -236,9 +275,12 @@ typedef struct IrTcl_SetObj_ {
     int         number;
     int         numberOfRecordsReturned;
     char       *setName;
+    char       *recordElements;
     int         recordFlag;
     int         which;
     int         nonSurrogateDiagnosticNum;
+    char       *searchResponse;
+    char       *presentResponse;
     IrTcl_Diagnostic *nonSurrogateDiagnosticList;
     IrTcl_RecordList *record_list;
     IrTcl_SetCObj set_inher;
@@ -274,6 +316,7 @@ typedef struct IrTcl_ScanObj_ {
     int         num_entries;
     int         num_diagRecs;
 
+    char        *scanResponse;
     IrTcl_ScanEntry *entries;
     IrTcl_Diagnostic  *nonSurrogateDiagnosticList;
     int         nonSurrogateDiagnosticNum;
@@ -290,7 +333,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);
 
@@ -299,6 +341,11 @@ 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);
 
+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_selcet_remove_write (int fd, void *obj);
+
 #define IR_TCL_FAIL_CONNECT      1
 #define IR_TCL_FAIL_READ         2
 #define IR_TCL_FAIL_WRITE        3