6#include <QtCore/QThread>
8#include <QtCore/QTimer>
9#include <QtCore/QFutureWatcher>
12#include <ilog/TLoggerCompWrap.h>
15#include <imtbase/ISystemStatus.h>
16#include <imtbase/TModelUpdateBinder.h>
17#include <imtbase/IUrlParam.h>
18#include <imtcom/IConnectionStatusProvider.h>
19#include <imtdb/IDatabaseServerConnectionChecker.h>
26class CSystemStatusComp:
28 public ilog::CLoggerComponentBase,
29 virtual public imtbase::ISystemStatus
32 typedef ilog::CLoggerComponentBase BaseClass;
34 I_BEGIN_COMPONENT(CSystemStatusComp);
35 I_REGISTER_INTERFACE(imtbase::ISystemStatus);
36 I_ASSIGN(m_connectionStatusProviderCompPtr,
"ConnectionStatusProvider",
"Server connection status provider",
false,
"ConnectionStatusProvider");
37 I_ASSIGN(m_dbServerConnectionCheckerCompPtr,
"DatabaseServerConnectionChecker",
"Database server connection status provider",
false,
"DatabaseServerConnectionChecker");
38 I_ASSIGN(m_slaveSystemStatusCompPtr,
"SlaveSystemStatus",
"Slave system status",
false,
"SlaveSystemStatus");
39 I_ASSIGN(m_checkIntervalAttrPtr,
"CheckInterval",
"Interval for backup timer (in sec)",
false, 60);
40 I_ASSIGN(m_checkDbStatusAttrPtr,
"CheckDatabaseStatus",
"Check database system status",
false,
true);
41 I_ASSIGN(m_serverNameAttrPtr,
"ServerName",
"The name of the server to which the connection is being checked",
false,
"");
42 I_ASSIGN(m_urlParamCompPtr,
"UrlParam",
"The object holds connection's url.",
false,
"UrlParam");
48 virtual SystemStatus GetSystemStatus(QString& errorMessage)
const override;
49 virtual void UpdateSystemStatus()
override;
51 virtual imtdb::IDatabaseServerConnectionChecker* GetDatabaseServerConnectionStatusProvider()
const override;
55 virtual void OnComponentCreated()
override;
56 virtual void OnComponentDestroyed()
override;
58 void OnUrlParamChanged(
const istd::IChangeable::ChangeSet& changeSet,
const imtbase::IUrlParam* urlParamPtr);
61 virtual bool StartCheckSystemStatus();
62 virtual bool StopCheckSystemStatus();
63 void SetStatus(SystemStatus status);
64 void OnCheckStatusFinished();
69 SystemStatus m_status;
70 QString m_statusMessage;
72 QFutureWatcher<void> m_checkStatusFutureWatcher;
73 SystemStatus m_futureResultStatus;
79 I_REF(imtdb::IDatabaseServerConnectionChecker, m_dbServerConnectionCheckerCompPtr);
80 I_REF(imtbase::ISystemStatus, m_slaveSystemStatusCompPtr);
81 I_ATTR(
int, m_checkIntervalAttrPtr);
82 I_ATTR(
bool, m_checkDbStatusAttrPtr);
83 I_ATTR(QByteArray, m_serverNameAttrPtr);
Interface for monitoring network connection status with observable state changes.