diff options
Diffstat (limited to 'gps/core/SystemStatusOsObserver.cpp')
-rw-r--r-- | gps/core/SystemStatusOsObserver.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gps/core/SystemStatusOsObserver.cpp b/gps/core/SystemStatusOsObserver.cpp index 319f1d7..541b5fd 100644 --- a/gps/core/SystemStatusOsObserver.cpp +++ b/gps/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"), mClientIndex(IndexFactory<IDataItemObserver*, DataItemId> :: createClientIndex()), mDataItemIndex(IndexFactory<IDataItemObserver*, DataItemId> :: createDataItemIndex()) @@ -366,11 +368,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); } } |