#include "UsctStateManager.h" #include "event/EventCenter.h" UsctStateManager* UsctStateManager::getInstance() { static UsctStateManager instance; return &instance; } UsctStateManager::UsctStateManager(QObject* aParent) : QObject (aParent) , mState() { mState.insert(DmsState, true); mState.insert(DmsConnectionState, true); mState.insert(ReconState, true); mState.insert(ReconMppsState, true); mState.insert(ReconPacsState, true); mState.insert(ReconConnectionState, true); mState.insert(ReconEmptyScanState, true); mState.insert(ReconDBState, true); } void UsctStateManager::setState(int aStateCode, bool aState) { bool stateTemp = mState[aStateCode]; mState[aStateCode] = aState; if(stateTemp != aState) { bool UsctState = getUsctState(); EventCenter::Default()->triggerEvent(UsctStateUpdated, nullptr, (QObject*)&UsctState); } mState[aStateCode] = aState; if(aState) { int msg = aStateCode; EventCenter::Default()->triggerEvent(ErrorStateUnactive, nullptr, (QObject*)&msg); } { QPair msg(QPair(aStateCode, getStateErrorMessage(aStateCode))); EventCenter::Default()->triggerEvent(ErrorStateActive, nullptr, (QObject*)&msg); } } bool UsctStateManager::getUsctState() { bool result = true; QMap::const_iterator it; for (it = mState.constBegin(); it != mState.constEnd(); ++it) { result = result & it.value(); } return result; } QString UsctStateManager::getStateErrorMessage(int aStateCode) { switch (aStateCode) { case DmsState : return "Dms Error"; case DmsConnectionState : return "Dms Connection Error"; case ReconState : return "Recon Fatal Error"; case ReconMppsState : return "Recon Mpps Connection Error"; case ReconPacsState : return "Recon Pacs Connection Error"; case ReconEmptyScanState : return "Recon Empty Scan Data Error"; case ReconDBState : return "Recon Database Connection Error"; default: return "Unknow Error"; } }