00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #pragma once
00024
00025 #include "../pch.h"
00026
00027 namespace mongo {
00028
00029 class MessageHandler {
00030 public:
00031 virtual ~MessageHandler() {}
00032
00033 virtual void connected( AbstractMessagingPort* p ) = 0;
00034 virtual void process( Message& m , AbstractMessagingPort* p , LastError * err ) = 0;
00035 virtual void disconnected( AbstractMessagingPort* p ) = 0;
00036 };
00037
00038 class MessageServer {
00039 public:
00040 struct Options {
00041 int port;
00042 string ipList;
00043
00044 Options() : port(0), ipList("") {}
00045 };
00046
00047 virtual ~MessageServer() {}
00048 virtual void run() = 0;
00049 virtual void setAsTimeTracker() = 0;
00050 };
00051
00052
00053 MessageServer * createServer( const MessageServer::Options& opts , MessageHandler * handler );
00054 }