diff options
Diffstat (limited to 'comm/BusAccess.h')
-rw-r--r-- | comm/BusAccess.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/comm/BusAccess.h b/comm/BusAccess.h new file mode 100644 index 0000000..e0bcdf1 --- /dev/null +++ b/comm/BusAccess.h @@ -0,0 +1,52 @@ +/* + * The Unix Channel + * + * by Michel Beaudouin-Lafon + * + * Copyright 1990-1997 + * Laboratoire de Recherche en Informatique (LRI) + * + * Bus access, by Stephane Chatty + * + * $Id$ + * $CurLog$ + */ + + +#ifndef BusAccess_H_ +#define BusAccess_H_ + +#include "Datagram.h" +#include "Stream.h" +#include "SignalHandler.h" +#include "ccu/List.h" +#include "ccu/IdTable.h" + +class UchBusSubscription; +class UchBusTrigger; +class DnnBaseReaction; + +class UchBusAccess : public UchDatagram, public UchBaseSignalHandler { +friend class UchBusAgent; + +protected: +static int Version; + sword ListenPort; + sword BroadcastPort; + UchStream* Server; + CcuListOf<UchBusAgent> Agents; + CcuListOf<UchBusTrigger> LocalSubscriptions; + CcuIdTableOf<UchBusTrigger> IdToSubscription; + + void HandleRead (); + void DeferredHandle (int); + void HandleEvent (int, const char*); + +public: + UchBusAccess (sword); + ~UchBusAccess (); + void Subscribe (DnnBaseReaction&, const char*); + void Emit (const char*, ...); +}; + +#endif /* BusAccess_H_ */ |