1 /* Copyright (c) 2017 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 30 #ifndef __IFRAMEWORKACTIONREQ_H__ 31 #define __IFRAMEWORKACTIONREQ_H__ 32 33 #include <DataItemId.h> 34 35 namespace loc_core 36 { 37 38 /** 39 * @brief IFrameworkActionReq interface 40 * @details IFrameworkActionReq interface; 41 * Defines an interface for operations such as turnOn, turnOff a 42 * framework module described by the data item. Framework module 43 * could be bluetooth, wifi etc. 44 * Must be implemented by OS dependent code. 45 * 46 */ 47 class IFrameworkActionReq { 48 49 public: 50 /** 51 * @brief Turn on the framework module described by the data item. 52 * @details Turn on the framework module described by the data item; 53 * An IFrameworkActionReq implementer invokes this method to 54 * turn on the framework module described by the data item. 55 * Framework module could be bluetooth, wifi etc. 56 * 57 * @param dit DataItemId 58 * @param timeout Timeout after which to turn off the framework module. 59 */ 60 virtual void turnOn (DataItemId dit, int timeOut = 0) = 0; 61 62 /** 63 * @brief Turn off the framework module described by the data item. 64 * @details Turn off the framework module described by the data item; 65 * An IFrameworkActionReq implementer invokes this method to 66 * turn off the framework module described by the data item. 67 * Framework module could be bluetooth, wifi etc. 68 * 69 * @param dit DataItemId 70 */ 71 virtual void turnOff (DataItemId dit) = 0; 72 73 #ifdef USE_GLIB 74 /** 75 * @brief Setup WWAN backhaul 76 * @details Setup WWAN backhaul 77 * 78 * @param None 79 */ 80 virtual bool connectBackhaul() = 0; 81 82 /** 83 * @brief Disconnects the WWANbackhaul 84 * @details Disconnects the WWANbackhaul, only if it was setup by us 85 * 86 * @param None 87 */ 88 virtual bool disconnectBackhaul() = 0; 89 #endif 90 91 /** 92 * @brief Destructor 93 * @details Destructor 94 */ ~IFrameworkActionReq()95 virtual ~IFrameworkActionReq () {} 96 }; 97 98 } // namespace loc_core 99 100 #endif // #ifndef __IFRAMEWORKACTIONREQ_H__ 101 102