* Sebastian Hammer, Adam Dickmeiss
*
* $Log: ir-tcl.c,v $
- * Revision 1.77 1996-02-20 17:52:58 adam
+ * Revision 1.78 1996-02-21 10:16:08 adam
+ * Simplified select handling. Only one function ir_tcl_select_set has
+ * to be externally defined.
+ *
+ * Revision 1.77 1996/02/20 17:52:58 adam
* Uses the YAZ oid system to name record syntax object identifiers.
*
* Revision 1.76 1996/02/20 16:09:51 adam
#define CS_BLOCK 0
+#define IRTCL_GENERIC_FILES 0
+
#include "ir-tclp.h"
typedef struct {
static int do_disconnect (void *obj, Tcl_Interp *interp,
int argc, char **argv);
+static void ir_select_notify (ClientData clientData, int r, int w, int e);
+
+void ir_select_add (int fd, void *obj)
+{
+ ir_tcl_select_set (ir_select_notify, fd, obj, 1, 0, 0);
+}
+
+void ir_select_add_write (int fd, void *obj)
+{
+ ir_tcl_select_set (ir_select_notify, fd, obj, 1, 1, 0);
+}
+
+void ir_select_remove (int fd, void *obj)
+{
+ ir_tcl_select_set (NULL, fd, obj, 0, 0, 0);
+}
+
+void ir_select_remove_write (int fd, void *obj)
+{
+ ir_tcl_select_set (ir_select_notify, fd, obj, 1, 0, 0);
+}
+
static IrTcl_RecordList *new_IR_record (IrTcl_SetObj *setobj,
int no, int which,
const char *elements)
/*
* ir_select_read: handle incoming packages
*/
-void ir_select_read (ClientData clientData)
+static void ir_select_read (ClientData clientData)
{
IrTcl_Obj *p = clientData;
Z_APDU *apdu;
/*
* ir_select_write: handle outgoing packages - not yet written.
*/
-void ir_select_write (ClientData clientData)
+static void ir_select_write (ClientData clientData)
{
IrTcl_Obj *p = clientData;
int r;
}
}
+static void ir_select_notify (ClientData clientData, int r, int w, int e)
+{
+ if (r)
+ ir_select_read (clientData);
+ if (w)
+ ir_select_write (clientData);
+}
+
/* ------------------------------------------------------- */
/*