aboutsummaryrefslogtreecommitdiff
path: root/gps/core/SystemStatusOsObserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gps/core/SystemStatusOsObserver.cpp')
-rw-r--r--gps/core/SystemStatusOsObserver.cpp12
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);
}
}