1e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/* Copyright (c) 2014 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
30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifndef LOC_ADAPTER_PROXY_BASE_H
31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOC_ADAPTER_PROXY_BASE_H
32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <ContextBase.h>
34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <gps_extended.h>
35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletinamespace loc_core {
37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleticlass LocAdapterProxyBase {
39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiprivate:
40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    LocAdapterBase *mLocAdapterBase;
41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiprotected:
42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline LocAdapterProxyBase(const LOC_API_ADAPTER_EVENT_MASK_T mask,
43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                   ContextBase* context):
44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                   mLocAdapterBase(new LocAdapterBase(mask, context, this)) {
45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual ~LocAdapterProxyBase() {
47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        delete mLocAdapterBase;
48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline void updateEvtMask(LOC_API_ADAPTER_EVENT_MASK_T event,
50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti                              loc_registration_mask_status isEnabled) {
51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        mLocAdapterBase->updateEvtMask(event,isEnabled);
52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletipublic:
55da16d7831ac9c02ff31a7baa1b1c112d6a38d7b6Dante Russo    inline ContextBase* getContext() const {
56da16d7831ac9c02ff31a7baa1b1c112d6a38d7b6Dante Russo        return mLocAdapterBase->getContext();
57da16d7831ac9c02ff31a7baa1b1c112d6a38d7b6Dante Russo    }
58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void handleEngineUpEvent() {};
59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    inline virtual void handleEngineDownEvent() {};
609e34f5b67a41416858c95e17ab0124fcc12b37ccAjit Kumar    inline virtual bool reportPosition(UlpLocation& /* location */,
619e34f5b67a41416858c95e17ab0124fcc12b37ccAjit Kumar                                       GpsLocationExtended& /* locationExtended */,
629e34f5b67a41416858c95e17ab0124fcc12b37ccAjit Kumar                                       enum loc_sess_status /* status */,
639e34f5b67a41416858c95e17ab0124fcc12b37ccAjit Kumar                                       LocPosTechMask /* loc_technology_mask */) {
64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        return false;
65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    }
66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} // namespace loc_core
69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
70e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif //LOC_ADAPTER_PROXY_BASE_H
71