14035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
24035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *
34035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * Redistribution and use in source and binary forms, with or without
44035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * modification, are permitted provided that the following conditions are
54035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * met:
64035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *     * Redistributions of source code must retain the above copyright
74035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *       notice, this list of conditions and the following disclaimer.
84035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *     * Redistributions in binary form must reproduce the above
94035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *       copyright notice, this list of conditions and the following
104035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *       disclaimer in the documentation and/or other materials provided
114035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *       with the distribution.
124035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *     * Neither the name of The Linux Foundation, nor the names of its
134035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *       contributors may be used to endorse or promote products derived
144035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *       from this software without specific prior written permission.
154035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *
164035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
174035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
184035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
194035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
204035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
214035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
224035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
234035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
244035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
254035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
264035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
274035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin *
284035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin */
294035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#ifndef LOC_ENG_MSG_H
304035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#define LOC_ENG_MSG_H
314035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
324035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
334035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <hardware/gps.h>
344035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <gps_extended.h>
354035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <stdlib.h>
364035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <string.h>
374035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <log_util.h>
384035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <loc_eng_log.h>
394035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <loc_eng.h>
404035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <MsgTask.h>
414035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <LocEngAdapter.h>
424035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
434035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#ifndef SSID_BUF_SIZE
444035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    #define SSID_BUF_SIZE (32+1)
454035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#endif
464035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#ifdef USE_GLIB
474035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
484035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include <glib.h>
494035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
504035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#endif /* USE_GLIB */
514035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#include "platform_lib_includes.h"
524035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
534035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#ifdef __cplusplus
544035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinextern "C" {
554035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#endif /* __cplusplus */
564035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
574035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinusing namespace loc_core;
584035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
594035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngPositionMode : public LocMsg {
604035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngAdapter* mAdapter;
614035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const LocPosMode mPosMode;
624035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngPositionMode(LocEngAdapter* adapter, LocPosMode &mode);
634035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
644035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
654035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void send() const;
664035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
674035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
684035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
694035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngStartFix : public LocMsg {
704035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngAdapter* mAdapter;
714035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngStartFix(LocEngAdapter* adapter);
724035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
734035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
744035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
754035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void send() const;
764035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
774035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
784035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngStopFix : public LocMsg {
794035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngAdapter* mAdapter;
804035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngStopFix(LocEngAdapter* adapter);
814035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
824035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
834035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
844035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void send() const;
854035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
864035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
874035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngReportPosition : public LocMsg {
884035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocAdapterBase* mAdapter;
894035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const UlpLocation mLocation;
904035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const GpsLocationExtended mLocationExtended;
914035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const void* mLocationExt;
924035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const enum loc_sess_status mStatus;
934035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const LocPosTechMask mTechMask;
944035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngReportPosition(LocAdapterBase* adapter,
954035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                         UlpLocation &loc,
964035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                         GpsLocationExtended &locExtended,
974035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                         void* locExt,
984035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                         enum loc_sess_status st,
994035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                         LocPosTechMask technology);
1004035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1014035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1024035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1034035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void send() const;
1044035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1054035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1064035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngReportSv : public LocMsg {
1074035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocAdapterBase* mAdapter;
10878bdcaf6f906f34d5744534024d6f6148890c023Mike Cailean    const GnssSvStatus mSvStatus;
1094035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const GpsLocationExtended mLocationExtended;
1104035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const void* mSvExt;
1114035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngReportSv(LocAdapterBase* adapter,
11278bdcaf6f906f34d5744534024d6f6148890c023Mike Cailean                   GnssSvStatus &sv,
1134035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                   GpsLocationExtended &locExtended,
1144035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                   void* svExtended);
1154035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1164035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1174035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1184035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void send() const;
1194035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1204035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1214035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngReportStatus : public LocMsg {
1224035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocAdapterBase* mAdapter;
1234035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const GpsStatusValue mStatus;
1244035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngReportStatus(LocAdapterBase* adapter,
1254035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                       GpsStatusValue engineStatus);
1264035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1274035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1284035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1294035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1304035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1314035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngReportNmea : public LocMsg {
1324035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
1334035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    char* const mNmea;
1344035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const int mLen;
1354035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngReportNmea(void* locEng,
1364035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                     const char* data, int len);
1374035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    inline virtual ~LocEngReportNmea()
1384035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    {
1394035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin        delete[] mNmea;
1404035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    }
1414035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1424035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1434035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1444035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1454035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1464035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngReportXtraServer : public LocMsg {
1474035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
1484035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    int mMaxLen;
1494035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    char *mServers;
1504035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngReportXtraServer(void* locEng,
1514035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                           const char *url1, const char *url2,
1524035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                           const char *url3, const int maxlength);
1534035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    inline virtual ~LocEngReportXtraServer()
1544035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    {
1554035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin        delete[] mServers;
1564035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    }
1574035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1584035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1594035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1604035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1614035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1624035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngSuplEsOpened : public LocMsg {
1634035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
1644035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngSuplEsOpened(void* locEng);
1654035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1664035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1674035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1684035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1694035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1704035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngSuplEsClosed : public LocMsg {
1714035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
1724035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngSuplEsClosed(void* locEng);
1734035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1744035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1754035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1764035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1774035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1784035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngRequestSuplEs : public LocMsg {
1794035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
1804035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const int mID;
1814035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngRequestSuplEs(void* locEng, int id);
1824035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1834035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1844035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1854035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1864035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1874035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngRequestATL : public LocMsg {
1884035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
1894035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const int mID;
1904035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const AGpsExtType mType;
1914035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngRequestATL(void* locEng, int id,
1924035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                     AGpsExtType agps_type);
1934035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
1944035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
1954035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
1964035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
1974035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
1984035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngReleaseATL : public LocMsg {
1994035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
2004035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const int mID;
2014035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngReleaseATL(void* locEng, int id);
2024035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2034035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2044035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2054035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2064035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
2074035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngReqRelBIT : public LocMsg {
2084035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
2094035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const AGpsExtType mType;
2104035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const int mIPv4Addr;
2114035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    char* const mIPv6Addr;
2124035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const bool mIsReq;
2134035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngReqRelBIT(void* instance, AGpsExtType type,
2144035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                    int ipv4, char* ipv6, bool isReq);
2154035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual ~LocEngReqRelBIT();
2164035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2174035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2184035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2194035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void send() const;
2204035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2214035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
2224035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngReqRelWifi : public LocMsg {
2234035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
2244035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const AGpsExtType mType;
2254035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const loc_if_req_sender_id_e_type mSenderId;
2264035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    char* const mSSID;
2274035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    char* const mPassword;
2284035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const bool mIsReq;
2294035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngReqRelWifi(void* locEng, AGpsExtType type,
2304035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                     loc_if_req_sender_id_e_type sender_id,
2314035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                     char* s, char* p, bool isReq);
2324035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual ~LocEngReqRelWifi();
2334035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2344035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2354035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2364035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void send() const;
2374035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2384035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
2394035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngRequestXtra : public LocMsg {
2404035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
2414035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngRequestXtra(void* locEng);
2424035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2434035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2444035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2454035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2464035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
2474035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngRequestTime : public LocMsg {
2484035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
2494035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngRequestTime(void* locEng);
2504035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2514035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2524035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2534035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2544035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
2554035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngRequestNi : public LocMsg {
2564035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
2574035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const GpsNiNotification mNotify;
2584035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    const void *mPayload;
2594035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngRequestNi(void* locEng,
2604035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                    GpsNiNotification &notif,
2614035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin                    const void* data);
2624035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2634035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2644035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2654035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2664035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
2674035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngDown : public LocMsg {
2684035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
2694035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngDown(void* locEng);
2704035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2714035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2724035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2734035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2744035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
2754035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngUp : public LocMsg {
2764035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
2774035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngUp(void* locEng);
2784035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2794035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2804035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2814035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2824035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
2834035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjinstruct LocEngGetZpp : public LocMsg {
2844035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngAdapter* mAdapter;
2854035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    LocEngGetZpp(LocEngAdapter* adapter);
2864035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2874035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2884035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
2894035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void send() const;
2904035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
2914035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
29278bdcaf6f906f34d5744534024d6f6148890c023Mike Caileanstruct LocEngReportGnssMeasurement : public LocMsg {
2934035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void* mLocEng;
29478bdcaf6f906f34d5744534024d6f6148890c023Mike Cailean    const GnssData mGnssData;
29578bdcaf6f906f34d5744534024d6f6148890c023Mike Cailean    LocEngReportGnssMeasurement(void* locEng,
29678bdcaf6f906f34d5744534024d6f6148890c023Mike Cailean                               GnssData &gnssData);
2974035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void proc() const;
2984035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    void locallog() const;
2994035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin    virtual void log() const;
3004035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin};
3014035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
3024035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#ifdef __cplusplus
3034035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin}
3044035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#endif /* __cplusplus */
3054035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin
3064035be28a255eaa5605dbd9abeb2340db584249cPatrick Tjin#endif /* LOC_ENG_MSG_H */
307