00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "CServerTaskBarReceiver.h"
00020 #include "CServer.h"
00021 #include "CLock.h"
00022 #include "CStringUtil.h"
00023 #include "IEventQueue.h"
00024 #include "CArch.h"
00025 #include "Version.h"
00026
00027
00028
00029
00030
00031 CServerTaskBarReceiver::CServerTaskBarReceiver() :
00032 m_state(kNotRunning)
00033 {
00034
00035 }
00036
00037 CServerTaskBarReceiver::~CServerTaskBarReceiver()
00038 {
00039
00040 }
00041
00042 void
00043 CServerTaskBarReceiver::updateStatus(CServer* server, const CString& errorMsg)
00044 {
00045 {
00046
00047 m_errorMessage = errorMsg;
00048 if (server == NULL) {
00049 if (m_errorMessage.empty()) {
00050 m_state = kNotRunning;
00051 }
00052 else {
00053 m_state = kNotWorking;
00054 }
00055 }
00056 else {
00057 m_clients.clear();
00058 server->getClients(m_clients);
00059 if (m_clients.size() <= 1) {
00060 m_state = kNotConnected;
00061 }
00062 else {
00063 m_state = kConnected;
00064 }
00065 }
00066
00067
00068 onStatusChanged(server);
00069 }
00070
00071
00072 ARCH->updateReceiver(this);
00073 }
00074
00075 CServerTaskBarReceiver::EState
00076 CServerTaskBarReceiver::getStatus() const
00077 {
00078 return m_state;
00079 }
00080
00081 const CString&
00082 CServerTaskBarReceiver::getErrorMessage() const
00083 {
00084 return m_errorMessage;
00085 }
00086
00087 const CServerTaskBarReceiver::CClients&
00088 CServerTaskBarReceiver::getClients() const
00089 {
00090 return m_clients;
00091 }
00092
00093 void
00094 CServerTaskBarReceiver::quit()
00095 {
00096 EVENTQUEUE->addEvent(CEvent(CEvent::kQuit));
00097 }
00098
00099 void
00100 CServerTaskBarReceiver::onStatusChanged(CServer*)
00101 {
00102
00103 }
00104
00105 void
00106 CServerTaskBarReceiver::lock() const
00107 {
00108
00109 }
00110
00111 void
00112 CServerTaskBarReceiver::unlock() const
00113 {
00114
00115 }
00116
00117 std::string
00118 CServerTaskBarReceiver::getToolTip() const
00119 {
00120 switch (m_state) {
00121 case kNotRunning:
00122 return CStringUtil::print("%s: Not running", kAppVersion);
00123
00124 case kNotWorking:
00125 return CStringUtil::print("%s: %s",
00126 kAppVersion, m_errorMessage.c_str());
00127
00128 case kNotConnected:
00129 return CStringUtil::print("%s: Waiting for clients", kAppVersion);
00130
00131 case kConnected:
00132 return CStringUtil::print("%s: Connected", kAppVersion);
00133
00134 default:
00135 return "";
00136 }
00137 }
00138
00139 CEvent::Type
00140 CServerTaskBarReceiver::getReloadConfigEvent()
00141 {
00142 return CServerApp::instance().getReloadConfigEvent();
00143 }
00144
00145 CEvent::Type
00146 CServerTaskBarReceiver::getForceReconnectEvent()
00147 {
00148 return CServerApp::instance().getForceReconnectEvent();
00149 }
00150
00151 CEvent::Type
00152 CServerTaskBarReceiver::getResetServerEvent()
00153 {
00154 return CServerApp::instance().getResetServerEvent();
00155 }