• Main Page
  • Classes
  • Files
  • File List

CServerTaskBarReceiver.cpp

00001 /*
00002  * synergy -- mouse and keyboard sharing utility
00003  * Copyright (C) 2012 Bolton Software Ltd.
00004  * Copyright (C) 2003 Chris Schoeneman
00005  * 
00006  * This package is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU General Public License
00008  * found in the file COPYING that should have accompanied this file.
00009  * 
00010  * This package is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
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 // CServerTaskBarReceiver
00029 //
00030 
00031 CServerTaskBarReceiver::CServerTaskBarReceiver() :
00032     m_state(kNotRunning)
00033 {
00034     // do nothing
00035 }
00036 
00037 CServerTaskBarReceiver::~CServerTaskBarReceiver()
00038 {
00039     // do nothing
00040 }
00041 
00042 void
00043 CServerTaskBarReceiver::updateStatus(CServer* server, const CString& errorMsg)
00044 {
00045     {
00046         // update our status
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         // let subclasses have a go
00068         onStatusChanged(server);
00069     }
00070 
00071     // tell task bar
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     // do nothing
00103 }
00104 
00105 void
00106 CServerTaskBarReceiver::lock() const
00107 {
00108     // do nothing
00109 }
00110 
00111 void
00112 CServerTaskBarReceiver::unlock() const
00113 {
00114     // do nothing
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 }

Generated on Tue Jun 18 2013 00:00:06 for Synergy by  doxygen 1.7.1