00001 #ifndef DISTBOSS_SERVER_H 00002 #define DISTBOSS_SERVER_H 00003 00004 #include "DistBossServer/JobOptionsMgr.h" 00005 #include "DistBossServer/RpcInterface.h" 00006 #include "DistBossServer/ServerExitHandler.h" 00007 #include "DistBossServer/ServerErrorHandler.h" 00008 00009 class DistBossServer 00010 { 00011 public : 00012 00013 DistBossServer(const std::string& jobOpt); 00014 ~DistBossServer(); 00015 00016 const std::string& serverName() const { return m_serverName; } 00017 00018 int run(); 00019 00020 00021 private : 00022 00023 DistBossServer(); //stop default 00024 00025 00026 private : 00027 00028 JobOptionsMgr m_optMgr; 00029 RpcInterface* m_readerRpc; 00030 std::vector<RpcInterface*> m_writerRpcs; 00031 00032 ServerExitHandler* m_exitHandler; 00033 ServerErrorHandler* m_errorHandler; 00034 00035 static const std::string m_serverName; 00036 static std::string autoServerName(); 00037 00038 // planned services @ server side 00039 enum SvcType { 00040 RawEvtSvc, 00041 SimSeedSvc, 00042 RootEvtSvc, 00043 WriteDst, 00044 WriteRec, 00045 WriteTuple, 00046 WriteHist 00047 }; 00048 static const std::string m_svc[7]; 00049 }; 00050 00051 #endif