/* * Ivy League * * Tk-based multiplexers/schedulers * * Copyright 1996-2000 * Centre d'Etudes de la Navigation Aerienne (CENA) * * code by Stephane Chatty * * $Id$ * */ #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 IvlTkMultiplexer : public IvlBaseMultiplexer { 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: IvlTkMultiplexer (); ~IvlTkMultiplexer (); }; #endif /* TkMultiplexer_H_ */