18c2d3d5afc51d3f35150f748f263870367771b6fEd Tam/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
28c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *
38c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * Redistribution and use in source and binary forms, with or without
48c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * modification, are permitted provided that the following conditions are
58c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * met:
68c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *     * Redistributions of source code must retain the above copyright
78c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       notice, this list of conditions and the following disclaimer.
88c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *     * Redistributions in binary form must reproduce the above
98c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       copyright notice, this list of conditions and the following
108c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       disclaimer in the documentation and/or other materials provided
118c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       with the distribution.
128c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *     * Neither the name of The Linux Foundation, nor the names of its
138c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       contributors may be used to endorse or promote products derived
148c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *       from this software without specific prior written permission.
158c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *
168c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
178c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
188c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
198c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
208c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
218c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
228c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
238c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
248c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
258c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
268c2d3d5afc51d3f35150f748f263870367771b6fEd Tam * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
278c2d3d5afc51d3f35150f748f263870367771b6fEd Tam *
288c2d3d5afc51d3f35150f748f263870367771b6fEd Tam */
298c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#ifndef LOC_ENG_MSG_H
308c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#define LOC_ENG_MSG_H
318c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
328c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
338c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <hardware/gps.h>
348c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <gps_extended.h>
358c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <stdlib.h>
368c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <string.h>
378c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <log_util.h>
388c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <loc_eng_log.h>
398c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <loc_eng.h>
408c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <MsgTask.h>
418c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <LocEngAdapter.h>
428c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
438c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#ifndef SSID_BUF_SIZE
448c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    #define SSID_BUF_SIZE (32+1)
458c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#endif
468c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#ifdef USE_GLIB
478c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
488c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include <glib.h>
498c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
508c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#endif /* USE_GLIB */
518c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#include "platform_lib_includes.h"
528c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
538c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#ifdef __cplusplus
548c2d3d5afc51d3f35150f748f263870367771b6fEd Tamextern "C" {
558c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#endif /* __cplusplus */
568c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
578c2d3d5afc51d3f35150f748f263870367771b6fEd Tamusing namespace loc_core;
588c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
598c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngPositionMode : public LocMsg {
608c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngAdapter* mAdapter;
618c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const LocPosMode mPosMode;
628c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngPositionMode(LocEngAdapter* adapter, LocPosMode &mode);
638c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
648c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
658c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void send() const;
668c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
678c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
688c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
698c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngStartFix : public LocMsg {
708c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngAdapter* mAdapter;
718c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngStartFix(LocEngAdapter* adapter);
728c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
738c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
748c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
758c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void send() const;
768c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
778c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
788c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngStopFix : public LocMsg {
798c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngAdapter* mAdapter;
808c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngStopFix(LocEngAdapter* adapter);
818c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
828c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
838c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
848c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void send() const;
858c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
868c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
878c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReportPosition : public LocMsg {
888c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocAdapterBase* mAdapter;
898c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const UlpLocation mLocation;
908c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const GpsLocationExtended mLocationExtended;
918c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const void* mLocationExt;
928c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const enum loc_sess_status mStatus;
938c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const LocPosTechMask mTechMask;
948c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReportPosition(LocAdapterBase* adapter,
958c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                         UlpLocation &loc,
968c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                         GpsLocationExtended &locExtended,
978c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                         void* locExt,
988c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                         enum loc_sess_status st,
998c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                         LocPosTechMask technology);
1008c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1018c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1028c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1038c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void send() const;
1048c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1058c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1068c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReportSv : public LocMsg {
1078c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocAdapterBase* mAdapter;
1088c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const GpsSvStatus mSvStatus;
1098c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const GpsLocationExtended mLocationExtended;
1108c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const void* mSvExt;
1118c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReportSv(LocAdapterBase* adapter,
1128c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                   GpsSvStatus &sv,
1138c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                   GpsLocationExtended &locExtended,
1148c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                   void* svExtended);
1158c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1168c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1178c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1188c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void send() const;
1198c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1208c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1218c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReportStatus : public LocMsg {
1228c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocAdapterBase* mAdapter;
1238c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const GpsStatusValue mStatus;
1248c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReportStatus(LocAdapterBase* adapter,
1258c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                       GpsStatusValue engineStatus);
1268c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1278c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1288c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1298c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1308c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1318c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReportNmea : public LocMsg {
1328c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
1338c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    char* const mNmea;
1348c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const int mLen;
1358c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReportNmea(void* locEng,
1368c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                     const char* data, int len);
1378c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    inline virtual ~LocEngReportNmea()
1388c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    {
1398c2d3d5afc51d3f35150f748f263870367771b6fEd Tam        delete[] mNmea;
1408c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    }
1418c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1428c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1438c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1448c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1458c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1468c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReportXtraServer : public LocMsg {
1478c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
1488c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    int mMaxLen;
1498c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    char *mServers;
1508c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReportXtraServer(void* locEng,
1518c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                           const char *url1, const char *url2,
1528c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                           const char *url3, const int maxlength);
1538c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    inline virtual ~LocEngReportXtraServer()
1548c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    {
1558c2d3d5afc51d3f35150f748f263870367771b6fEd Tam        delete[] mServers;
1568c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    }
1578c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1588c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1598c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1608c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1618c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1628c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngSuplEsOpened : public LocMsg {
1638c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
1648c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngSuplEsOpened(void* locEng);
1658c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1668c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1678c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1688c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1698c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1708c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngSuplEsClosed : public LocMsg {
1718c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
1728c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngSuplEsClosed(void* locEng);
1738c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1748c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1758c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1768c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1778c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1788c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngRequestSuplEs : public LocMsg {
1798c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
1808c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const int mID;
1818c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngRequestSuplEs(void* locEng, int id);
1828c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1838c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1848c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1858c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1868c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1878c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngRequestATL : public LocMsg {
1888c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
1898c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const int mID;
1908c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const AGpsExtType mType;
1918c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngRequestATL(void* locEng, int id,
1928c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                     AGpsExtType agps_type);
1938c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
1948c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
1958c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
1968c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
1978c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
1988c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReleaseATL : public LocMsg {
1998c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2008c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const int mID;
2018c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReleaseATL(void* locEng, int id);
2028c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2038c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2048c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2058c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2068c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2078c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReqRelBIT : public LocMsg {
2088c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2098c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const AGpsExtType mType;
2108c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const int mIPv4Addr;
2118c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    char* const mIPv6Addr;
2128c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const bool mIsReq;
2138c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReqRelBIT(void* instance, AGpsExtType type,
2148c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                    int ipv4, char* ipv6, bool isReq);
2158c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual ~LocEngReqRelBIT();
2168c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2178c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2188c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2198c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void send() const;
2208c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2218c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2228c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReqRelWifi : public LocMsg {
2238c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2248c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const AGpsExtType mType;
2258c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const loc_if_req_sender_id_e_type mSenderId;
2268c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    char* const mSSID;
2278c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    char* const mPassword;
2288c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const bool mIsReq;
2298c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReqRelWifi(void* locEng, AGpsExtType type,
2308c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                     loc_if_req_sender_id_e_type sender_id,
2318c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                     char* s, char* p, bool isReq);
2328c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual ~LocEngReqRelWifi();
2338c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2348c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2358c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2368c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void send() const;
2378c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2388c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2398c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngRequestXtra : public LocMsg {
2408c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2418c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngRequestXtra(void* locEng);
2428c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2438c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2448c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2458c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2468c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2478c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngRequestTime : public LocMsg {
2488c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2498c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngRequestTime(void* locEng);
2508c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2518c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2528c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2538c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2548c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2558c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngRequestNi : public LocMsg {
2568c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2578c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const GpsNiNotification mNotify;
2588c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const void *mPayload;
2598c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngRequestNi(void* locEng,
2608c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                    GpsNiNotification &notif,
2618c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                    const void* data);
2628c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2638c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2648c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2658c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2668c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2678c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngDown : public LocMsg {
2688c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2698c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngDown(void* locEng);
2708c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2718c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2728c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2738c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2748c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2758c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngUp : public LocMsg {
2768c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2778c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngUp(void* locEng);
2788c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2798c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2808c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2818c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2828c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2838c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngGetZpp : public LocMsg {
2848c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngAdapter* mAdapter;
2858c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngGetZpp(LocEngAdapter* adapter);
2868c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2878c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2888c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
2898c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void send() const;
2908c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
2918c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
2928c2d3d5afc51d3f35150f748f263870367771b6fEd Tamstruct LocEngReportGpsMeasurement : public LocMsg {
2938c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void* mLocEng;
2948c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    const GpsData mGpsData;
2958c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    LocEngReportGpsMeasurement(void* locEng,
2968c2d3d5afc51d3f35150f748f263870367771b6fEd Tam                               GpsData &gpsData);
2978c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void proc() const;
2988c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    void locallog() const;
2998c2d3d5afc51d3f35150f748f263870367771b6fEd Tam    virtual void log() const;
3008c2d3d5afc51d3f35150f748f263870367771b6fEd Tam};
3018c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
3028c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#ifdef __cplusplus
3038c2d3d5afc51d3f35150f748f263870367771b6fEd Tam}
3048c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#endif /* __cplusplus */
3058c2d3d5afc51d3f35150f748f263870367771b6fEd Tam
3068c2d3d5afc51d3f35150f748f263870367771b6fEd Tam#endif /* LOC_ENG_MSG_H */
307