sm8450-common: Import gps from LA.VENDOR.1.0.r1-12800-WAIPIO.0
Change-Id: Ia76265a8c3326f2b5f9f260ce98807276af80ee3
This commit is contained in:
925
gps/core/data-items/DataItemConcreteTypes.cpp
Normal file
925
gps/core/data-items/DataItemConcreteTypes.cpp
Normal file
@@ -0,0 +1,925 @@
|
||||
/* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation, nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "DataItemConcreteTypes.h"
|
||||
#include <inttypes.h>
|
||||
#include <log_util.h>
|
||||
|
||||
#define ENH_FIELD_ENABLED "IS_QUALCOMM_ENHANCED_PROVIDER_ENABLED"
|
||||
#define AIRPLANEMODE_FIELD_MODE "IS_AIRPLANE_MODE_ON"
|
||||
#define ENH_FIELD_ENABLED "IS_QUALCOMM_ENHANCED_PROVIDER_ENABLED"
|
||||
#define GPSSTATE_FIELD_ENABLED "IS_GPS_PROVIDER_ENABLED"
|
||||
#define NLPSTATUS_FIELD_ENABLED "IS_NETWORK_PROVIDER_ENABLED"
|
||||
#define WIFIHARDWARESTATE_FIELD_ENABLED "IS_WIFI_HARDWARE_ON"
|
||||
#define SCREENSTATE_FIELD_ENABLED "IS_SCREEN_ON"
|
||||
#define POWERCONNECTSTATE_FIELD_ENABLED "IS_POWER_CONNECTED"
|
||||
#define TIMEZONECHANGE_FIELD_ENABLED "IS_TIMEZONE_CHANGED"
|
||||
#define TIMECHANGE_FIELD_ENABLED "IS_TIME_CHANGED"
|
||||
#define TIMECHANGE_FIELD_CURRENT_TIME_MILLIS "CURR_TIME_MILLIS"
|
||||
#define TIMECHANGE_FIELD_RAW_OFFSET_TZ "RAW_OFFSET_TZ"
|
||||
#define TIMECHANGE_FIELD_DST_OFFSET_TZ "DST_OFFSET_TZ"
|
||||
|
||||
#define SHUTDOWN_FIELD_ENABLED "IS_SHUTDOWN"
|
||||
#define ASSISTEDGPS_FIELD_ENABLED "IS_ASSISTED_GPS_ENABLED"
|
||||
|
||||
#define NETWORKINFO_CARD "ACTIVE_NETWORK_INFO"
|
||||
#define NETWORKINFO_FIELD_TYPE "TYPE"
|
||||
#define NETWORKINFO_FIELD_TYPENAME "TYPE_NAME"
|
||||
#define NETWORKINFO_FIELD_SUBTYPENAME "SUB_TYPE_NAME"
|
||||
#define NETWORKINFO_FIELD_AVAILABLE "IS_AVAILABLE"
|
||||
#define NETWORKINFO_FIELD_CONNECTED "IS_CONNECTED"
|
||||
#define NETWORKINFO_FIELD_ROAMING "IS_ROAMING"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_0 "NETWORK_HANDLE_0"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_1 "NETWORK_HANDLE_1"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_2 "NETWORK_HANDLE_2"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_3 "NETWORK_HANDLE_3"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_4 "NETWORK_HANDLE_4"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_5 "NETWORK_HANDLE_5"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_6 "NETWORK_HANDLE_6"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_7 "NETWORK_HANDLE_7"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_8 "NETWORK_HANDLE_8"
|
||||
#define NETWORKINFO_FIELD_NETWORKHANDLE_9 "NETWORK_HANDLE_9"
|
||||
#define NETWORKINFO_FIELD_APN_NAME "APN_NAME"
|
||||
|
||||
#define SERVICESTATUS_FIELD_STATE "CELL_NETWORK_STATUS"
|
||||
#define MODEL_FIELD_NAME "MODEL"
|
||||
#define MANUFACTURER_FIELD_NAME "MANUFACTURER"
|
||||
#define OSSTATUS_CARD "ACTIVE_NETWORK_INFO"
|
||||
|
||||
#define RILSERVICEINFO_CARD "RIL-SERVICE-INFO"
|
||||
#define RILSERVICEINFO_FIELD_ARIF_TYPE_MASK "SUPPORTED-AIRINTERFACE-TYPE-MASK"
|
||||
#define RILSERVICEINFO_FIELD_CARRIER_ARIF_TYPE "CARRIER-AIRINTERFACE-TYPE"
|
||||
#define RILSERVICEINFO_FIELD_CARRIER_MCC "MOBILE-COUNTRY-CODE"
|
||||
#define RILSERVICEINFO_FIELD_CARRIER_MNC "MOBILE-NETWORK-CODE"
|
||||
#define RILSERVICEINFO_FIELD_CARRIER_NAME "HOME-CARRIER-NAME"
|
||||
|
||||
#define RILCELLINFO_CARD "RIL-CELL-UPDATE"
|
||||
#define RILCELLINFO_FIELD_NETWORK_STATUS "NETWORK-STATUS"
|
||||
#define RILCELLINFO_FIELD_RIL_TECH_TYPE "RIL-TECH-TYPE"
|
||||
#define RILLCELLINFO_FIELD_MCC "MOBILE-COUNTRY-CODE"
|
||||
#define RILLCELLINFO_FIELD_MNC "MOBILE-NETWORK-CODE"
|
||||
#define RILLCELLINFO_FIELD_LAC "LOCATION-AREA-CODE"
|
||||
#define RILLCELLINFO_FIELD_CID "CELL-ID"
|
||||
#define RILLCELLINFO_FIELD_SID "SYSTEM-ID"
|
||||
#define RILLCELLINFO_FIELD_NID "NETWORK-ID"
|
||||
#define RILLCELLINFO_FIELD_BSID "BASE-STATION-ID"
|
||||
#define RILLCELLINFO_FIELD_BSLAT "BASE-STATION-LATITUDE"
|
||||
#define RILLCELLINFO_FIELD_BSLON "BASE-STATION-LONGITUDE"
|
||||
#define RILLCELLINFO_FIELD_UTC_TIME_OFFSET "TIME-ZONE-OFFSET"
|
||||
#define RILLCELLINFO_FIELD_DAYLIGHT_TIMEZONE "IN-DAY-LIGHT-SAVING"
|
||||
#define RILLCELLINFO_FIELD_TAC "TRACKING-AREA-CODE"
|
||||
#define RILLCELLINFO_FIELD_PCI "PHYSICAL-CELL-ID"
|
||||
#define RILLCELLINFO_FIELD_NB_MODE "NB-MODE"
|
||||
#define RILLCELLINFO_FIELD_NB_EARFCN_OFFSET "NB-EARFCN-OFFSET"
|
||||
|
||||
#define WIFI_SUPPLICANT_FIELD_STATE "WIFI-SUPPLICANT-STATE"
|
||||
#define TAC_FIELD_NAME "TAC"
|
||||
#define MCCMNC_FIELD_NAME "MCCMNC"
|
||||
|
||||
#define BTLESCANDETAILS_FIELD_VALID "BTLE_VALID_DEV"
|
||||
#define BTLESCANDETAILS_FIELD_RSSI "BTLE_DEV_RSSI"
|
||||
#define BTLESCANDETAILS_FIELD_MAC "BTLE_DEV_MAC"
|
||||
#define BTLESCANDETAILS_FIELD_SCANREQ "BTLE_SCAN_REQ_TIME"
|
||||
#define BTLESCANDETAILS_FIELD_SCANSTART "BTLE_SCAN_START_TIME"
|
||||
#define BTLESCANDETAILS_FIELD_SCANRECV "BTLE_SCAN_RECV_TIME"
|
||||
#define BTLESCANDETAILS_FIELD_SCANERROR "BTLE_SCAN_ERR"
|
||||
|
||||
#define BTSCANDETAILS_FIELD_VALID "BT_VALID_DEV"
|
||||
#define BTSCANDETAILS_FIELD_RSSI "BT_DEV_RSSI"
|
||||
#define BTSCANDETAILS_FIELD_MAC "BT_DEV_MAC"
|
||||
#define BTSCANDETAILS_FIELD_SCANREQ "BT_SCAN_REQ_TIME"
|
||||
#define BTSCANDETAILS_FIELD_SCANSTART "BT_SCAN_START_TIME"
|
||||
#define BTSCANDETAILS_FIELD_SCANRECV "BT_SCAN_RECV_TIME"
|
||||
#define BTSCANDETAILS_FIELD_SCANERROR "BT_SCAN_ERR"
|
||||
|
||||
#define OEM_GTP_UPLAOD_TRIGGER_READY_FIELD_NAME "OEM-GTP-UPLOAD-TRIGGER-READY"
|
||||
#define BATTERYLEVEL_FIELD_BATTERY_PCT "BATTERY_PCT"
|
||||
|
||||
#define IN_EMERGENCY_CALL_FIELD_NAME "IS_EMERGENCY"
|
||||
|
||||
namespace loc_core
|
||||
{
|
||||
// stringify
|
||||
void AirplaneModeDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(AirplaneModeDataItem, AIRPLANEMODE_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = AIRPLANEMODE_FIELD_MODE;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mMode) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
|
||||
void ENHDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(ENHDataItem, ENH_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = ENH_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mEnabled) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void GPSStateDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(GPSStateDataItem, GPSSTATE_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = GPSSTATE_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mEnabled) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void NLPStatusDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(NLPStatusDataItem, NLPSTATUS_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = NLPSTATUS_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mEnabled) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void WifiHardwareStateDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(WifiHardwareStateDataItem,
|
||||
WIFIHARDWARESTATE_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = WIFIHARDWARESTATE_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mEnabled) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void ScreenStateDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(ScreenStateDataItem, SCREEN_STATE_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = SCREENSTATE_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mState) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void PowerConnectStateDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(PowerConnectStateDataItem,
|
||||
POWER_CONNECTED_STATE_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = POWERCONNECTSTATE_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mState) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
|
||||
void BatteryLevelDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(BatteryLevelDataItem, BATTERY_LEVEL_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr += BATTERYLEVEL_FIELD_BATTERY_PCT;
|
||||
valueStr += ": ";
|
||||
char state [12];
|
||||
snprintf (state, 12, "%d", d->mBatteryPct);
|
||||
valueStr += string (state);
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
|
||||
void TimeZoneChangeDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(TimeZoneChangeDataItem, TIMEZONE_CHANGE_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = TIMEZONECHANGE_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += "true";
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void TimeChangeDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(TimeChangeDataItem, TIME_CHANGE_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = TIMECHANGE_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += "true";
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void ShutdownStateDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(ShutdownStateDataItem, SHUTDOWN_STATE_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = SHUTDOWN_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mState) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void AssistedGpsDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(AssistedGpsDataItem, ASSISTED_GPS_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = ASSISTEDGPS_FIELD_ENABLED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mEnabled) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void NetworkInfoDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(NetworkInfoDataItem, NETWORKINFO_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr = NETWORKINFO_CARD;
|
||||
valueStr += "::";
|
||||
valueStr += NETWORKINFO_FIELD_TYPE;
|
||||
valueStr += "s_MASK: ";
|
||||
char type [12];
|
||||
snprintf (type, 12, "%" PRIu64, mAllTypes);
|
||||
valueStr += string (type);
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_TYPENAME;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mTypeName;
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_SUBTYPENAME;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mSubTypeName;
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_AVAILABLE;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mAvailable) ? ("true") : ("false");
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_CONNECTED;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mConnected) ? ("true") : ("false");
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_ROAMING;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mRoaming) ? ("true") : ("false");
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_0;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[0].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_1;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[1].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_2;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[2].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_3;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[3].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_4;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[4].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_5;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[5].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_6;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[6].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_7;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[7].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_8;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[8].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_NETWORKHANDLE_9;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mAllNetworkHandles[9].toString();
|
||||
valueStr += ", ";
|
||||
valueStr += NETWORKINFO_FIELD_APN_NAME;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mApn;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void ServiceStatusDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(ServiceStatusDataItem, SERVICESTATUS_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr += SERVICESTATUS_FIELD_STATE;
|
||||
valueStr += ": ";
|
||||
char state [12];
|
||||
snprintf (state, 12, "%d", d->mServiceState);
|
||||
valueStr += string (state);
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void ModelDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(ModelDataItem, MODEL_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr += MODEL_FIELD_NAME;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mModel;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void ManufacturerDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(ManufacturerDataItem, MANUFACTURER_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr += MANUFACTURER_FIELD_NAME;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mManufacturer;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void WifiSupplicantStatusDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(WifiSupplicantStatusDataItem,
|
||||
WIFI_SUPPLICANT_STATUS_DATA_ITEM_ID);
|
||||
valueStr += "Attach state: ";
|
||||
char t[50];
|
||||
memset (t, '\0', 50);
|
||||
snprintf (t, 50, "%d", d->mState);
|
||||
valueStr += t;
|
||||
|
||||
valueStr += ", Mac address valid: ";
|
||||
valueStr += (d->mApMacAddressValid) ? ("true") : ("false");
|
||||
|
||||
valueStr += ", AP MAC address: ";
|
||||
memset (t, '\0', 50);
|
||||
snprintf(t, 50, "[%02x:%02x:%02x:%02x:%02x:%02x]", d->mApMacAddress[0], d->mApMacAddress[1],
|
||||
d->mApMacAddress[2], d->mApMacAddress[3], d->mApMacAddress[4], d->mApMacAddress[5]);
|
||||
valueStr += t;
|
||||
|
||||
valueStr += ", Wifi-Ap SSID Valid: ";
|
||||
valueStr += (d->mWifiApSsidValid) ? ("true") : ("false");
|
||||
|
||||
valueStr += ", SSID: ";
|
||||
valueStr += d->mWifiApSsid;
|
||||
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void TacDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(TacDataItem, TAC_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr += TAC_FIELD_NAME;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mValue;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void MccmncDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(MccmncDataItem, MCCMNC_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr += MCCMNC_FIELD_NAME;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mValue;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void BtLeDeviceScanDetailsDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(BtLeDeviceScanDetailsDataItem, BTLE_SCAN_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr += BTLESCANDETAILS_FIELD_VALID;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mValidSrnData;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTLESCANDETAILS_FIELD_RSSI;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mApSrnRssi;
|
||||
valueStr += ", ";
|
||||
|
||||
char t[10];
|
||||
memset (t, '\0', 10);
|
||||
valueStr += BTLESCANDETAILS_FIELD_MAC;
|
||||
valueStr += ": ";
|
||||
snprintf(t, 10, "[%02x:%02x:%02x:%02x:%02x:%02x]", d->mApSrnMacAddress[0],
|
||||
d->mApSrnMacAddress[1], d->mApSrnMacAddress[2], d->mApSrnMacAddress[3],
|
||||
d->mApSrnMacAddress[4], d->mApSrnMacAddress[5]);
|
||||
valueStr += t;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTLESCANDETAILS_FIELD_SCANREQ;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mApSrnTimestamp;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTLESCANDETAILS_FIELD_SCANSTART;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mRequestTimestamp;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTLESCANDETAILS_FIELD_SCANRECV;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mReceiveTimestamp;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTLESCANDETAILS_FIELD_SCANERROR;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mErrorCause;
|
||||
valueStr += ", ";
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
void BtDeviceScanDetailsDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(BtDeviceScanDetailsDataItem, BT_SCAN_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
|
||||
valueStr += BTSCANDETAILS_FIELD_VALID;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mValidSrnData;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTSCANDETAILS_FIELD_RSSI;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mApSrnRssi;
|
||||
valueStr += ", ";
|
||||
|
||||
char t[10];
|
||||
memset (t, '\0', 10);
|
||||
valueStr += BTSCANDETAILS_FIELD_MAC;
|
||||
valueStr += ": ";
|
||||
snprintf(t, 10, "[%02x:%02x:%02x:%02x:%02x:%02x]", d->mApSrnMacAddress[0],
|
||||
d->mApSrnMacAddress[1], d->mApSrnMacAddress[2], d->mApSrnMacAddress[3],
|
||||
d->mApSrnMacAddress[4], d->mApSrnMacAddress[5]);
|
||||
valueStr += t;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTSCANDETAILS_FIELD_SCANREQ;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mApSrnTimestamp;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTSCANDETAILS_FIELD_SCANSTART;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mRequestTimestamp;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTSCANDETAILS_FIELD_SCANRECV;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mReceiveTimestamp;
|
||||
valueStr += ", ";
|
||||
|
||||
valueStr += BTSCANDETAILS_FIELD_SCANERROR;
|
||||
valueStr += ": ";
|
||||
valueStr += d->mErrorCause;
|
||||
valueStr += ", ";
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
|
||||
// copy
|
||||
int32_t AirplaneModeDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(AirplaneModeDataItem, AIRPLANEMODE_DATA_ITEM_ID);
|
||||
if (s->mMode == d->mMode) { result = 0; break; }
|
||||
s->mMode = d->mMode;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
void InEmergencyCallDataItem::stringify(string& valueStr) {
|
||||
int32_t result = 0;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(
|
||||
InEmergencyCallDataItem, IN_EMERGENCY_CALL_DATA_ITEM_ID);
|
||||
valueStr.clear ();
|
||||
valueStr += IN_EMERGENCY_CALL_FIELD_NAME;
|
||||
valueStr += ": ";
|
||||
valueStr += (d->mIsEmergency) ? ("true") : ("false");
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
}
|
||||
int32_t ENHDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(ENHDataItem, ENH_DATA_ITEM_ID);
|
||||
if (s->mEnabled == d->mEnabled) { result = true; break; }
|
||||
s->mEnabled = d->mEnabled;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t GPSStateDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(GPSStateDataItem, GPSSTATE_DATA_ITEM_ID);
|
||||
if (s->mEnabled == d->mEnabled) { result = 0; break; }
|
||||
s->mEnabled = d->mEnabled;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t NLPStatusDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(NLPStatusDataItem, NLPSTATUS_DATA_ITEM_ID);
|
||||
if (s->mEnabled == d->mEnabled) { result = 0; break; }
|
||||
s->mEnabled = d->mEnabled;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t WifiHardwareStateDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(WifiHardwareStateDataItem, WIFIHARDWARESTATE_DATA_ITEM_ID);
|
||||
if (s->mEnabled == d->mEnabled) { result = 0; break; }
|
||||
s->mEnabled = d->mEnabled;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t ScreenStateDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(ScreenStateDataItem, SCREEN_STATE_DATA_ITEM_ID);
|
||||
if (s->mState == d->mState) { result = 0; break; }
|
||||
s->mState = d->mState;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t PowerConnectStateDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(PowerConnectStateDataItem,
|
||||
POWER_CONNECTED_STATE_DATA_ITEM_ID);
|
||||
if (s->mState == d->mState) { result = 0; break; }
|
||||
s->mState = d->mState;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t BatteryLevelDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(BatteryLevelDataItem, BATTERY_LEVEL_DATA_ITEM_ID);
|
||||
if (s->mBatteryPct == d->mBatteryPct) { result = 0; break; }
|
||||
s->mBatteryPct = d->mBatteryPct;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t TimeZoneChangeDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(TimeZoneChangeDataItem, TIMEZONE_CHANGE_DATA_ITEM_ID);
|
||||
if (s->mCurrTimeMillis == d->mCurrTimeMillis &&
|
||||
s->mRawOffsetTZ == d->mRawOffsetTZ &&
|
||||
s->mDstOffsetTZ == d->mDstOffsetTZ) {
|
||||
result = 0;
|
||||
break;
|
||||
}
|
||||
s->mCurrTimeMillis = d->mCurrTimeMillis;
|
||||
s->mRawOffsetTZ = d->mRawOffsetTZ;
|
||||
s->mDstOffsetTZ = d->mDstOffsetTZ;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t TimeChangeDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(TimeChangeDataItem, TIME_CHANGE_DATA_ITEM_ID);
|
||||
if (s->mCurrTimeMillis == d->mCurrTimeMillis &&
|
||||
s->mRawOffsetTZ == d->mRawOffsetTZ &&
|
||||
s->mDstOffsetTZ == d->mDstOffsetTZ) {
|
||||
result = 0;
|
||||
break;
|
||||
}
|
||||
s->mCurrTimeMillis = d->mCurrTimeMillis;
|
||||
s->mRawOffsetTZ = d->mRawOffsetTZ;
|
||||
s->mDstOffsetTZ = d->mDstOffsetTZ;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t ShutdownStateDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(ShutdownStateDataItem, SHUTDOWN_STATE_DATA_ITEM_ID);
|
||||
if (s->mState == d->mState) { result = 0; break; }
|
||||
s->mState = d->mState;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t AssistedGpsDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(AssistedGpsDataItem, ASSISTED_GPS_DATA_ITEM_ID);
|
||||
if (s->mEnabled == d->mEnabled) { result = 0; break; }
|
||||
s->mEnabled = d->mEnabled;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t NetworkInfoDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(NetworkInfoDataItem, NETWORKINFO_DATA_ITEM_ID);
|
||||
NetworkType type = ((NetworkInfoDataItem*)d)->getType();
|
||||
if ((s->mAllTypes == d->mAllTypes) &&
|
||||
(s->getType() == type) && (0 == s->mTypeName.compare(d->mTypeName)) &&
|
||||
(0 == s->mSubTypeName.compare(d->mSubTypeName)) &&
|
||||
(s->mAvailable == d->mAvailable) &&
|
||||
(s->mConnected == d->mConnected) &&
|
||||
(s->mRoaming == d->mRoaming) &&
|
||||
(memcmp(s->mAllNetworkHandles, d->mAllNetworkHandles,
|
||||
sizeof(s->mAllNetworkHandles)) == 0) &&
|
||||
(s->mNetworkHandle == d->mNetworkHandle) &&
|
||||
(s->mApn.compare(d->mApn))) {
|
||||
result = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
s->mAllTypes = (d->mAllTypes == 0) ? typeToAllTypes(type) : d->mAllTypes;
|
||||
if (s->getType() != type) { s->setType(type);}
|
||||
if (0 != s->mTypeName.compare(d->mTypeName)) { s->mTypeName = d->mTypeName;}
|
||||
if (0 != s->mSubTypeName.compare(d->mSubTypeName)) {s->mSubTypeName = d->mSubTypeName;}
|
||||
if (0 != s->mApn.compare(d->mApn)) {s->mApn = d->mApn;}
|
||||
if (s->mAvailable != d->mAvailable) {s->mAvailable = d->mAvailable;}
|
||||
if (s->mConnected != d->mConnected) {s->mConnected = d->mConnected;}
|
||||
if (s->mRoaming != d->mRoaming) {s->mRoaming = d->mRoaming;}
|
||||
if (memcmp(s->mAllNetworkHandles, d->mAllNetworkHandles,
|
||||
sizeof(s->mAllNetworkHandles)) != 0) {
|
||||
memcpy(static_cast<void*>(s->mAllNetworkHandles),
|
||||
static_cast<void *>(d->mAllNetworkHandles), sizeof(s->mAllNetworkHandles));
|
||||
}
|
||||
if (s->mNetworkHandle != d->mNetworkHandle) {s->mNetworkHandle = d->mNetworkHandle;}
|
||||
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t ServiceStatusDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(ServiceStatusDataItem, SERVICESTATUS_DATA_ITEM_ID);
|
||||
if (s->mServiceState == d->mServiceState) { result = 0; break; }
|
||||
s->mServiceState = d->mServiceState;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t ModelDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(ModelDataItem, MODEL_DATA_ITEM_ID);
|
||||
if (0 == s->mModel.compare(d->mModel)) { result = 0; break; }
|
||||
s->mModel = d->mModel;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t ManufacturerDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(ManufacturerDataItem, MANUFACTURER_DATA_ITEM_ID);
|
||||
if (0 == s->mManufacturer.compare(d->mManufacturer)) { result = 0; break; }
|
||||
s->mManufacturer = d->mManufacturer;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t WifiSupplicantStatusDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(WifiSupplicantStatusDataItem,
|
||||
WIFI_SUPPLICANT_STATUS_DATA_ITEM_ID);
|
||||
if ( (s->mState == d->mState) &&
|
||||
(s->mApMacAddressValid == d->mApMacAddressValid) &&
|
||||
(s->mWifiApSsidValid == d->mWifiApSsidValid)) {
|
||||
|
||||
// compare mac address
|
||||
if (memcmp(s->mApMacAddress, d->mApMacAddress, sizeof(s->mApMacAddress)) == 0) {
|
||||
|
||||
// compare ssid
|
||||
if (s->mWifiApSsid.compare(d->mWifiApSsid) == 0) {
|
||||
result = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (s->mState != d->mState) { s->mState = d->mState;}
|
||||
if (s->mApMacAddressValid != d->mApMacAddressValid) {
|
||||
s->mApMacAddressValid = d->mApMacAddressValid;
|
||||
}
|
||||
if (s->mWifiApSsidValid != d->mWifiApSsidValid) {s->mWifiApSsidValid = d->mWifiApSsidValid;}
|
||||
if (memcmp(s->mApMacAddress, d->mApMacAddress, sizeof(s->mApMacAddress)) != 0) {
|
||||
memcpy(static_cast<void*>(s->mApMacAddress), static_cast<void *>(d->mApMacAddress),
|
||||
sizeof(s->mApMacAddress));
|
||||
}
|
||||
if (s->mWifiApSsid.compare(d->mWifiApSsid) != 0) {
|
||||
s->mWifiApSsid = d->mWifiApSsid;
|
||||
}
|
||||
|
||||
result = 0;
|
||||
} while (0);
|
||||
|
||||
EXIT_LOG_WITH_ERROR("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t TacDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(TacDataItem, TAC_DATA_ITEM_ID);
|
||||
if (0 == s->mValue.compare(d->mValue)) { result = 0; break; }
|
||||
s->mValue = d->mValue;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t MccmncDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(MccmncDataItem, MCCMNC_DATA_ITEM_ID);
|
||||
if (0 == s->mValue.compare(d->mValue)) { result = 0; break; }
|
||||
s->mValue= d->mValue;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t BtLeDeviceScanDetailsDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(BtLeDeviceScanDetailsDataItem, BTLE_SCAN_DATA_ITEM_ID);
|
||||
|
||||
if (s->mValidSrnData != d->mValidSrnData) { s->mValidSrnData = d->mValidSrnData;}
|
||||
if (s->mApSrnRssi != d->mApSrnRssi) { s->mApSrnRssi = d->mApSrnRssi;}
|
||||
if (memcmp(s->mApSrnMacAddress, d->mApSrnMacAddress, sizeof(s->mApSrnMacAddress)) != 0) {
|
||||
memcpy(static_cast<void*>(s->mApSrnMacAddress), static_cast<void*>(d->mApSrnMacAddress),
|
||||
sizeof(s->mApSrnMacAddress));
|
||||
}
|
||||
if (s->mApSrnTimestamp != d->mApSrnTimestamp) {s->mApSrnTimestamp = d->mApSrnTimestamp;}
|
||||
if (s->mRequestTimestamp != d->mRequestTimestamp) {
|
||||
s->mRequestTimestamp = d->mRequestTimestamp;
|
||||
}
|
||||
if (s->mReceiveTimestamp != d->mReceiveTimestamp) {
|
||||
s->mReceiveTimestamp = d->mReceiveTimestamp;
|
||||
}
|
||||
if (s->mErrorCause != d->mErrorCause) {s->mErrorCause = d->mErrorCause;}
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t BtDeviceScanDetailsDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(BtDeviceScanDetailsDataItem, BT_SCAN_DATA_ITEM_ID);
|
||||
|
||||
if (s->mValidSrnData != d->mValidSrnData) { s->mValidSrnData = d->mValidSrnData;}
|
||||
if (s->mApSrnRssi != d->mApSrnRssi) { s->mApSrnRssi = d->mApSrnRssi;}
|
||||
if (memcmp(s->mApSrnMacAddress, d->mApSrnMacAddress, sizeof(s->mApSrnMacAddress)) != 0) {
|
||||
memcpy(static_cast<void*>(s->mApSrnMacAddress), static_cast<void*>(d->mApSrnMacAddress),
|
||||
sizeof(s->mApSrnMacAddress));
|
||||
}
|
||||
if (s->mApSrnTimestamp != d->mApSrnTimestamp) {s->mApSrnTimestamp = d->mApSrnTimestamp;}
|
||||
if (s->mRequestTimestamp != d->mRequestTimestamp) {
|
||||
s->mRequestTimestamp = d->mRequestTimestamp;
|
||||
}
|
||||
if (s->mReceiveTimestamp != d->mReceiveTimestamp) {
|
||||
s->mReceiveTimestamp = d->mReceiveTimestamp;
|
||||
}
|
||||
if (s->mErrorCause != d->mErrorCause) {s->mErrorCause = d->mErrorCause;}
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG("%d", result);
|
||||
return result;
|
||||
}
|
||||
int32_t InEmergencyCallDataItem::copyFrom(IDataItemCore* src) {
|
||||
int32_t result = -1;
|
||||
ENTRY_LOG();
|
||||
do {
|
||||
COPIER_ERROR_CHECK_AND_DOWN_CAST(
|
||||
InEmergencyCallDataItem, IN_EMERGENCY_CALL_DATA_ITEM_ID);
|
||||
s->mIsEmergency = d->mIsEmergency;
|
||||
result = 0;
|
||||
} while (0);
|
||||
EXIT_LOG("%d", result);
|
||||
return result;
|
||||
}
|
||||
} //namespace loc_core
|
617
gps/core/data-items/DataItemConcreteTypes.h
Normal file
617
gps/core/data-items/DataItemConcreteTypes.h
Normal file
@@ -0,0 +1,617 @@
|
||||
/* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation, nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef DATAITEM_CONCRETETYPES_H
|
||||
#define DATAITEM_CONCRETETYPES_H
|
||||
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
#include <sstream>
|
||||
#include <DataItemId.h>
|
||||
#include <IDataItemCore.h>
|
||||
#include <gps_extended_c.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#define MAC_ADDRESS_LENGTH 6
|
||||
// MAC address length in bytes
|
||||
// QMI_LOC_SRN_MAC_ADDR_LENGTH_V02
|
||||
#define SRN_MAC_ADDRESS_LENGTH 6
|
||||
#define WIFI_SUPPLICANT_DEFAULT_STATE 0
|
||||
|
||||
#define TIME_DEFAULT_CURRTIME 0
|
||||
#define TIMEZONE_DEFAULT_RAWOFFSET 0
|
||||
#define TIMEZONE_DEFAULT_DSTOFFSET 0
|
||||
|
||||
#define NETWORKINFO_DEFAULT_TYPE 300
|
||||
#define NETWORKINFO_DEFAULT_APN_NAME ""
|
||||
#define SERVICESTATUS_DEFAULT_STATE 3 /// OOO
|
||||
|
||||
#define BATTERY_PCT_DEFAULT 50
|
||||
|
||||
#define STRINGIFY_ERROR_CHECK_AND_DOWN_CAST(T, ID) \
|
||||
if (getId() != ID) { result = 1; break; } \
|
||||
T * d = static_cast<T *>(this);
|
||||
|
||||
// macro for copier
|
||||
#define COPIER_ERROR_CHECK_AND_DOWN_CAST(T, ID) \
|
||||
if (src == NULL) { result = 1; break; } \
|
||||
if (getId() != src->getId()) { result = 2; break; } \
|
||||
if (getId() != ID) { result = 3; break; } \
|
||||
T * s = static_cast<T *>(this); \
|
||||
T * d = static_cast<T *>(src);
|
||||
|
||||
|
||||
static constexpr char sDelimit = ':';
|
||||
|
||||
namespace loc_core {
|
||||
using namespace std;
|
||||
|
||||
enum NetworkType {
|
||||
TYPE_MOBILE = 0,
|
||||
TYPE_WIFI,
|
||||
TYPE_ETHERNET,
|
||||
TYPE_BLUETOOTH,
|
||||
TYPE_MMS,
|
||||
TYPE_SUPL,
|
||||
TYPE_DUN,
|
||||
TYPE_HIPRI,
|
||||
TYPE_WIMAX,
|
||||
TYPE_PROXY,
|
||||
TYPE_UNKNOWN,
|
||||
};
|
||||
|
||||
typedef struct NetworkInfoType {
|
||||
// Unique network handle ID
|
||||
uint64_t networkHandle;
|
||||
// Type of network for corresponding network handle
|
||||
NetworkType networkType;
|
||||
NetworkInfoType() : networkHandle(NETWORK_HANDLE_UNKNOWN), networkType(TYPE_UNKNOWN) {}
|
||||
NetworkInfoType(string strObj) {
|
||||
size_t posDelimit = strObj.find(sDelimit);
|
||||
|
||||
if ( posDelimit != string::npos) {
|
||||
int32_t type = TYPE_UNKNOWN;
|
||||
string handleStr = strObj.substr(0, posDelimit);
|
||||
string typeStr = strObj.substr(posDelimit + 1, strObj.length() - posDelimit - 1);
|
||||
stringstream(handleStr) >> networkHandle;
|
||||
stringstream(typeStr) >> type;
|
||||
networkType = (NetworkType) type;
|
||||
} else {
|
||||
networkHandle = NETWORK_HANDLE_UNKNOWN;
|
||||
networkType = TYPE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
bool operator== (const NetworkInfoType& other) {
|
||||
return ((networkHandle == other.networkHandle) && (networkType == other.networkType));
|
||||
}
|
||||
string toString() {
|
||||
string valueStr;
|
||||
valueStr.clear ();
|
||||
char nethandle [32];
|
||||
memset (nethandle, 0, 32);
|
||||
snprintf(nethandle, sizeof(nethandle), "%" PRIu64, networkHandle);
|
||||
valueStr += string(nethandle);
|
||||
valueStr += sDelimit;
|
||||
char type [12];
|
||||
memset (type, 0, 12);
|
||||
snprintf (type, 12, "%u", networkType);
|
||||
valueStr += string (type);
|
||||
return valueStr;
|
||||
}
|
||||
} NetworkInfoType;
|
||||
|
||||
|
||||
class AirplaneModeDataItem: public IDataItemCore {
|
||||
public:
|
||||
AirplaneModeDataItem(IDataItemCore* di):
|
||||
AirplaneModeDataItem(((AirplaneModeDataItem*)di)->mMode) {}
|
||||
AirplaneModeDataItem(bool mode = false):
|
||||
mMode(mode) {mId = AIRPLANEMODE_DATA_ITEM_ID;}
|
||||
virtual ~AirplaneModeDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mMode;
|
||||
|
||||
};
|
||||
|
||||
class ENHDataItem: public IDataItemCore {
|
||||
public:
|
||||
ENHDataItem(bool enabled = false) :
|
||||
mEnabled(enabled) {mId = ENH_DATA_ITEM_ID;}
|
||||
virtual ~ENHDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mEnabled;
|
||||
};
|
||||
|
||||
class GPSStateDataItem: public IDataItemCore {
|
||||
public:
|
||||
GPSStateDataItem(bool enabled = false) :
|
||||
mEnabled(enabled) {mId = GPSSTATE_DATA_ITEM_ID;}
|
||||
virtual ~GPSStateDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mEnabled;
|
||||
};
|
||||
|
||||
class NLPStatusDataItem: public IDataItemCore {
|
||||
public:
|
||||
NLPStatusDataItem(bool enabled = false) :
|
||||
mEnabled(enabled) {mId = NLPSTATUS_DATA_ITEM_ID;}
|
||||
virtual ~NLPStatusDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mEnabled;
|
||||
};
|
||||
|
||||
class WifiHardwareStateDataItem: public IDataItemCore {
|
||||
public:
|
||||
WifiHardwareStateDataItem(bool enabled = false) :
|
||||
mEnabled(enabled) {mId = WIFIHARDWARESTATE_DATA_ITEM_ID;}
|
||||
virtual ~WifiHardwareStateDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mEnabled;
|
||||
};
|
||||
|
||||
class ScreenStateDataItem: public IDataItemCore {
|
||||
public:
|
||||
ScreenStateDataItem(bool state = false) :
|
||||
mState(state) {mId = SCREEN_STATE_DATA_ITEM_ID;}
|
||||
virtual ~ScreenStateDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mState;
|
||||
};
|
||||
|
||||
class PowerConnectStateDataItem: public IDataItemCore {
|
||||
public:
|
||||
PowerConnectStateDataItem(bool state = false) :
|
||||
mState(state) {mId = POWER_CONNECTED_STATE_DATA_ITEM_ID;}
|
||||
virtual ~PowerConnectStateDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mState;
|
||||
};
|
||||
|
||||
class TimeZoneChangeDataItem: public IDataItemCore {
|
||||
public:
|
||||
TimeZoneChangeDataItem(int64_t currTimeMillis = TIME_DEFAULT_CURRTIME,
|
||||
int32_t rawOffset = TIMEZONE_DEFAULT_RAWOFFSET,
|
||||
int32_t dstOffset = TIMEZONE_DEFAULT_DSTOFFSET) :
|
||||
mCurrTimeMillis (currTimeMillis),
|
||||
mRawOffsetTZ (rawOffset),
|
||||
mDstOffsetTZ (dstOffset) {mId = TIMEZONE_CHANGE_DATA_ITEM_ID;}
|
||||
virtual ~TimeZoneChangeDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
int64_t mCurrTimeMillis;
|
||||
int32_t mRawOffsetTZ;
|
||||
int32_t mDstOffsetTZ;
|
||||
};
|
||||
|
||||
class TimeChangeDataItem: public IDataItemCore {
|
||||
public:
|
||||
TimeChangeDataItem(int64_t currTimeMillis = TIME_DEFAULT_CURRTIME,
|
||||
int32_t rawOffset = TIMEZONE_DEFAULT_RAWOFFSET,
|
||||
int32_t dstOffset = TIMEZONE_DEFAULT_DSTOFFSET) :
|
||||
mCurrTimeMillis (currTimeMillis),
|
||||
mRawOffsetTZ (rawOffset),
|
||||
mDstOffsetTZ (dstOffset) {mId = TIME_CHANGE_DATA_ITEM_ID;}
|
||||
virtual ~TimeChangeDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
int64_t mCurrTimeMillis;
|
||||
int32_t mRawOffsetTZ;
|
||||
int32_t mDstOffsetTZ;
|
||||
};
|
||||
|
||||
class ShutdownStateDataItem: public IDataItemCore {
|
||||
public:
|
||||
ShutdownStateDataItem(bool state = false) :
|
||||
mState (state) {mId = SHUTDOWN_STATE_DATA_ITEM_ID;}
|
||||
virtual ~ShutdownStateDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mState;
|
||||
};
|
||||
|
||||
class AssistedGpsDataItem: public IDataItemCore {
|
||||
public:
|
||||
AssistedGpsDataItem(bool enabled = false) :
|
||||
mEnabled(enabled) {mId = ASSISTED_GPS_DATA_ITEM_ID;}
|
||||
virtual ~AssistedGpsDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mEnabled;
|
||||
};
|
||||
|
||||
class NetworkInfoDataItem: public IDataItemCore {
|
||||
public:
|
||||
NetworkInfoDataItem(
|
||||
int32_t type = NETWORKINFO_DEFAULT_TYPE,
|
||||
std::string typeName = "",
|
||||
std::string subTypeName = "",
|
||||
bool available = false,
|
||||
bool connected = false,
|
||||
bool roaming = false,
|
||||
uint64_t networkHandle = NETWORK_HANDLE_UNKNOWN,
|
||||
std::string apn = NETWORKINFO_DEFAULT_APN_NAME):
|
||||
NetworkInfoDataItem(getNormalizedType(type), type, typeName, subTypeName, available,
|
||||
connected, roaming, networkHandle, apn) {}
|
||||
NetworkInfoDataItem(NetworkType initialType, int32_t type, string typeName,
|
||||
string subTypeName, bool available, bool connected, bool roaming,
|
||||
uint64_t networkHandle, std::string apn):
|
||||
mAllTypes(typeToAllTypes(initialType)),
|
||||
mType(type),
|
||||
mTypeName(typeName),
|
||||
mSubTypeName(subTypeName),
|
||||
mAvailable(available),
|
||||
mConnected(connected),
|
||||
mRoaming(roaming),
|
||||
mNetworkHandle(networkHandle),
|
||||
mApn(apn) {
|
||||
mId = NETWORKINFO_DATA_ITEM_ID;
|
||||
mAllNetworkHandles[0].networkHandle = networkHandle;
|
||||
mAllNetworkHandles[0].networkType = initialType;
|
||||
}
|
||||
virtual ~NetworkInfoDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
inline uint64_t getAllTypes() { return mAllTypes; }
|
||||
inline NetworkInfoType* getNetworkHandle() {
|
||||
return &mAllNetworkHandles[0];
|
||||
}
|
||||
inline virtual NetworkType getType(void) const {
|
||||
return getNormalizedType(mType);
|
||||
}
|
||||
inline static NetworkType getNormalizedType(int32_t type) {
|
||||
NetworkType typeout = TYPE_UNKNOWN;
|
||||
switch (type) {
|
||||
case 100:
|
||||
typeout = TYPE_WIFI;
|
||||
break;
|
||||
case 101:
|
||||
typeout = TYPE_ETHERNET;
|
||||
break;
|
||||
case 102:
|
||||
typeout = TYPE_BLUETOOTH;
|
||||
break;
|
||||
case 201:
|
||||
typeout = TYPE_MOBILE;
|
||||
break;
|
||||
case 202:
|
||||
typeout = TYPE_DUN;
|
||||
break;
|
||||
case 203:
|
||||
typeout = TYPE_HIPRI;
|
||||
break;
|
||||
case 204:
|
||||
typeout = TYPE_MMS;
|
||||
break;
|
||||
case 205:
|
||||
typeout = TYPE_SUPL;
|
||||
break;
|
||||
case 220:
|
||||
typeout = TYPE_WIMAX;
|
||||
break;
|
||||
case 300:
|
||||
default:
|
||||
typeout = TYPE_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
return typeout;
|
||||
}
|
||||
// Data members
|
||||
uint64_t mAllTypes;
|
||||
int32_t mType;
|
||||
string mTypeName;
|
||||
string mSubTypeName;
|
||||
bool mAvailable;
|
||||
bool mConnected;
|
||||
bool mRoaming;
|
||||
NetworkInfoType mAllNetworkHandles[MAX_NETWORK_HANDLES];
|
||||
uint64_t mNetworkHandle;
|
||||
std::string mApn;
|
||||
protected:
|
||||
inline uint64_t typeToAllTypes(NetworkType type) {
|
||||
return (type >= TYPE_UNKNOWN || type < TYPE_MOBILE) ? 0 : (1<<type);
|
||||
}
|
||||
private:
|
||||
inline void setType(NetworkType type) {
|
||||
switch (type) {
|
||||
case TYPE_WIFI:
|
||||
mType = 100;
|
||||
break;
|
||||
case TYPE_ETHERNET:
|
||||
mType = 101;
|
||||
break;
|
||||
case TYPE_BLUETOOTH:
|
||||
mType = 102;
|
||||
break;
|
||||
case TYPE_MOBILE:
|
||||
mType = 201;
|
||||
break;
|
||||
case TYPE_DUN:
|
||||
mType = 202;
|
||||
break;
|
||||
case TYPE_HIPRI:
|
||||
mType = 203;
|
||||
break;
|
||||
case TYPE_MMS:
|
||||
mType = 204;
|
||||
break;
|
||||
case TYPE_SUPL:
|
||||
mType = 205;
|
||||
break;
|
||||
case TYPE_WIMAX:
|
||||
mType = 220;
|
||||
break;
|
||||
default:
|
||||
mType = 300;
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
class ServiceStatusDataItem: public IDataItemCore {
|
||||
public:
|
||||
ServiceStatusDataItem(int32_t serviceState = SERVICESTATUS_DEFAULT_STATE) :
|
||||
mServiceState (serviceState) {mId = SERVICESTATUS_DATA_ITEM_ID;}
|
||||
virtual ~ServiceStatusDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
int32_t mServiceState;
|
||||
};
|
||||
|
||||
class ModelDataItem: public IDataItemCore {
|
||||
public:
|
||||
ModelDataItem(const string & name = "") :
|
||||
mModel (name) {mId = MODEL_DATA_ITEM_ID;}
|
||||
virtual ~ModelDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
string mModel;
|
||||
};
|
||||
|
||||
class ManufacturerDataItem: public IDataItemCore {
|
||||
public:
|
||||
ManufacturerDataItem(const string & name = "") :
|
||||
mManufacturer (name) {mId = MANUFACTURER_DATA_ITEM_ID;}
|
||||
virtual ~ManufacturerDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
string mManufacturer;
|
||||
};
|
||||
|
||||
class RilServiceInfoDataItem : public IDataItemCore {
|
||||
public:
|
||||
inline RilServiceInfoDataItem() :
|
||||
mData(nullptr) {mId = RILSERVICEINFO_DATA_ITEM_ID;}
|
||||
inline virtual ~RilServiceInfoDataItem() { if (nullptr != mData) free(mData); }
|
||||
virtual void stringify(string& /*valueStr*/) {}
|
||||
virtual int32_t copyFrom(IDataItemCore* src) {
|
||||
if (nullptr != mData && nullptr != src) {
|
||||
memcpy(mData, ((RilServiceInfoDataItem*)src)->mData, mLength);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
inline RilServiceInfoDataItem(const RilServiceInfoDataItem& peer) :
|
||||
RilServiceInfoDataItem() {
|
||||
mLength = peer.mLength;
|
||||
mData = malloc(mLength);
|
||||
if (nullptr != mData) {
|
||||
memcpy(mData, peer.mData, mLength);
|
||||
}
|
||||
peer.setPeerData(*this);
|
||||
}
|
||||
inline virtual bool operator==(const RilServiceInfoDataItem& other) const {
|
||||
return other.mData == mData;
|
||||
}
|
||||
inline virtual void setPeerData(RilServiceInfoDataItem& /*peer*/) const {}
|
||||
void* mData;
|
||||
int mLength;
|
||||
};
|
||||
|
||||
class RilCellInfoDataItem : public IDataItemCore {
|
||||
public:
|
||||
inline RilCellInfoDataItem() :
|
||||
mData(nullptr) {mId = RILCELLINFO_DATA_ITEM_ID;}
|
||||
inline virtual ~RilCellInfoDataItem() { if (nullptr != mData) free(mData); }
|
||||
virtual void stringify(string& /*valueStr*/) {}
|
||||
virtual int32_t copyFrom(IDataItemCore* src) {
|
||||
if (nullptr != mData && nullptr != src) {
|
||||
memcpy(mData, ((RilCellInfoDataItem*)src)->mData, mLength);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
inline RilCellInfoDataItem(const RilCellInfoDataItem& peer) :
|
||||
RilCellInfoDataItem() {
|
||||
mLength = peer.mLength;
|
||||
mData = malloc(mLength);
|
||||
if (nullptr != mData) {
|
||||
memcpy(mData, peer.mData, mLength);
|
||||
}
|
||||
peer.setPeerData(*this);
|
||||
}
|
||||
inline virtual bool operator==(const RilCellInfoDataItem& other) const {
|
||||
return other.mData == mData;
|
||||
}
|
||||
inline virtual void setPeerData(RilCellInfoDataItem& /*peer*/) const {}
|
||||
void* mData;
|
||||
int mLength;
|
||||
};
|
||||
|
||||
class WifiSupplicantStatusDataItem: public IDataItemCore {
|
||||
public:
|
||||
WifiSupplicantStatusDataItem() :
|
||||
mState((WifiSupplicantState)WIFI_SUPPLICANT_DEFAULT_STATE),
|
||||
mApMacAddressValid(false),
|
||||
mWifiApSsidValid(false) {
|
||||
mId = WIFI_SUPPLICANT_STATUS_DATA_ITEM_ID;
|
||||
memset (mApMacAddress, 0, sizeof (mApMacAddress));
|
||||
mWifiApSsid.clear();
|
||||
}
|
||||
virtual ~WifiSupplicantStatusDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
typedef enum WifiSupplicantState {
|
||||
DISCONNECTED,
|
||||
INTERFACE_DISABLED,
|
||||
INACTIVE,
|
||||
SCANNING,
|
||||
AUTHENTICATING,
|
||||
ASSOCIATING,
|
||||
ASSOCIATED,
|
||||
FOUR_WAY_HANDSHAKE,
|
||||
GROUP_HANDSHAKE,
|
||||
COMPLETED,
|
||||
DORMANT,
|
||||
UNINITIALIZED,
|
||||
INVALID
|
||||
} WifiSupplicantState;
|
||||
/* Represents whether access point attach state*/
|
||||
WifiSupplicantState mState;
|
||||
/* Represents info on whether ap mac address is valid */
|
||||
bool mApMacAddressValid;
|
||||
/* Represents mac address of the wifi access point*/
|
||||
uint8_t mApMacAddress[MAC_ADDRESS_LENGTH];
|
||||
/* Represents info on whether ap SSID is valid */
|
||||
bool mWifiApSsidValid;
|
||||
/* Represents Wifi SSID string*/
|
||||
string mWifiApSsid;
|
||||
};
|
||||
|
||||
class TacDataItem: public IDataItemCore {
|
||||
public:
|
||||
TacDataItem(const string & name = "") :
|
||||
mValue (name) {mId = TAC_DATA_ITEM_ID;}
|
||||
virtual ~TacDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
string mValue;
|
||||
};
|
||||
|
||||
class MccmncDataItem: public IDataItemCore {
|
||||
public:
|
||||
MccmncDataItem(const string & name = "") :
|
||||
mValue(name) {mId = MCCMNC_DATA_ITEM_ID;}
|
||||
virtual ~MccmncDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
string mValue;
|
||||
};
|
||||
|
||||
class SrnDeviceScanDetailsDataItem: public IDataItemCore {
|
||||
public:
|
||||
SrnDeviceScanDetailsDataItem(DataItemId Id) :
|
||||
mValidSrnData(false),
|
||||
mApSrnRssi(-1),
|
||||
mApSrnTimestamp(0),
|
||||
mRequestTimestamp(0),
|
||||
mReceiveTimestamp(0),
|
||||
mErrorCause(-1) {mId = Id;}
|
||||
virtual ~SrnDeviceScanDetailsDataItem() {}
|
||||
// Data members common to all SRN tech types
|
||||
/* Represents info on whether SRN data is valid (no error)*/
|
||||
bool mValidSrnData;
|
||||
/* SRN device RSSI reported */
|
||||
int32_t mApSrnRssi;
|
||||
/* MAC adress of SRN device */
|
||||
uint8_t mApSrnMacAddress[SRN_MAC_ADDRESS_LENGTH];
|
||||
/* UTC timestamp at which the scan was requested.for this SRN device*/
|
||||
int64_t mApSrnTimestamp;
|
||||
/* UTC timestamp at which the scan was started. */
|
||||
int64_t mRequestTimestamp;
|
||||
/* UTC timestamp at which the scan was received.*/
|
||||
int64_t mReceiveTimestamp;
|
||||
/* Reason for the error/failure if SRN details are not valid */
|
||||
int32_t mErrorCause;
|
||||
};
|
||||
|
||||
class BtDeviceScanDetailsDataItem: public SrnDeviceScanDetailsDataItem {
|
||||
public:
|
||||
BtDeviceScanDetailsDataItem() :
|
||||
SrnDeviceScanDetailsDataItem(BT_SCAN_DATA_ITEM_ID) {}
|
||||
virtual ~BtDeviceScanDetailsDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
};
|
||||
|
||||
class BtLeDeviceScanDetailsDataItem: public SrnDeviceScanDetailsDataItem {
|
||||
public:
|
||||
BtLeDeviceScanDetailsDataItem() :
|
||||
SrnDeviceScanDetailsDataItem(BTLE_SCAN_DATA_ITEM_ID) {}
|
||||
virtual ~BtLeDeviceScanDetailsDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
};
|
||||
|
||||
class BatteryLevelDataItem: public IDataItemCore {
|
||||
public:
|
||||
inline BatteryLevelDataItem(uint8_t batteryPct = BATTERY_PCT_DEFAULT) :
|
||||
mBatteryPct(batteryPct) {mId = BATTERY_LEVEL_DATA_ITEM_ID;}
|
||||
inline ~BatteryLevelDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
uint8_t mBatteryPct;
|
||||
};
|
||||
|
||||
class InEmergencyCallDataItem: public IDataItemCore {
|
||||
public:
|
||||
InEmergencyCallDataItem(bool isEmergency = false) :
|
||||
mIsEmergency(isEmergency) {mId = IN_EMERGENCY_CALL_DATA_ITEM_ID;}
|
||||
virtual ~InEmergencyCallDataItem() {}
|
||||
virtual void stringify(string& /*valueStr*/) override;
|
||||
virtual int32_t copyFrom(IDataItemCore* /*src*/) override;
|
||||
// Data members
|
||||
bool mIsEmergency;
|
||||
};
|
||||
|
||||
} // namespace loc_core
|
||||
|
||||
#endif //DATAITEM_CONCRETETYPES_H
|
80
gps/core/data-items/DataItemId.h
Normal file
80
gps/core/data-items/DataItemId.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/* Copyright (c) 2015-2017,2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation, nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __DATAITEMID_H__
|
||||
#define __DATAITEMID_H__
|
||||
|
||||
/**
|
||||
* Enumeration of Data Item types
|
||||
* When add/remove/update changes are made to Data Items, this file needs to be updated
|
||||
* accordingly
|
||||
*/
|
||||
typedef enum e_DataItemId {
|
||||
INVALID_DATA_ITEM_ID = -1,
|
||||
// 0 - 4
|
||||
AIRPLANEMODE_DATA_ITEM_ID,
|
||||
ENH_DATA_ITEM_ID,
|
||||
GPSSTATE_DATA_ITEM_ID,
|
||||
NLPSTATUS_DATA_ITEM_ID,
|
||||
WIFIHARDWARESTATE_DATA_ITEM_ID,
|
||||
// 5 - 9
|
||||
NETWORKINFO_DATA_ITEM_ID,
|
||||
RILVERSION_DATA_ITEM_ID,
|
||||
RILSERVICEINFO_DATA_ITEM_ID,
|
||||
RILCELLINFO_DATA_ITEM_ID,
|
||||
SERVICESTATUS_DATA_ITEM_ID,
|
||||
// 10 - 14
|
||||
MODEL_DATA_ITEM_ID,
|
||||
MANUFACTURER_DATA_ITEM_ID,
|
||||
VOICECALL_DATA_ITEM,
|
||||
ASSISTED_GPS_DATA_ITEM_ID,
|
||||
SCREEN_STATE_DATA_ITEM_ID,
|
||||
// 15 - 19
|
||||
POWER_CONNECTED_STATE_DATA_ITEM_ID,
|
||||
TIMEZONE_CHANGE_DATA_ITEM_ID,
|
||||
TIME_CHANGE_DATA_ITEM_ID,
|
||||
WIFI_SUPPLICANT_STATUS_DATA_ITEM_ID,
|
||||
SHUTDOWN_STATE_DATA_ITEM_ID,
|
||||
// 20 - 24
|
||||
TAC_DATA_ITEM_ID,
|
||||
MCCMNC_DATA_ITEM_ID,
|
||||
BTLE_SCAN_DATA_ITEM_ID,
|
||||
BT_SCAN_DATA_ITEM_ID,
|
||||
OEM_GTP_UPLOAD_TRIGGER_READY_ITEM_ID,
|
||||
|
||||
MAX_DATA_ITEM_ID,
|
||||
|
||||
// 26 -
|
||||
BATTERY_LEVEL_DATA_ITEM_ID,
|
||||
IN_EMERGENCY_CALL_DATA_ITEM_ID,
|
||||
|
||||
MAX_DATA_ITEM_ID_1_1,
|
||||
} DataItemId;
|
||||
|
||||
#endif // #ifndef __DATAITEMID_H__
|
130
gps/core/data-items/DataItemsFactoryProxy.cpp
Normal file
130
gps/core/data-items/DataItemsFactoryProxy.cpp
Normal file
@@ -0,0 +1,130 @@
|
||||
/* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation, nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#define LOG_TAG "DataItemsFactoryProxy"
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <DataItemId.h>
|
||||
#include <IDataItemCore.h>
|
||||
#include <DataItemsFactoryProxy.h>
|
||||
#include <DataItemConcreteTypes.h>
|
||||
#include <loc_pla.h>
|
||||
#include <log_util.h>
|
||||
#include "loc_misc_utils.h"
|
||||
|
||||
namespace loc_core
|
||||
{
|
||||
|
||||
IDataItemCore* DataItemsFactoryProxy::createNewDataItem(IDataItemCore* dataItem) {
|
||||
IDataItemCore *mydi = nullptr;
|
||||
|
||||
switch (dataItem->getId()) {
|
||||
case AIRPLANEMODE_DATA_ITEM_ID:
|
||||
mydi = new AirplaneModeDataItem(*((AirplaneModeDataItem*)dataItem));
|
||||
break;
|
||||
case ENH_DATA_ITEM_ID:
|
||||
mydi = new ENHDataItem(*((ENHDataItem*)dataItem));
|
||||
break;
|
||||
case GPSSTATE_DATA_ITEM_ID:
|
||||
mydi = new GPSStateDataItem(*((GPSStateDataItem*)dataItem));
|
||||
break;
|
||||
case NLPSTATUS_DATA_ITEM_ID:
|
||||
mydi = new NLPStatusDataItem(*((NLPStatusDataItem*)dataItem));
|
||||
break;
|
||||
case WIFIHARDWARESTATE_DATA_ITEM_ID:
|
||||
mydi = new WifiHardwareStateDataItem(*((WifiHardwareStateDataItem*)dataItem));
|
||||
break;
|
||||
case NETWORKINFO_DATA_ITEM_ID:
|
||||
mydi = new NetworkInfoDataItem(*((NetworkInfoDataItem*)dataItem));
|
||||
break;
|
||||
case SERVICESTATUS_DATA_ITEM_ID:
|
||||
mydi = new ServiceStatusDataItem(*((ServiceStatusDataItem*)dataItem));
|
||||
break;
|
||||
case RILCELLINFO_DATA_ITEM_ID:
|
||||
mydi = new RilCellInfoDataItem(*((RilCellInfoDataItem*)dataItem));
|
||||
break;
|
||||
case RILSERVICEINFO_DATA_ITEM_ID:
|
||||
mydi = new RilServiceInfoDataItem(*((RilServiceInfoDataItem*)dataItem));
|
||||
break;
|
||||
case MODEL_DATA_ITEM_ID:
|
||||
mydi = new ModelDataItem(*((ModelDataItem*)dataItem));
|
||||
break;
|
||||
case MANUFACTURER_DATA_ITEM_ID:
|
||||
mydi = new ManufacturerDataItem(*((ManufacturerDataItem*)dataItem));
|
||||
break;
|
||||
case IN_EMERGENCY_CALL_DATA_ITEM_ID:
|
||||
mydi = new InEmergencyCallDataItem(*((InEmergencyCallDataItem*)dataItem));
|
||||
break;
|
||||
case ASSISTED_GPS_DATA_ITEM_ID:
|
||||
mydi = new AssistedGpsDataItem(*((AssistedGpsDataItem*)dataItem));
|
||||
break;
|
||||
case SCREEN_STATE_DATA_ITEM_ID:
|
||||
mydi = new ScreenStateDataItem(*((ScreenStateDataItem*)dataItem));
|
||||
break;
|
||||
case POWER_CONNECTED_STATE_DATA_ITEM_ID:
|
||||
mydi = new PowerConnectStateDataItem(*((PowerConnectStateDataItem*)dataItem));
|
||||
break;
|
||||
case TIMEZONE_CHANGE_DATA_ITEM_ID:
|
||||
mydi = new TimeZoneChangeDataItem(*((TimeZoneChangeDataItem*)dataItem));
|
||||
break;
|
||||
case TIME_CHANGE_DATA_ITEM_ID:
|
||||
mydi = new TimeChangeDataItem(*((TimeChangeDataItem*)dataItem));
|
||||
break;
|
||||
case WIFI_SUPPLICANT_STATUS_DATA_ITEM_ID:
|
||||
mydi = new WifiSupplicantStatusDataItem(*((WifiSupplicantStatusDataItem*)dataItem));
|
||||
break;
|
||||
case SHUTDOWN_STATE_DATA_ITEM_ID:
|
||||
mydi = new ShutdownStateDataItem(*((ShutdownStateDataItem*)dataItem));
|
||||
break;
|
||||
case TAC_DATA_ITEM_ID:
|
||||
mydi = new TacDataItem(*((TacDataItem*)dataItem));
|
||||
break;
|
||||
case MCCMNC_DATA_ITEM_ID:
|
||||
mydi = new MccmncDataItem(*((MccmncDataItem*)dataItem));
|
||||
break;
|
||||
case BTLE_SCAN_DATA_ITEM_ID:
|
||||
mydi = new BtLeDeviceScanDetailsDataItem(*((BtLeDeviceScanDetailsDataItem*)dataItem));
|
||||
break;
|
||||
case BT_SCAN_DATA_ITEM_ID:
|
||||
mydi = new BtDeviceScanDetailsDataItem(*((BtDeviceScanDetailsDataItem*)dataItem));
|
||||
break;
|
||||
case BATTERY_LEVEL_DATA_ITEM_ID:
|
||||
mydi = new BatteryLevelDataItem(*((BatteryLevelDataItem*)dataItem));
|
||||
break;
|
||||
case INVALID_DATA_ITEM_ID:
|
||||
case MAX_DATA_ITEM_ID:
|
||||
default:
|
||||
break;
|
||||
};
|
||||
return mydi;
|
||||
}
|
||||
|
||||
|
||||
} // namespace loc_core
|
||||
|
||||
|
46
gps/core/data-items/DataItemsFactoryProxy.h
Normal file
46
gps/core/data-items/DataItemsFactoryProxy.h
Normal file
@@ -0,0 +1,46 @@
|
||||
/* Copyright (c) 2017, 2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation, nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __DATAITEMFACTORYBASE__
|
||||
#define __DATAITEMFACTORYBASE__
|
||||
|
||||
#include <DataItemId.h>
|
||||
#include <IDataItemCore.h>
|
||||
|
||||
namespace loc_core
|
||||
{
|
||||
class DataItemsFactoryProxy {
|
||||
public:
|
||||
static IDataItemCore* createNewDataItem(IDataItemCore* di);
|
||||
};
|
||||
|
||||
} // namespace loc_core
|
||||
|
||||
#endif //__DATAITEMFACTORYBASE__
|
||||
|
84
gps/core/data-items/IDataItemCore.h
Normal file
84
gps/core/data-items/IDataItemCore.h
Normal file
@@ -0,0 +1,84 @@
|
||||
/* Copyright (c) 2015, 2017, 2020 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation, nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __IDATAITEMCORE_H__
|
||||
#define __IDATAITEMCORE_H__
|
||||
|
||||
#include <string>
|
||||
#include <DataItemId.h>
|
||||
|
||||
namespace loc_core {
|
||||
|
||||
using namespace std;
|
||||
|
||||
/**
|
||||
* @brief IDataItemCore interface.
|
||||
* @details IDataItemCore interface.
|
||||
*
|
||||
*/
|
||||
class IDataItemCore {
|
||||
public:
|
||||
/**
|
||||
* @brief Gets Data item id.
|
||||
* @details Gets Data item id.
|
||||
* @return Data item id.
|
||||
*/
|
||||
inline DataItemId getId() { return mId; }
|
||||
|
||||
/**
|
||||
* @brief Stringify.
|
||||
* @details Stringify.
|
||||
*
|
||||
* @param valueStr Reference to string.
|
||||
*/
|
||||
virtual void stringify (string & valueStr) = 0;
|
||||
|
||||
/**
|
||||
* @brief copy.
|
||||
* @details copy.
|
||||
*
|
||||
* @param src Where to copy from.
|
||||
* @param dataItemCopied Boolean flag indicated whether or not copied.
|
||||
*
|
||||
* @return Zero for success or non zero for failure.
|
||||
*/
|
||||
virtual int32_t copyFrom(IDataItemCore * src) = 0;
|
||||
|
||||
/**
|
||||
* @brief Destructor.
|
||||
* @details Destructor.
|
||||
*/
|
||||
virtual ~IDataItemCore () {}
|
||||
protected:
|
||||
DataItemId mId = INVALID_DATA_ITEM_ID;
|
||||
};
|
||||
|
||||
} // namespace loc_core
|
||||
|
||||
#endif // __IDATAITEMCORE_H__
|
Reference in New Issue
Block a user