summaryrefslogtreecommitdiff
path: root/core/EngineHubProxyBase.h
diff options
context:
space:
mode:
authorBhavna Sharma <sbhavna@codeaurora.org>2018-01-29 14:32:06 +0530
committerBhavna Sharma <sbhavna@codeaurora.org>2018-02-01 22:11:32 -0800
commit5b2f22434981dfa456c5a64f7fd105d7ee7df2ba (patch)
tree4712c027d7b47ff8931bdf6a1a487718349fd537 /core/EngineHubProxyBase.h
parent07883c075d0bd54db95b559b44644c1d4a9e32b6 (diff)
downloadgps-5b2f22434981dfa456c5a64f7fd105d7ee7df2ba.tar.gz
GPS: integrate GNSS engine hub with Gnss Adapter
Integrate GNSS engine hub with Gnss Adapter using dynamically loadable .so file. Change-Id: I0420a17628db96447c01b8821e54782f7d992aec CRs-fixed: 2165862
Diffstat (limited to 'core/EngineHubProxyBase.h')
-rw-r--r--core/EngineHubProxyBase.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/core/EngineHubProxyBase.h b/core/EngineHubProxyBase.h
new file mode 100644
index 0000000..c17b2c2
--- /dev/null
+++ b/core/EngineHubProxyBase.h
@@ -0,0 +1,109 @@
+/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation, nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+#ifndef ENGINE_HUB_PROXY_BASE_H
+#define ENGINE_HUB_PROXY_BASE_H
+
+namespace loc_core {
+
+class EngineHubProxyBase {
+public:
+ inline EngineHubProxyBase() {
+ }
+ inline virtual ~EngineHubProxyBase() {}
+
+ // gnss session related functions
+ inline virtual bool gnssStartFix() {
+ LOC_LOGD("%s]: empty called ", __func__);
+ return false;
+ }
+
+ inline virtual bool gnssStopFix() {
+ return false;
+ }
+
+ inline virtual bool gnssSetFixMode(const LocPosMode &params) {
+ (void) params;
+ return false;
+ }
+
+ inline virtual bool gnssDeleteAidingData(const GnssAidingData &aidingData) {
+ (void) aidingData;
+ return false;
+ }
+
+ // GNSS reports
+ inline virtual bool gnssReportPosition(const UlpLocation &location,
+ const GpsLocationExtended &locationExtended,
+ enum loc_sess_status status) {
+ (void) location;
+ (void) locationExtended;
+ (void) status;
+ return false;
+ }
+
+ inline virtual bool gnssReportSv(const GnssSvNotification& svNotify) {
+ (void) svNotify;
+ return false;
+ }
+
+ inline virtual bool gnssReportSvMeasurement(const GnssSvMeasurementSet& svMeasurementSet) {
+ (void) svMeasurementSet;
+ return false;
+ }
+
+ inline virtual bool gnssReportSvPolynomial(const GnssSvPolynomial& svPolynomial) {
+ (void) svPolynomial;
+ return false;
+ }
+
+ inline virtual bool gnssReportNmea(const char* nmea) {
+ (void) nmea;
+ return false;
+ }
+};
+
+typedef std::function<void(const UlpLocation& ulpLocation,
+ const GpsLocationExtended& locationExtended,
+ enum loc_sess_status status,
+ LocPosTechMask techMask,
+ bool fromUlp)>
+ GnssAdapterReportPositionEventCb;
+
+typedef std::function<void(const GnssSvNotification& svNotify, bool fromUlp)>
+ GnssAdapterReportSvEventCb;
+
+// potential parameters: message queue: MsgTask * msgTask;
+// callback function to report back dr and ppe position and sv report
+typedef EngineHubProxyBase* (getEngHubProxyFn)(const MsgTask * msgTask,
+ GnssAdapterReportPositionEventCb positionEventCb,
+ GnssAdapterReportSvEventCb svEventCb);
+
+} // namespace loc_core
+
+#endif // ENGINE_HUB_PROXY_BASE_H