From ba066c34dde204aa192d03a23a81356374d93731 Mon Sep 17 00:00:00 2001 From: chatty Date: Wed, 7 Apr 1993 11:50:31 +0000 Subject: Initial revision --- comm/OLD/Server.h | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 comm/OLD/Server.h (limited to 'comm/OLD/Server.h') diff --git a/comm/OLD/Server.h b/comm/OLD/Server.h new file mode 100644 index 0000000..7f8c597 --- /dev/null +++ b/comm/OLD/Server.h @@ -0,0 +1,77 @@ +/* + * The Unix Channel + * + * by Michel Beaudouin-Lafon + * + * Copyright 1990-1993 + * Laboratoire de Recherche en Informatique (LRI) + * + * Servers + * + * $Id$ + * $CurLog$ + */ + +#ifndef Server_H_ +#define Server_H_ + +#include "ccu/List.h" +#include "MsgStream.h" +#include "Multiplexer.h" +#include "error.h" + +class UchServer; + +class UchClient : public UchMsgStream { +friend class UchServer; + +protected: + UchServer *MyServer; + +public: + UchClient (); + UchClient (const UchClient& cl); + UchClient (UchChannel* ch); + ~UchClient (); + + UchChannel* Copy () const; + void Delete (); + +inline UchServer* GetServer () { return MyServer; } + void SetOwner (UchServer*); +}; + +class UchServer : public UchStream { +friend class UchClient; + +protected: + CcuListOf Clients; + pUchMultiplexer ChanSet; + +public: + UchServer (); + UchServer (const UchServer&); + UchServer (UchAddress*); + ~UchServer (); + + UchChannel* Copy () const; + void HandleRead (); + + bool Setup (UchMultiplexer* cs = 0); +inline UchMultiplexer* GetMultiplexer () { return ChanSet; } + void RemoveClient (UchClient*); + void Run (); + void Unlisten (); + void Broadcast (UchMessage&, bool = FALSE); + void Broadcast (UchMessage&, UchClient*, bool = FALSE); + void Broadcast (UchMsgBuffer&, bool = FALSE); + void Broadcast (UchMsgBuffer&, UchClient*, bool = FALSE); +// called by HandleRead when a new client connects: must build up a client from a channel +virtual UchClient* HandleNew (UchChannel*); +virtual void HandleRemove (UchClient*); +virtual bool SysError (errtype, const char*, int = 0, int = 0); +virtual void Error (errtype, const char*, const char*); +}; + + +#endif /* Server_H_ */ -- cgit v1.1