1582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel/*
2582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * Copyright (c) 2017, The Linux Foundation. All rights reserved.
3582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *
4582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * Redistribution and use in source and binary forms, with or without
5582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * modification, are permitted provided that the following conditions are
6582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * met:
7582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *    * Redistributions of source code must retain the above copyright
8582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *      notice, this list of conditions and the following disclaimer.
9582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *    * Redistributions in binary form must reproduce the above
10582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *      copyright notice, this list of conditions and the following
11582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *      disclaimer in the documentation and/or other materials provided
12582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *      with the distribution.
13582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *    * Neither the name of The Linux Foundation nor the names of its
14582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *      contributors may be used to endorse or promote products derived
15582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *      from this software without specific prior written permission.
16582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel *
17582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel */
29582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel#ifndef _IPA_EVENT_RELAY_H_
30582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel#define _IPA_EVENT_RELAY_H_
31582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel/* External Includes */
32582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel#include <hidl/HidlTransportSupport.h>
33582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel
34582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel/* HIDL Includes */
35582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel#include <android/hardware/tetheroffload/control/1.0/ITetheringOffloadCallback.h>
36582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel
37582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel/* Internal Includes */
38582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel#include "IOffloadManager.h"
39582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel
40582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel/* Namespace pollution avoidance */
41582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudelusing ::android::hardware::tetheroffload::control::V1_0::ITetheringOffloadCallback;
42582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel
43582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel
44582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudelclass IpaEventRelay : public IOffloadManager::IpaEventListener {
45582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudelpublic:
46582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel    IpaEventRelay(const ::android::sp<ITetheringOffloadCallback>& /* cb */);
47582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel    /* ----------------------- IPA EVENT LISTENER --------------------------- */
48582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel    void onOffloadStarted();
49582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel    void onOffloadStopped(StoppedReason /* reason */);
50582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel    void onOffloadSupportAvailable();
51582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel    void onLimitReached();
52582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudelprivate:
53582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel    const ::android::sp<ITetheringOffloadCallback>& mFramework;
54582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel}; /* IpaEventRelay */
55582b9e5c388f74eeafad876c81492c81bf1f3945Thierry Strudel#endif /* _IPA_EVENT_RELAY_H_ */