Fixed a number of issues with NetworkInfoDataItemBase
There are a couple of issues. NetworkInfoDataItemBase objects might be from OsAgent or GnssLocationProvider. The two sources actually have mTypes defined differently. In addtion, when there are different types of connections such as wifi / mobile, getting connected / disconnected independently, clients need to be all notified correctly. Right now, if mConnected hasn't changed, no updates are send. For exmple, if mobile is connected, later wifi gets connected too, clients won't know. SystemStatus is also updated to get updated / colated informtion. In the above example, SystemStatus's top record would record as both mobile and wifi are connected. Change-Id: I1825902247fe1d4e6363f5e24a75be7e984d0dc4 CRs-Fixed: 2221114
This commit is contained in:
parent
36da980fea
commit
80e09f69b6
5 changed files with 107 additions and 117 deletions
|
@ -1250,8 +1250,7 @@ IOsObserver* SystemStatus::getOsObserver()
|
|||
}
|
||||
|
||||
SystemStatus::SystemStatus(const MsgTask* msgTask) :
|
||||
mSysStatusObsvr(this, msgTask),
|
||||
mConnected(false)
|
||||
mSysStatusObsvr(this, msgTask)
|
||||
{
|
||||
int result = 0;
|
||||
ENTRY_LOG ();
|
||||
|
@ -1301,17 +1300,10 @@ SystemStatus::SystemStatus(const MsgTask* msgTask) :
|
|||
/******************************************************************************
|
||||
SystemStatus - storing dataitems
|
||||
******************************************************************************/
|
||||
template <typename TYPE_SYSTEMSTATUS_ITEM, typename TYPE_REPORT, typename TYPE_ITEMBASE>
|
||||
bool SystemStatus::setItemBaseinReport(TYPE_REPORT& report, const TYPE_ITEMBASE& s)
|
||||
{
|
||||
TYPE_SYSTEMSTATUS_ITEM sout(s);
|
||||
return setIteminReport(report, sout);
|
||||
}
|
||||
|
||||
template <typename TYPE_REPORT, typename TYPE_ITEM>
|
||||
bool SystemStatus::setIteminReport(TYPE_REPORT& report, const TYPE_ITEM& s)
|
||||
bool SystemStatus::setIteminReport(TYPE_REPORT& report, TYPE_ITEM&& s)
|
||||
{
|
||||
if (!report.empty() && report.back().equals(s)) {
|
||||
if (!report.empty() && report.back().equals(static_cast<TYPE_ITEM&>(s.collate(report.back())))) {
|
||||
// there is no change - just update reported timestamp
|
||||
report.back().mUtcReported = s.mUtcReported;
|
||||
return false;
|
||||
|
@ -1449,94 +1441,92 @@ bool SystemStatus::eventDataItemNotify(IDataItemCore* dataitem)
|
|||
switch(dataitem->getId())
|
||||
{
|
||||
case AIRPLANEMODE_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusAirplaneMode>(mCache.mAirplaneMode,
|
||||
*(static_cast<AirplaneModeDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mAirplaneMode,
|
||||
SystemStatusAirplaneMode(*(static_cast<AirplaneModeDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case ENH_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusENH>(mCache.mENH,
|
||||
*(static_cast<ENHDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mENH,
|
||||
SystemStatusENH(*(static_cast<ENHDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case GPSSTATE_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusGpsState>(mCache.mGPSState,
|
||||
*(static_cast<GPSStateDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mGPSState,
|
||||
SystemStatusGpsState(*(static_cast<GPSStateDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case NLPSTATUS_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusNLPStatus>(mCache.mNLPStatus,
|
||||
*(static_cast<NLPStatusDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mNLPStatus,
|
||||
SystemStatusNLPStatus(*(static_cast<NLPStatusDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case WIFIHARDWARESTATE_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusWifiHardwareState>(mCache.mWifiHardwareState,
|
||||
*(static_cast<WifiHardwareStateDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mWifiHardwareState,
|
||||
SystemStatusWifiHardwareState(*(static_cast<WifiHardwareStateDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case NETWORKINFO_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusNetworkInfo>(mCache.mNetworkInfo,
|
||||
*(static_cast<NetworkInfoDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mNetworkInfo,
|
||||
SystemStatusNetworkInfo(*(static_cast<NetworkInfoDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case RILSERVICEINFO_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusServiceInfo>(mCache.mRilServiceInfo,
|
||||
*(static_cast<RilServiceInfoDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mRilServiceInfo,
|
||||
SystemStatusServiceInfo(*(static_cast<RilServiceInfoDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case RILCELLINFO_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusRilCellInfo>(mCache.mRilCellInfo,
|
||||
*(static_cast<RilCellInfoDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mRilCellInfo,
|
||||
SystemStatusRilCellInfo(*(static_cast<RilCellInfoDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case SERVICESTATUS_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusServiceStatus>(mCache.mServiceStatus,
|
||||
*(static_cast<ServiceStatusDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mServiceStatus,
|
||||
SystemStatusServiceStatus(*(static_cast<ServiceStatusDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case MODEL_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusModel>(mCache.mModel,
|
||||
*(static_cast<ModelDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mModel,
|
||||
SystemStatusModel(*(static_cast<ModelDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case MANUFACTURER_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusManufacturer>(mCache.mManufacturer,
|
||||
*(static_cast<ManufacturerDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mManufacturer,
|
||||
SystemStatusManufacturer(*(static_cast<ManufacturerDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case ASSISTED_GPS_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusAssistedGps>(mCache.mAssistedGps,
|
||||
*(static_cast<AssistedGpsDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mAssistedGps,
|
||||
SystemStatusAssistedGps(*(static_cast<AssistedGpsDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case SCREEN_STATE_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusScreenState>(mCache.mScreenState,
|
||||
*(static_cast<ScreenStateDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mScreenState,
|
||||
SystemStatusScreenState(*(static_cast<ScreenStateDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case POWER_CONNECTED_STATE_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusPowerConnectState>(mCache.mPowerConnectState,
|
||||
*(static_cast<PowerConnectStateDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mPowerConnectState,
|
||||
SystemStatusPowerConnectState(*(static_cast<PowerConnectStateDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case TIMEZONE_CHANGE_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusTimeZoneChange>(mCache.mTimeZoneChange,
|
||||
*(static_cast<TimeZoneChangeDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mTimeZoneChange,
|
||||
SystemStatusTimeZoneChange(*(static_cast<TimeZoneChangeDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case TIME_CHANGE_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusTimeChange>(mCache.mTimeChange,
|
||||
*(static_cast<TimeChangeDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mTimeChange,
|
||||
SystemStatusTimeChange(*(static_cast<TimeChangeDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case WIFI_SUPPLICANT_STATUS_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusWifiSupplicantStatus>(
|
||||
mCache.mWifiSupplicantStatus,
|
||||
*(static_cast<WifiSupplicantStatusDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mWifiSupplicantStatus,
|
||||
SystemStatusWifiSupplicantStatus(*(static_cast<WifiSupplicantStatusDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case SHUTDOWN_STATE_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusShutdownState>(mCache.mShutdownState,
|
||||
*(static_cast<ShutdownStateDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mShutdownState,
|
||||
SystemStatusShutdownState(*(static_cast<ShutdownStateDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case TAC_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusTac>(mCache.mTac,
|
||||
*(static_cast<TacDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mTac,
|
||||
SystemStatusTac(*(static_cast<TacDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case MCCMNC_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusMccMnc>(mCache.mMccMnc,
|
||||
*(static_cast<MccmncDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mMccMnc,
|
||||
SystemStatusMccMnc(*(static_cast<MccmncDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case BTLE_SCAN_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusBtDeviceScanDetail>(mCache.mBtDeviceScanDetail,
|
||||
*(static_cast<BtDeviceScanDetailsDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mBtDeviceScanDetail,
|
||||
SystemStatusBtDeviceScanDetail(*(static_cast<BtDeviceScanDetailsDataItemBase*>(dataitem))));
|
||||
break;
|
||||
case BT_SCAN_DATA_ITEM_ID:
|
||||
ret = setItemBaseinReport<SystemStatusBtleDeviceScanDetail>(
|
||||
mCache.mBtLeDeviceScanDetail,
|
||||
*(static_cast<BtLeDeviceScanDetailsDataItemBase*>(dataitem)));
|
||||
ret = setIteminReport(mCache.mBtLeDeviceScanDetail,
|
||||
SystemStatusBtleDeviceScanDetail(*(static_cast<BtLeDeviceScanDetailsDataItemBase*>(dataitem))));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -1689,13 +1679,10 @@ bool SystemStatus::setDefaultGnssEngineStates(void)
|
|||
******************************************************************************/
|
||||
bool SystemStatus::eventConnectionStatus(bool connected, int8_t type)
|
||||
{
|
||||
if (connected != mConnected) {
|
||||
mConnected = connected;
|
||||
// send networkinof dataitem to systemstatus observer clients
|
||||
SystemStatusNetworkInfo s(type, "", "", false, connected, false);
|
||||
mSysStatusObsvr.notify({&s});
|
||||
|
||||
// send networkinof dataitem to systemstatus observer clients
|
||||
SystemStatusNetworkInfo s(type, "", "", false, connected, false);
|
||||
mSysStatusObsvr.notify({&s});
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -77,8 +77,11 @@ public:
|
|||
mUtcTime.tv_nsec = tv.tv_nsec;
|
||||
mUtcReported = mUtcTime;
|
||||
};
|
||||
virtual ~SystemStatusItemBase() { };
|
||||
virtual void dump(void) { };
|
||||
virtual ~SystemStatusItemBase() {};
|
||||
inline virtual SystemStatusItemBase& collate(SystemStatusItemBase&) {
|
||||
return *this;
|
||||
}
|
||||
virtual void dump(void) {};
|
||||
};
|
||||
|
||||
class SystemStatusLocation : public SystemStatusItemBase
|
||||
|
@ -93,7 +96,7 @@ public:
|
|||
const GpsLocationExtended& locationEx) :
|
||||
mValid(true),
|
||||
mLocation(location),
|
||||
mLocationEx(locationEx) { }
|
||||
mLocationEx(locationEx) {}
|
||||
bool equals(const SystemStatusLocation& peer);
|
||||
void dump(void);
|
||||
};
|
||||
|
@ -457,6 +460,7 @@ public:
|
|||
class SystemStatusNetworkInfo : public SystemStatusItemBase,
|
||||
public NetworkInfoDataItemBase
|
||||
{
|
||||
NetworkInfoDataItemBase* mSrcObjPtr;
|
||||
public:
|
||||
inline SystemStatusNetworkInfo(
|
||||
int32_t type=0,
|
||||
|
@ -466,18 +470,21 @@ public:
|
|||
bool connected=false,
|
||||
bool roaming=false) :
|
||||
NetworkInfoDataItemBase(
|
||||
(NetworkType)type,
|
||||
type,
|
||||
typeName,
|
||||
subTypeName,
|
||||
available,
|
||||
connected,
|
||||
roaming) {}
|
||||
roaming),
|
||||
mSrcObjPtr(nullptr) {}
|
||||
inline SystemStatusNetworkInfo(const NetworkInfoDataItemBase& itemBase) :
|
||||
NetworkInfoDataItemBase(itemBase) {
|
||||
NetworkInfoDataItemBase(itemBase),
|
||||
mSrcObjPtr((NetworkInfoDataItemBase*)&itemBase) {
|
||||
mType = itemBase.getType();
|
||||
}
|
||||
inline bool equals(const SystemStatusNetworkInfo& peer) {
|
||||
if ((mType == peer.mType) &&
|
||||
if ((mAllTypes == peer.mAllTypes) &&
|
||||
(mTypeName == peer.mTypeName) &&
|
||||
(mSubTypeName == peer.mSubTypeName) &&
|
||||
(mAvailable == peer.mAvailable) &&
|
||||
|
@ -487,8 +494,24 @@ public:
|
|||
}
|
||||
return false;
|
||||
}
|
||||
inline virtual SystemStatusItemBase& collate(SystemStatusItemBase& curInfo) {
|
||||
uint64_t allTypes = (static_cast<SystemStatusNetworkInfo&>(curInfo)).mAllTypes;
|
||||
if (mConnected) {
|
||||
mAllTypes |= allTypes;
|
||||
} else if (0 != mAllTypes) {
|
||||
mAllTypes = (allTypes & (~mAllTypes));
|
||||
} // else (mConnected == false && mAllTypes == 0)
|
||||
// we keep mAllTypes as 0, which means no more connections.
|
||||
|
||||
if (nullptr != mSrcObjPtr) {
|
||||
// this is critical, changing mAllTypes of the original obj
|
||||
mSrcObjPtr->mAllTypes = mAllTypes;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
inline void dump(void) override {
|
||||
LOC_LOGD("NetworkInfo: type=%u connected=%u", mType, mConnected);
|
||||
LOC_LOGD("NetworkInfo: mAllTypes=%" PRIx64 " connected=%u mType=%x",
|
||||
mAllTypes, mConnected, mType);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -783,13 +806,9 @@ private:
|
|||
// Data members
|
||||
static pthread_mutex_t mMutexSystemStatus;
|
||||
SystemStatusReports mCache;
|
||||
bool mConnected;
|
||||
|
||||
template <typename TYPE_SYSTEMSTATUS_ITEM, typename TYPE_REPORT, typename TYPE_ITEMBASE>
|
||||
bool setItemBaseinReport(TYPE_REPORT& report, const TYPE_ITEMBASE& s);
|
||||
|
||||
template <typename TYPE_REPORT, typename TYPE_ITEM>
|
||||
bool setIteminReport(TYPE_REPORT& report, const TYPE_ITEM& s);
|
||||
bool setIteminReport(TYPE_REPORT& report, TYPE_ITEM&& s);
|
||||
|
||||
// set default dataitem derived item in report cache
|
||||
template <typename TYPE_REPORT, typename TYPE_ITEM>
|
||||
|
|
|
@ -221,9 +221,23 @@ protected:
|
|||
|
||||
class NetworkInfoDataItemBase : public IDataItemCore {
|
||||
public:
|
||||
enum NetworkType {
|
||||
TYPE_MOBILE,
|
||||
TYPE_WIFI,
|
||||
TYPE_ETHERNET,
|
||||
TYPE_BLUETOOTH,
|
||||
TYPE_MMS,
|
||||
TYPE_SUPL,
|
||||
TYPE_DUN,
|
||||
TYPE_HIPRI,
|
||||
TYPE_WIMAX,
|
||||
TYPE_UNKNOWN,
|
||||
};
|
||||
NetworkInfoDataItemBase(
|
||||
int32_t type, string typeName, string subTypeName,
|
||||
NetworkType initialType, int32_t type, string typeName, string subTypeName,
|
||||
bool available, bool connected, bool roaming ):
|
||||
mAllTypes((initialType >= TYPE_UNKNOWN || initialType < TYPE_MOBILE) ?
|
||||
0 : (1<<initialType)),
|
||||
mType(type),
|
||||
mTypeName(typeName),
|
||||
mSubTypeName(subTypeName),
|
||||
|
@ -235,22 +249,12 @@ public:
|
|||
inline virtual DataItemId getId() { return mId; }
|
||||
virtual void stringify(string& /*valueStr*/) {}
|
||||
virtual int32_t copy(IDataItemCore* /*src*/, bool* /*dataItemCopied = NULL*/) {return 1;}
|
||||
enum NetworkType {
|
||||
TYPE_UNKNOWN,
|
||||
TYPE_MOBILE,
|
||||
TYPE_WIFI,
|
||||
TYPE_ETHERNET,
|
||||
TYPE_BLUETOOTH,
|
||||
TYPE_MMS,
|
||||
TYPE_SUPL,
|
||||
TYPE_DUN,
|
||||
TYPE_HIPRI,
|
||||
TYPE_WIMAX
|
||||
};
|
||||
inline virtual NetworkType getType(void) const {
|
||||
return (NetworkType)mType;
|
||||
}
|
||||
// Data members
|
||||
inline uint64_t getAllTypes() { return mAllTypes; }
|
||||
// Data members
|
||||
uint64_t mAllTypes;
|
||||
int32_t mType;
|
||||
string mTypeName;
|
||||
string mSubTypeName;
|
||||
|
|
|
@ -69,18 +69,9 @@ bool XtraSystemStatusObserver::updateLockStatus(uint32_t lock) {
|
|||
return ( send(LOC_IPC_XTRA, ss.str()) );
|
||||
}
|
||||
|
||||
bool XtraSystemStatusObserver::updateConnectionStatus(bool connected, int32_t type) {
|
||||
bool XtraSystemStatusObserver::updateConnections(uint64_t allConnections) {
|
||||
mIsConnectivityStatusKnown = true;
|
||||
|
||||
if (connected) {
|
||||
mConnections.insert(type);
|
||||
} else {
|
||||
if (-1 == type) { // -1 for disconnecting all connections
|
||||
mConnections.clear();
|
||||
} else {
|
||||
mConnections.erase(type);
|
||||
}
|
||||
}
|
||||
mConnections = allConnections;
|
||||
|
||||
if (!mReqStatusReceived) {
|
||||
return true;
|
||||
|
@ -88,8 +79,7 @@ bool XtraSystemStatusObserver::updateConnectionStatus(bool connected, int32_t ty
|
|||
|
||||
stringstream ss;
|
||||
ss << "connection";
|
||||
ss << " " << (connected ? "1" : "0");
|
||||
ss << " " << type;
|
||||
ss << " " << mConnections;
|
||||
return ( send(LOC_IPC_XTRA, ss.str()) );
|
||||
}
|
||||
|
||||
|
@ -132,13 +122,6 @@ bool XtraSystemStatusObserver::updateXtraThrottle(const bool enabled) {
|
|||
return ( send(LOC_IPC_XTRA, ss.str()) );
|
||||
}
|
||||
|
||||
static inline ostream& operator<<(ostream& os, CONNECTIONS& data) {
|
||||
for (auto elem : data) {
|
||||
os << elem << ' ';
|
||||
}
|
||||
return os;
|
||||
}
|
||||
|
||||
inline bool XtraSystemStatusObserver::onStatusRequested(int32_t xtraStatusUpdated) {
|
||||
mReqStatusReceived = true;
|
||||
|
||||
|
@ -248,8 +231,7 @@ void XtraSystemStatusObserver::notify(const list<IDataItemCore*>& dlist)
|
|||
{
|
||||
NetworkInfoDataItemBase* networkInfo =
|
||||
static_cast<NetworkInfoDataItemBase*>(each);
|
||||
mXtraSysStatObj->updateConnectionStatus(networkInfo->mConnected,
|
||||
networkInfo->mType);
|
||||
mXtraSysStatObj->updateConnections(networkInfo->getAllTypes());
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -33,22 +33,20 @@
|
|||
#include <MsgTask.h>
|
||||
#include <LocIpc.h>
|
||||
#include <LocTimer.h>
|
||||
#include <set>
|
||||
|
||||
using namespace std;
|
||||
using loc_core::IOsObserver;
|
||||
using loc_core::IDataItemObserver;
|
||||
using loc_core::IDataItemCore;
|
||||
using loc_util::LocIpc;
|
||||
using CONNECTIONS = set<int32_t>;
|
||||
|
||||
class XtraSystemStatusObserver : public IDataItemObserver, public LocIpc{
|
||||
public :
|
||||
// constructor & destructor
|
||||
inline XtraSystemStatusObserver(IOsObserver* sysStatObs, const MsgTask* msgTask):
|
||||
mSystemStatusObsrvr(sysStatObs), mMsgTask(msgTask),
|
||||
mGpsLock(-1), mXtraThrottle(true), mReqStatusReceived(false),
|
||||
mIsConnectivityStatusKnown (false), mDelayLocTimer(*this) {
|
||||
mGpsLock(-1), mConnections(0), mXtraThrottle(true), mReqStatusReceived(false),
|
||||
mDelayLocTimer(*this), mIsConnectivityStatusKnown (false) {
|
||||
subscribe(true);
|
||||
startListeningNonBlocking(LOC_IPC_HAL);
|
||||
mDelayLocTimer.start(100 /*.1 sec*/, false);
|
||||
|
@ -63,7 +61,7 @@ public :
|
|||
virtual void notify(const list<IDataItemCore*>& dlist);
|
||||
|
||||
bool updateLockStatus(uint32_t lock);
|
||||
bool updateConnectionStatus(bool connected, int32_t type);
|
||||
bool updateConnections(uint64_t allConnections);
|
||||
bool updateTac(const string& tac);
|
||||
bool updateMccMnc(const string& mccmnc);
|
||||
bool updateXtraThrottle(const bool enabled);
|
||||
|
@ -77,7 +75,7 @@ private:
|
|||
IOsObserver* mSystemStatusObsrvr;
|
||||
const MsgTask* mMsgTask;
|
||||
int32_t mGpsLock;
|
||||
CONNECTIONS mConnections;
|
||||
uint64_t mConnections;
|
||||
string mTac;
|
||||
string mMccmnc;
|
||||
bool mXtraThrottle;
|
||||
|
|
Loading…
Reference in a new issue