diff options
author | chatty | 1993-04-07 11:50:31 +0000 |
---|---|---|
committer | chatty | 1993-04-07 11:50:31 +0000 |
commit | ba066c34dde204aa192d03a23a81356374d93731 (patch) | |
tree | 39391f6235d2cf8a59a0634ac5ea430cdd21f5d4 /comm/OLD/Server.h | |
parent | 05ab076e1c2a9ca16472f9a6b47b8d22914b3783 (diff) | |
download | ivy-league-ba066c34dde204aa192d03a23a81356374d93731.zip ivy-league-ba066c34dde204aa192d03a23a81356374d93731.tar.gz ivy-league-ba066c34dde204aa192d03a23a81356374d93731.tar.bz2 ivy-league-ba066c34dde204aa192d03a23a81356374d93731.tar.xz |
Initial revision
Diffstat (limited to 'comm/OLD/Server.h')
-rw-r--r-- | comm/OLD/Server.h | 77 |
1 files changed, 77 insertions, 0 deletions
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 <UchClient> 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_ */ |