diff options
Diffstat (limited to 'core/SystemStatusOsObserver.cpp')
-rw-r--r-- | core/SystemStatusOsObserver.cpp | 12 |
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); } } |