summaryrefslogtreecommitdiff
path: root/core/SystemStatusOsObserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/SystemStatusOsObserver.cpp')
-rw-r--r--core/SystemStatusOsObserver.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/core/SystemStatusOsObserver.cpp b/core/SystemStatusOsObserver.cpp
index dc08a76..2fdd19f 100644
--- a/core/SystemStatusOsObserver.cpp
+++ b/core/SystemStatusOsObserver.cpp
@@ -39,7 +39,9 @@
namespace loc_core
{
-SystemStatusOsObserver::SystemStatusOsObserver(const MsgTask* msgTask) :
+SystemStatusOsObserver::SystemStatusOsObserver(
+ SystemStatus* systemstatus, const MsgTask* msgTask) :
+ mSystemStatus(systemstatus),
mAddress("SystemStatusOsObserver"),
#ifdef USE_GLIB
mBackHaulConnectReqCount(0),
@@ -369,11 +371,11 @@ void SystemStatusOsObserver::notify(const list<IDataItemCore*>& dlist)
// Copy contents into the newly created data item
di->copy(each);
- dataItemList.push_back(di);
+
// Request systemstatus to record this dataitem in its cache
- SystemStatus* systemstatus = SystemStatus::getInstance(mContext.mMsgTask);
- if(nullptr != systemstatus) {
- systemstatus->eventDataItemNotify(di);
+ if (mSystemStatus->eventDataItemNotify(di)) {
+ // add this dataitem if updated from last one
+ dataItemList.push_back(di);
}
}