aboutsummaryrefslogtreecommitdiff
path: root/location/loc_net_iface/LocNetIfaceBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'location/loc_net_iface/LocNetIfaceBase.h')
-rw-r--r--location/loc_net_iface/LocNetIfaceBase.h197
1 files changed, 0 insertions, 197 deletions
diff --git a/location/loc_net_iface/LocNetIfaceBase.h b/location/loc_net_iface/LocNetIfaceBase.h
deleted file mode 100644
index 604ea0a..0000000
--- a/location/loc_net_iface/LocNetIfaceBase.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Copyright (c) 2017, 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 LOC_NET_IFACE_BASE_H
-#define LOC_NET_IFACE_BASE_H
-
-#include <IDataItem.h>
-#include <loc_gps.h>
-#include <algorithm>
-#include <vector>
-#include <list>
-#include <string.h>
-
-using namespace izat_manager;
-
-/* Connectivity Type Enum
- *
- * These values are same as we define in case of LA,
- * except for emergency type WWAN which is not defined there. */
-typedef enum {
- LOC_NET_CONN_TYPE_INVALID = 0,
- LOC_NET_CONN_TYPE_WLAN = 100,
- LOC_NET_CONN_TYPE_WWAN_INTERNET = 201,
- LOC_NET_CONN_TYPE_WWAN_SUPL = 205,
- LOC_NET_CONN_TYPE_WWAN_EMERGENCY = 206,
- LOC_NET_CONN_TYPE_MAX
-} LocNetConnType;
-
-/* Connection IP type */
-typedef enum {
- LOC_NET_CONN_IP_TYPE_INVALID = 0,
- LOC_NET_CONN_IP_TYPE_V4,
- LOC_NET_CONN_IP_TYPE_V6,
- LOC_NET_CONN_IP_TYPE_V4V6,
- LOC_NET_CONN_IP_TYPE_MAX
-} LocNetConnIpType;
-
-/* WWAN call event */
-typedef enum {
- LOC_NET_WWAN_CALL_EVT_INVALID = 0,
- LOC_NET_WWAN_CALL_EVT_OPEN_SUCCESS,
- LOC_NET_WWAN_CALL_EVT_OPEN_FAILED,
- LOC_NET_WWAN_CALL_EVT_CLOSE_SUCCESS,
- LOC_NET_WWAN_CALL_EVT_CLOSE_FAILED,
- LOC_NET_WWAN_CALL_EVT_MAX
-} LocNetWwanCallEvent;
-
-/* WWAN call status callback
- * apn and apnIpType values are valid based on event. */
-typedef void (*LocWwanCallStatusCb)(
- void* userDataPtr, LocNetWwanCallEvent event,
- const char* apn, LocNetConnIpType apnIpType);
-
-/* DataItem Notification callback */
-typedef void (*LocNetStatusChangeCb)(
- void* userDataPtr, std::list<IDataItem*>& itemList);
-
-/* Maximum length of APN Name config items */
-#define APN_NAME_MAX_LEN 255
-
-/*--------------------------------------------------------------------
- * CLASS LocNetIfaceBase
- *
- * Functionality:
- * Interface to OS specific network connection functionality.
- * Currently supported actions:
- * - Register for WLAN/WWAN connectivity indications
- * - Setup / Teardown WWAN data call
- *-------------------------------------------------------------------*/
-class LocNetIfaceBase {
-
-public:
- /* To be used for WWAN data call setup
- *
- * Call setup status is notified via Subscriber interface if network info
- * data item is subscribed.
- *
- * Call setup status is also notified via LocWwanCallStatusCb callback
- * function if registered. */
- virtual bool setupWwanCall() = 0;
-
- /* Stop the ongoing data call */
- virtual bool stopWwanCall() = 0;
-
- /* Register data call setup callback
- * If callback is registered, we notify back data call status with it. */
- void registerWwanCallStatusCallback(
- LocWwanCallStatusCb wwanCallStatusCb, void* userDataPtr);
-
- /* Register for data items */
- virtual void subscribe(
- const std::list<DataItemId>& itemListToSubscribe) = 0;
-
- /* Unregister for data items */
- virtual void unsubscribe(
- const std::list<DataItemId>& itemListToUnsubscribe) = 0;
-
- /* Unregister all data items */
- virtual void unsubscribeAll() = 0;
-
- /* Request data items current value */
- virtual void requestData(
- const std::list<DataItemId>& itemListToRequestData) = 0;
-
- /* Register Notification callback */
- void registerDataItemNotifyCallback(
- LocNetStatusChangeCb callback, void* userDataPtr);
-
- /* Virtual destructor since we have other virtual methods */
- virtual ~LocNetIfaceBase() {};
-
-protected:
- /* List of data items subscribed at any instant */
- std::vector<DataItemId> mSubscribedItemList;
-
- /* Data Item notification callback registered.
- * This information is not instance specific, supports only single
- * client. */
- static LocNetStatusChangeCb sNotifyCb;
- static void* sNotifyCbUserDataPtr;
-
- /* WWAN data call setup callback */
- LocWwanCallStatusCb mWwanCallStatusCb;
- void* mWwanCbUserDataPtr;
-
- /* WWAN Call type supported by this instance */
- LocNetConnType mLocNetConnType;
-
- /* Config items */
- char mApnName[APN_NAME_MAX_LEN];
- int mIpType;
-
- LocNetIfaceBase(LocNetConnType connType) :
- mSubscribedItemList(), mWwanCallStatusCb(NULL),
- mWwanCbUserDataPtr(NULL), mLocNetConnType(connType),
- mIpType(0) {
-
- memset(mApnName, 0, APN_NAME_MAX_LEN);
- fetchConfigItems();
- }
-
- /* Utility method to fetch required config items */
- void fetchConfigItems();
-
- /* Fetch configured APN for specified call type
- * APNs can be configured in gps.conf as:
- * INTERNET_APN = xyz
- * SUPL_APN = xyz */
- char* getApnNameFromConfig();
-
- /* Fetch configured IP Type for specified call type
- * IP Type can be configured in gps.conf as:
- * INTERNET_IP_TYPE = 4 / 6 / 10
- * SUPL_IP_TYPE = 4 / 6 / 10 */
- LocNetConnIpType getIpTypeFromConfig();
-
- /* Update the subscribed item list
- * addOrDelete: true = append items to subscribed list
- * false = delete items from subscribed list
- * Just a utility method to be used from platform specific sub-classes
- * Returns true if any updates are made to the subscription list,
- * or else false. */
- bool updateSubscribedItemList(
- const std::list<DataItemId>& itemList, bool addOrDelete);
-
- /* Utility method */
- inline bool isItemSubscribed(DataItemId itemId){
- return ( mSubscribedItemList.end() !=
- std::find( mSubscribedItemList.begin(),
- mSubscribedItemList.end(), itemId));
- }
-};
-#endif /* #ifndef LOC_NET_IFACE_BASE_H */