1 /* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are
5  * met:
6  *     * Redistributions of source code must retain the above copyright
7  *       notice, this list of conditions and the following disclaimer.
8  *     * Redistributions in binary form must reproduce the above
9  *       copyright notice, this list of conditions and the following
10  *       disclaimer in the documentation and/or other materials provided
11  *       with the distribution.
12  *     * Neither the name of The Linux Foundation, nor the names of its
13  *       contributors may be used to endorse or promote products derived
14  *       from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  */
29 #ifndef ULP_PROXY_BASE_H
30 #define ULP_PROXY_BASE_H
31 
32 #include <gps_extended.h>
33 
34 namespace loc_core {
35 
36 class LocAdapterBase;
37 
38 class UlpProxyBase {
39 public:
40     LocPosMode mPosMode;
41     bool mFixSet;
UlpProxyBase()42     inline UlpProxyBase() {
43         mPosMode.mode = LOC_POSITION_MODE_INVALID;
44         mFixSet = false;
45     }
~UlpProxyBase()46     inline virtual ~UlpProxyBase() {}
sendStartFix()47     inline virtual bool sendStartFix() { mFixSet = true; return false; }
sendStopFix()48     inline virtual bool sendStopFix() { mFixSet = false; return false; }
sendFixMode(LocPosMode & params)49     inline virtual bool sendFixMode(LocPosMode &params) {
50         mPosMode = params;
51         return false;
52     }
53 
reportPosition(UlpLocation & location,GpsLocationExtended & locationExtended,void * locationExt,enum loc_sess_status status,LocPosTechMask loc_technology_mask)54     inline virtual bool reportPosition(UlpLocation &location,
55                                        GpsLocationExtended &locationExtended,
56                                        void* locationExt,
57                                        enum loc_sess_status status,
58                                        LocPosTechMask loc_technology_mask) {
59         return false;
60     }
reportSv(GpsSvStatus & svStatus,GpsLocationExtended & locationExtended,void * svExt)61     inline virtual bool reportSv(GpsSvStatus &svStatus,
62                                  GpsLocationExtended &locationExtended,
63                                  void* svExt) {
64         return false;
65     }
reportStatus(GpsStatusValue status)66     inline virtual bool reportStatus(GpsStatusValue status) {
67         return false;
68     }
setAdapter(LocAdapterBase * adapter)69     inline virtual void setAdapter(LocAdapterBase* adapter) {}
setCapabilities(unsigned long capabilities)70     inline virtual void setCapabilities(unsigned long capabilities) {}
reportBatchingSession(GpsExtBatchOptions & options,bool active)71     inline virtual bool reportBatchingSession(GpsExtBatchOptions &options,
72                                               bool active) {
73         return false;
74     }
reportPositions(GpsExtLocation * locations,int32_t number_of_locations,enum loc_sess_status status,LocPosTechMask techMask)75     inline virtual bool reportPositions(GpsExtLocation * locations,
76                                         int32_t number_of_locations,
77                                         enum loc_sess_status status,
78                                         LocPosTechMask techMask) {
79         return false;
80     }
81 };
82 
83 } // namespace loc_core
84 
85 #endif // ULP_PROXY_BASE_H
86