/* * The Unix Channel * * by Michel Beaudouin-Lafon and Stephane Chatty * * Copyright 1990-1993 * Laboratoire de Recherche en Informatique (LRI) * Centre d'Etudes de la Navigation Aerienne * * Tk-based multiplexers * * $Id$ * $CurLog$ */ #ifndef TkMultiplexer_H_ #define TkMultiplexer_H_ #include "Multiplexer.h" #include "error.h" /* taken from tcl7.0 and tk3.3 */ typedef struct Tk_TimerToken_ *Tk_TimerToken; #ifndef _CLIENTDATA # ifdef __STDC__ typedef void *ClientData; # else typedef int *ClientData; # endif /* __STDC__ */ #define _CLIENTDATA #endif class UchTkMultiplexer : public UchBaseMultiplexer { private: static void FireSignals (ClientData); static void FireTimers (ClientData); protected: bool Active [NFILE]; Tk_TimerToken TimeOut; void SetMasks (int, IOMODE); void SetTimeOut (Millisecond); void SuppressTimeOut (); void AddSignalHook (); MPX_RES Loop (); public: UchTkMultiplexer (); ~UchTkMultiplexer (); }; #endif /* TkMultiplexer_H_ */