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