164efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar/* Copyright (c) 2011-2014,2016, The Linux Foundation. All rights reserved.
2e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
3e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * Redistribution and use in source and binary forms, with or without
4e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * modification, are permitted provided that the following conditions are
5e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * met:
6e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Redistributions of source code must retain the above copyright
7e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       notice, this list of conditions and the following disclaimer.
8e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Redistributions in binary form must reproduce the above
9e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       copyright notice, this list of conditions and the following
10e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       disclaimer in the documentation and/or other materials provided
11e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       with the distribution.
12e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Neither the name of The Linux Foundation, nor the names of its
13e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       contributors may be used to endorse or promote products derived
14e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       from this software without specific prior written permission.
15e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
16e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
28e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */
29e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOG_NDDEBUG 0
30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOG_TAG "LocSvc_LocApiBase"
31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <dlfcn.h>
33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <LocApiBase.h>
34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <LocAdapterBase.h>
35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <log_util.h>
36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <LocDualContext.h>
37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletinamespace loc_core {
39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define TO_ALL_LOCADAPTERS(call) TO_ALL_ADAPTERS(mLocAdapters, (call))
41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define TO_1ST_HANDLING_LOCADAPTERS(call) TO_1ST_HANDLING_ADAPTER(mLocAdapters, (call))
42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint hexcode(char *hexstring, int string_size,
44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            const char *data, int data_size)
45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   int i;
47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   for (i = 0; i < data_size; i++)
48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   {
49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti      char ch = data[i];
50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti      if (i*2 + 3 <= string_size)
51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti      {
52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti         snprintf(&hexstring[i*2], 3, "%02X", ch);
53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti      }
54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti      else {
55e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti         break;
56e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti      }
57e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   }
58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   return i;
59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
60e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
61e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint decodeAddress(char *addr_string, int string_size,
62e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                   const char *data, int data_size)
63e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    const char addr_prefix = 0x91;
65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    int i, idxOutput = 0;
66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    if (!data || !addr_string) { return 0; }
68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    if (data[0] != addr_prefix)
70e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    {
71e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LOC_LOGW("decodeAddress: address prefix is not 0x%x but 0x%x", addr_prefix, data[0]);
72e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        addr_string[0] = '\0';
73e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        return 0; // prefix not correct
74e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
75e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
76e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    for (i = 1; i < data_size; i++)
77e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    {
78e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        unsigned char ch = data[i], low = ch & 0x0F, hi = ch >> 4;
79e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        if (low <= 9 && idxOutput < string_size - 1) { addr_string[idxOutput++] = low + '0'; }
80e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        if (hi <= 9 && idxOutput < string_size - 1) { addr_string[idxOutput++] = hi + '0'; }
81e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
82e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
83e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    addr_string[idxOutput] = '\0'; // Terminates the string
84e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
85e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    return idxOutput;
86e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
87e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
88e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct LocSsrMsg : public LocMsg {
89e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocApiBase* mLocApi;
90e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline LocSsrMsg(LocApiBase* locApi) :
91e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LocMsg(), mLocApi(locApi)
92e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    {
93e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
94e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
95e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void proc() const {
96e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mLocApi->close();
97e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mLocApi->open(mLocApi->getEvtMask());
98e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
99e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline void locallog() {
100e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LOC_LOGV("LocSsrMsg");
101e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
102e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void log() {
103e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
104e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
105e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
106e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
107e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct LocOpenMsg : public LocMsg {
108e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocApiBase* mLocApi;
109e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LOC_API_ADAPTER_EVENT_MASK_T mMask;
110e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline LocOpenMsg(LocApiBase* locApi,
111e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                      LOC_API_ADAPTER_EVENT_MASK_T mask) :
112e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LocMsg(), mLocApi(locApi), mMask(mask)
113e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    {
114e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
115e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
116e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void proc() const {
117e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mLocApi->open(mMask);
118e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
119e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline void locallog() {
120e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        LOC_LOGV("%s:%d]: LocOpen Mask: %x\n",
121e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                 __func__, __LINE__, mMask);
122e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
123e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void log() {
124e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        locallog();
125e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
126e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
127e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
128e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiLocApiBase::LocApiBase(const MsgTask* msgTask,
129e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                       LOC_API_ADAPTER_EVENT_MASK_T excludedMask,
130e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                       ContextBase* context) :
131e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    mExcludedMask(excludedMask), mMsgTask(msgTask),
132e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    mMask(0), mSupportedMsg(0), mContext(context)
133e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
134e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    memset(mLocAdapters, 0, sizeof(mLocAdapters));
135e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
136e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
137e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiLOC_API_ADAPTER_EVENT_MASK_T LocApiBase::getEvtMask()
138e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
139e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LOC_API_ADAPTER_EVENT_MASK_T mask = 0;
140e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
141e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_ALL_LOCADAPTERS(mask |= mLocAdapters[i]->getEvtMask());
142e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
143e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    return mask & ~mExcludedMask;
144e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
145e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
146e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocApiBase::isInSession()
147e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
148e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    bool inSession = false;
149e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
150e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    for (int i = 0;
151e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti         !inSession && i < MAX_ADAPTERS && NULL != mLocAdapters[i];
152e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti         i++) {
153e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        inSession = mLocAdapters[i]->isInSession();
154e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
155e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
156e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    return inSession;
157e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
158e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
159e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::addAdapter(LocAdapterBase* adapter)
160e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
161e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    for (int i = 0; i < MAX_ADAPTERS && mLocAdapters[i] != adapter; i++) {
162e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        if (mLocAdapters[i] == NULL) {
163e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            mLocAdapters[i] = adapter;
164e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            mMsgTask->sendMsg(new LocOpenMsg(this,
165e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                             (adapter->getEvtMask())));
166e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            break;
167e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        }
168e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
169e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
170e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
171e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::removeAdapter(LocAdapterBase* adapter)
172e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
173e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    for (int i = 0;
174e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti         i < MAX_ADAPTERS && NULL != mLocAdapters[i];
175e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti         i++) {
176e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        if (mLocAdapters[i] == adapter) {
177e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            mLocAdapters[i] = NULL;
178e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
179e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // shift the rest of the adapters up so that the pointers
180e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // in the array do not have holes.  This should be more
181e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // performant, because the array maintenance is much much
182e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // less frequent than event handlings, which need to linear
183e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // search all the adapters
184e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            int j = i;
185e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            while (++i < MAX_ADAPTERS && mLocAdapters[i] != NULL);
186e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
187e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // i would be MAX_ADAPTERS or point to a NULL
188e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            i--;
189e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // i now should point to a none NULL adapter within valid
190e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // range although i could be equal to j, but it won't hurt.
191e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // No need to check it, as it gains nothing.
192e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            mLocAdapters[j] = mLocAdapters[i];
193e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // this makes sure that we exit the for loop
194e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            mLocAdapters[i] = NULL;
195e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
196e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            // if we have an empty list of adapters
197e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            if (0 == i) {
198e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                close();
199e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            } else {
200e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                // else we need to remove the bit
201e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                mMsgTask->sendMsg(new LocOpenMsg(this, getEvtMask()));
202e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti            }
203e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        }
204e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
205e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
206e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
207e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::updateEvtMask()
208e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
209e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    mMsgTask->sendMsg(new LocOpenMsg(this, getEvtMask()));
210e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
211e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
212e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::handleEngineUpEvent()
213e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
214e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // This will take care of renegotiating the loc handle
215e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    mMsgTask->sendMsg(new LocSsrMsg(this));
216e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
217e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocDualContext::injectFeatureConfig(mContext);
218e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
219e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to all adapters.
220e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_ALL_LOCADAPTERS(mLocAdapters[i]->handleEngineUpEvent());
221e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
222e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
223e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::handleEngineDownEvent()
224e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
225e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to all adapters.
226e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_ALL_LOCADAPTERS(mLocAdapters[i]->handleEngineDownEvent());
227e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
228e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
229e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::reportPosition(UlpLocation &location,
230e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                GpsLocationExtended &locationExtended,
231e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                void* locationExt,
232e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                enum loc_sess_status status,
233e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                LocPosTechMask loc_technology_mask)
234e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
235e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // print the location info before delivering
236e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LOC_LOGV("flags: %d\n  source: %d\n  latitude: %f\n  longitude: %f\n  "
237e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             "altitude: %f\n  speed: %f\n  bearing: %f\n  accuracy: %f\n  "
238e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             "timestamp: %lld\n  rawDataSize: %d\n  rawData: %p\n  "
239e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             "Session status: %d\n Technology mask: %u",
240e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             location.gpsLocation.flags, location.position_source,
241e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             location.gpsLocation.latitude, location.gpsLocation.longitude,
242e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             location.gpsLocation.altitude, location.gpsLocation.speed,
243e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             location.gpsLocation.bearing, location.gpsLocation.accuracy,
244e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             location.gpsLocation.timestamp, location.rawDataSize,
245e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti             location.rawData, status, loc_technology_mask);
246e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to all adapters.
247e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_ALL_LOCADAPTERS(
248e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mLocAdapters[i]->reportPosition(location,
249e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                        locationExtended,
250e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                        locationExt,
251e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                        status,
252e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                        loc_technology_mask)
253e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    );
254e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
255e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
25664efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumarvoid LocApiBase::reportSv(GnssSvStatus &svStatus,
257e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                  GpsLocationExtended &locationExtended,
258e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                  void* svExt)
259e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
260e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // print the SV info before delivering
26164efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar    LOC_LOGV("num sv: %d", svStatus.num_svs);
26264efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar    for (int i = 0; i < svStatus.num_svs && i < GNSS_MAX_SVS; i++) {
26364efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar        LOC_LOGV("   %03d:   %02d    %d    %f    %f    %f   0x%02X",
264e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                 i,
26564efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar                svStatus.gnss_sv_list[i].svid,
26664efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar                svStatus.gnss_sv_list[i].constellation,
26764efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar                svStatus.gnss_sv_list[i].c_n0_dbhz,
26864efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar                svStatus.gnss_sv_list[i].elevation,
26964efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar                svStatus.gnss_sv_list[i].azimuth,
27064efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar                svStatus.gnss_sv_list[i].flags);
271e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
27264efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar
273e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to all adapters.
274e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_ALL_LOCADAPTERS(
275e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mLocAdapters[i]->reportSv(svStatus,
276e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                     locationExtended,
277e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                     svExt)
278e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    );
279e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
280e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
281e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::reportStatus(GpsStatusValue status)
282e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
283e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to all adapters.
284e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_ALL_LOCADAPTERS(mLocAdapters[i]->reportStatus(status));
285e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
286e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
287e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::reportNmea(const char* nmea, int length)
288e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
289e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to all adapters.
290e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_ALL_LOCADAPTERS(mLocAdapters[i]->reportNmea(nmea, length));
291e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
292e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
293e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::reportXtraServer(const char* url1, const char* url2,
294e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                                  const char* url3, const int maxlength)
295e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
296e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
297e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportXtraServer(url1, url2, url3, maxlength));
298e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
299e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
300e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
301e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::requestXtraData()
302e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
303e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
304e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestXtraData());
305e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
306e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
307e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::requestTime()
308e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
309e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
310e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestTime());
311e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
312e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
313e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::requestLocation()
314e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
315e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
316e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestLocation());
317e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
318e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
319e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::requestATL(int connHandle, AGpsType agps_type)
320e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
321e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
322e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestATL(connHandle, agps_type));
323e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
324e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
325e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::releaseATL(int connHandle)
326e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
327e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
328e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->releaseATL(connHandle));
329e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
330e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
331e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::requestSuplES(int connHandle)
332e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
333e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
334e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestSuplES(connHandle));
335e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
336e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
337e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::reportDataCallOpened()
338e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
339e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
340e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportDataCallOpened());
341e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
342e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
343e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::reportDataCallClosed()
344e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
345e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
346e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->reportDataCallClosed());
347e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
348e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
349e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::requestNiNotify(GpsNiNotification &notify, const void* data)
350e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
351e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to the first handling adapter.
352e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    TO_1ST_HANDLING_LOCADAPTERS(mLocAdapters[i]->requestNiNotify(notify, data));
353e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
354e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
355e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::saveSupportedMsgList(uint64_t supportedMsgList)
356e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
357e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    mSupportedMsg = supportedMsgList;
358e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
359e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
360e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid* LocApiBase :: getSibling()
361e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    DEFAULT_IMPL(NULL)
362e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
363e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiLocApiProxyBase* LocApiBase :: getLocApiProxy()
364e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    DEFAULT_IMPL(NULL)
365e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
36664efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumarvoid LocApiBase::reportGnssMeasurementData(GnssData &gnssMeasurementData)
367e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
368e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    // loop through adapters, and deliver to all adapters.
36964efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar    TO_ALL_LOCADAPTERS(mLocAdapters[i]->reportGnssMeasurementData(gnssMeasurementData));
370e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
371e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
372e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
373e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   open(LOC_API_ADAPTER_EVENT_MASK_T mask)
374e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
375e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
376e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
377e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    close()
378e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
379e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
380e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
381e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    startFix(const LocPosMode& posMode)
382e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
383e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
384e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
385e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    stopFix()
386e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
387e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
388e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
389e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    deleteAidingData(GpsAidingData f)
390e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
391e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
392e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
393e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    enableData(int enable)
394e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
395e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
396e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
397e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setAPN(char* apn, int len)
398e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
399e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
400e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
401e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    injectPosition(double latitude, double longitude, float accuracy)
402e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
403e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
404e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
405e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setTime(GpsUtcTime time, int64_t timeReference, int uncertainty)
406e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
407e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
408e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
409e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setXtraData(char* data, int length)
410e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
411e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
412e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
413e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    requestXtraServer()
414e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
415e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
416e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
417e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   atlOpenStatus(int handle, int is_succ, char* apn,
418e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                 AGpsBearerType bear, AGpsType agpsType)
419e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
420e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
421e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
422e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    atlCloseStatus(int handle, int is_succ)
423e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
424e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
425e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
426e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setPositionMode(const LocPosMode& posMode)
427e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
428e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
429e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
430e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setServer(const char* url, int len)
431e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
432e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
433e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
434e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setServer(unsigned int ip, int port,
435e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti              LocServerType type)
436e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
437e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
438e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
439e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    informNiResponse(GpsUserResponseType userResponse,
440e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                     const void* passThroughData)
441e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
442e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
443e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
444e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setSUPLVersion(uint32_t version)
445e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
446e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
447e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
448e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setLPPConfig(uint32_t profile)
449e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
450e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
451e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
452e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setSensorControlConfig(int sensorUsage,
453e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                           int sensorProvider)
454e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
455e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
456e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
457e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setSensorProperties(bool gyroBiasVarianceRandomWalk_valid,
458e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        float gyroBiasVarianceRandomWalk,
459e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        bool accelBiasVarianceRandomWalk_valid,
460e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        float accelBiasVarianceRandomWalk,
461e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        bool angleBiasVarianceRandomWalk_valid,
462e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        float angleBiasVarianceRandomWalk,
463e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        bool rateBiasVarianceRandomWalk_valid,
464e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        float rateBiasVarianceRandomWalk,
465e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        bool velocityBiasVarianceRandomWalk_valid,
466e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                        float velocityBiasVarianceRandomWalk)
467e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
468e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
469e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
470e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setSensorPerfControlConfig(int controlMode,
471e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int accelSamplesPerBatch,
472e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int accelBatchesPerSec,
473e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int gyroSamplesPerBatch,
474e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int gyroBatchesPerSec,
475e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int accelSamplesPerBatchHigh,
476e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int accelBatchesPerSecHigh,
477e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int gyroSamplesPerBatchHigh,
478e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int gyroBatchesPerSecHigh,
479e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                               int algorithmConfig)
480e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
481e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
482e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
483e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setExtPowerConfig(int isBatteryCharging)
484e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
485e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
486e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
487e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setAGLONASSProtocol(unsigned long aGlonassProtocol)
488e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
489e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
490e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
491e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   getWwanZppFix(GpsLocation& zppLoc)
492e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
493e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
494e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
495e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   getBestAvailableZppFix(GpsLocation& zppLoc)
496e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
497e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   memset(&zppLoc, 0, sizeof(zppLoc));
498e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
499e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
500e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
501e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
502e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   getBestAvailableZppFix(GpsLocation & zppLoc, LocPosTechMask & tech_mask)
503e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{
504e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   memset(&zppLoc, 0, sizeof(zppLoc));
505e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   memset(&tech_mask, 0, sizeof(tech_mask));
506e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti   DEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
507e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}
508e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
509e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint LocApiBase::
510e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    initDataServiceClient()
511e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(-1)
512e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
513e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint LocApiBase::
514e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    openAndStartDataCall()
515e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(-1)
516e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
517e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::
518e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    stopDataCall()
519e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL()
520e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
521e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::
522e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    closeDataCall()
523e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL()
524e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
525e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint LocApiBase::
526e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setGpsLock(LOC_GPS_LOCK_MASK lock)
527e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(-1)
528e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
529e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocApiBase::
530e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    installAGpsCert(const DerEncodedCertificate* pData,
531e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                    size_t length,
532e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                    uint32_t slotBitMask)
533e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL()
534e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
535e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint LocApiBase::
536e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    getGpsLock()
537e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(-1)
538e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
539e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_api_adapter_err LocApiBase::
540e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    setXtraVersionCheck(enum xtra_version_check check)
541e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(LOC_API_ADAPTER_ERR_SUCCESS)
542e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
543e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint LocApiBase::
544e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    updateRegistrationMask(LOC_API_ADAPTER_EVENT_MASK_T event,
545e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                           loc_registration_mask_status isEnabled)
546e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(-1)
547e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
548e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocApiBase::
549e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    gnssConstellationConfig()
550e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false)
551e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
552e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} // namespace loc_core
553