1eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley/* 2eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * Copyright (C) 2016 The Android Open Source Project 3eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * 4eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * Licensed under the Apache License, Version 2.0 (the "License"); 5eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * you may not use this file except in compliance with the License. 6eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * You may obtain a copy of the License at 7eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * 8eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * http://www.apache.org/licenses/LICENSE-2.0 9eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * 10eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * Unless required by applicable law or agreed to in writing, software 11eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * distributed under the License is distributed on an "AS IS" BASIS, 12eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * See the License for the specific language governing permissions and 14eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley * limitations under the License. 15eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley */ 16eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley 17ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley#ifndef ANDROID_WIFI_SYSTEM_INTERFACE_TOOL_H 18ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley#define ANDROID_WIFI_SYSTEM_INTERFACE_TOOL_H 19eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley 20eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wileynamespace android { 21eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wileynamespace wifi_system { 22eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley 23ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wileyclass InterfaceTool { 24ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley public: 25ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley InterfaceTool() = default; 26ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley virtual ~InterfaceTool() = default; 27eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley 28047c9cc84293f449b1ecb2d560cf10a0ecb81c4fChristopher Wiley // Get the interface state of |if_name|. 29047c9cc84293f449b1ecb2d560cf10a0ecb81c4fChristopher Wiley // Returns true iff the interface is up. 30047c9cc84293f449b1ecb2d560cf10a0ecb81c4fChristopher Wiley virtual bool GetUpState(const char* if_name); 31047c9cc84293f449b1ecb2d560cf10a0ecb81c4fChristopher Wiley 32ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley // Set the interface named by |if_name| up or down. 33ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley // Returns true on success, false otherwise. 34ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley virtual bool SetUpState(const char* if_name, bool request_up); 35ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley 36ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley // A helpful alias for SetUpState() that assumes there is a single system 37ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley // WiFi interface. Prefer this form if you're hardcoding "wlan0" to help us 38ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley // identify all the places we are hardcoding the name of the wifi interface. 39ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley virtual bool SetWifiUpState(bool request_up); 40ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley 41ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley}; // class InterfaceTool 42eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley 43eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley} // namespace wifi_system 44eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley} // namespace android 45eb2afa500742cabd033d0a2f8dd145809ee11ad9Christopher Wiley 46ddf9ccd8144d8d381d1f5b5a625d17113229febfChristopher Wiley#endif // ANDROID_WIFI_SYSTEM_INTERFACE_TOOL_H 47