00001
00002 Copyright (c) 2001, Lee Patterson & Ant Works Software
00003 http://ssobjects.sourceforge.net
00004
00005 created : November 13, 2000
00006 filename : serverhandler.h
00007 author : Lee Patterson (lee@antws.com)
00008
00009 purpose : Sample of how to write a server using communicable
00010 classes.
00011
00012 Server handler is an object that handles one type
00013 of session. For instance, in a server where connections
00014 could come from a client or from another server,
00015 the way it is handled may be radically different.
00016
00017 *********************************************************************/
00018
00019 #ifndef SERVERHANDLER_H
00020 #define SERVERHANDLER_H
00021
00022 namespace ssobjects
00023 {
00024
00025 class PacketMessage;
00026 class SimpleServer;
00027 class ServerSocket;
00028
00029
00030
00031
00032 class ServerHandler
00033 {
00034 protected:
00035 ServerSocket* m_psocket;
00036 SimpleServer* m_pserver;
00037
00038 public:
00039 virtual void processMsg(PacketMessage* pmsg) = 0;
00040
00041 public:
00042 ServerSocket* mysocket() {return m_psocket;}
00043 SimpleServer* server() {return m_pserver;}
00044
00045 public:
00046 ServerHandler(ServerSocket* psocket,SimpleServer* pserver);
00047 virtual ~ServerHandler();
00048
00049 private:
00050
00051
00052 ServerHandler(const ServerHandler& handler)
00053 : m_psocket(handler.m_psocket),m_pserver(handler.m_pserver) {}
00054 ServerHandler& operator=(const ServerHandler& handler)
00055 {
00056 if(&handler==this)
00057 return *this;
00058 m_psocket = handler.m_psocket;
00059 m_pserver = handler.m_pserver;
00060 return *this;
00061 }
00062 };
00063
00064 };
00065
00066 #endif