From 907d4a234da9806cde5169c17236a0501805b70a Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Thu, 27 Oct 2016 12:48:12 -0700 Subject: [PATCH] wifi: Use hidl_return_util functions in Iface/Rtt Modify the WifiIface & WifiRttController methods to the use the new helper functions. Bug: 32337072 Test: Compiles Change-Id: I8ce5450f3012ea3ad699db3c780c0bf985492aad --- wifi/1.0/default/wifi_ap_iface.cpp | 39 ++++++++++++++---------- wifi/1.0/default/wifi_ap_iface.h | 5 +++ wifi/1.0/default/wifi_nan_iface.cpp | 39 ++++++++++++++---------- wifi/1.0/default/wifi_nan_iface.h | 5 +++ wifi/1.0/default/wifi_p2p_iface.cpp | 39 ++++++++++++++---------- wifi/1.0/default/wifi_p2p_iface.h | 5 +++ wifi/1.0/default/wifi_rtt_controller.cpp | 26 ++++++++++------ wifi/1.0/default/wifi_rtt_controller.h | 4 +++ wifi/1.0/default/wifi_sta_iface.cpp | 39 ++++++++++++++---------- wifi/1.0/default/wifi_sta_iface.h | 5 +++ 10 files changed, 132 insertions(+), 74 deletions(-) diff --git a/wifi/1.0/default/wifi_ap_iface.cpp b/wifi/1.0/default/wifi_ap_iface.cpp index 1b59b18ae3..8c389467dd 100644 --- a/wifi/1.0/default/wifi_ap_iface.cpp +++ b/wifi/1.0/default/wifi_ap_iface.cpp @@ -14,10 +14,10 @@ * limitations under the License. */ -#include "wifi_ap_iface.h" - #include +#include "hidl_return_util.h" +#include "wifi_ap_iface.h" #include "wifi_status_util.h" namespace android { @@ -25,6 +25,7 @@ namespace hardware { namespace wifi { namespace V1_0 { namespace implementation { +using hidl_return_util::validateAndCall; WifiApIface::WifiApIface(const std::string& ifname, const std::weak_ptr legacy_hal) @@ -35,24 +36,30 @@ void WifiApIface::invalidate() { is_valid_ = false; } +bool WifiApIface::isValid() { + return is_valid_; +} + Return WifiApIface::getName(getName_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb(createWifiStatus(WifiStatusCode::ERROR_WIFI_IFACE_INVALID), - hidl_string()); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), ifname_); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiApIface::getNameInternal, + hidl_status_cb); } Return WifiApIface::getType(getType_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb(createWifiStatus(WifiStatusCode::ERROR_WIFI_IFACE_INVALID), - IfaceType::AP); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::AP); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiApIface::getTypeInternal, + hidl_status_cb); +} + +std::pair WifiApIface::getNameInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), ifname_}; +} + +std::pair WifiApIface::getTypeInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::AP}; } } // namespace implementation diff --git a/wifi/1.0/default/wifi_ap_iface.h b/wifi/1.0/default/wifi_ap_iface.h index 1382112892..458bddad04 100644 --- a/wifi/1.0/default/wifi_ap_iface.h +++ b/wifi/1.0/default/wifi_ap_iface.h @@ -37,12 +37,17 @@ class WifiApIface : public IWifiApIface { const std::weak_ptr legacy_hal); // Refer to |WifiChip::invalidate()|. void invalidate(); + bool isValid(); // HIDL methods exposed. Return getName(getName_cb hidl_status_cb) override; Return getType(getType_cb hidl_status_cb) override; private: + // Corresponding worker functions for the HIDL methods. + std::pair getNameInternal(); + std::pair getTypeInternal(); + std::string ifname_; std::weak_ptr legacy_hal_; bool is_valid_; diff --git a/wifi/1.0/default/wifi_nan_iface.cpp b/wifi/1.0/default/wifi_nan_iface.cpp index da15cf6f5a..c018e67090 100644 --- a/wifi/1.0/default/wifi_nan_iface.cpp +++ b/wifi/1.0/default/wifi_nan_iface.cpp @@ -14,10 +14,10 @@ * limitations under the License. */ -#include "wifi_nan_iface.h" - #include +#include "hidl_return_util.h" +#include "wifi_nan_iface.h" #include "wifi_status_util.h" namespace android { @@ -25,6 +25,7 @@ namespace hardware { namespace wifi { namespace V1_0 { namespace implementation { +using hidl_return_util::validateAndCall; WifiNanIface::WifiNanIface(const std::string& ifname, const std::weak_ptr legacy_hal) @@ -35,24 +36,30 @@ void WifiNanIface::invalidate() { is_valid_ = false; } +bool WifiNanIface::isValid() { + return is_valid_; +} + Return WifiNanIface::getName(getName_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb(createWifiStatus(WifiStatusCode::ERROR_WIFI_IFACE_INVALID), - hidl_string()); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), ifname_); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiNanIface::getNameInternal, + hidl_status_cb); } Return WifiNanIface::getType(getType_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb(createWifiStatus(WifiStatusCode::ERROR_WIFI_IFACE_INVALID), - IfaceType::NAN); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::NAN); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiNanIface::getTypeInternal, + hidl_status_cb); +} + +std::pair WifiNanIface::getNameInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), ifname_}; +} + +std::pair WifiNanIface::getTypeInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::NAN}; } } // namespace implementation diff --git a/wifi/1.0/default/wifi_nan_iface.h b/wifi/1.0/default/wifi_nan_iface.h index a97c38a1c4..31e0c7ffe4 100644 --- a/wifi/1.0/default/wifi_nan_iface.h +++ b/wifi/1.0/default/wifi_nan_iface.h @@ -37,12 +37,17 @@ class WifiNanIface : public IWifiNanIface { const std::weak_ptr legacy_hal); // Refer to |WifiChip::invalidate()|. void invalidate(); + bool isValid(); // HIDL methods exposed. Return getName(getName_cb hidl_status_cb) override; Return getType(getType_cb hidl_status_cb) override; private: + // Corresponding worker functions for the HIDL methods. + std::pair getNameInternal(); + std::pair getTypeInternal(); + std::string ifname_; std::weak_ptr legacy_hal_; bool is_valid_; diff --git a/wifi/1.0/default/wifi_p2p_iface.cpp b/wifi/1.0/default/wifi_p2p_iface.cpp index 9ffb48c8b0..65258ba0eb 100644 --- a/wifi/1.0/default/wifi_p2p_iface.cpp +++ b/wifi/1.0/default/wifi_p2p_iface.cpp @@ -14,10 +14,10 @@ * limitations under the License. */ -#include "wifi_p2p_iface.h" - #include +#include "hidl_return_util.h" +#include "wifi_p2p_iface.h" #include "wifi_status_util.h" namespace android { @@ -25,6 +25,7 @@ namespace hardware { namespace wifi { namespace V1_0 { namespace implementation { +using hidl_return_util::validateAndCall; WifiP2pIface::WifiP2pIface(const std::string& ifname, const std::weak_ptr legacy_hal) @@ -35,24 +36,30 @@ void WifiP2pIface::invalidate() { is_valid_ = false; } +bool WifiP2pIface::isValid() { + return is_valid_; +} + Return WifiP2pIface::getName(getName_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb(createWifiStatus(WifiStatusCode::ERROR_WIFI_IFACE_INVALID), - hidl_string()); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), ifname_); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiP2pIface::getNameInternal, + hidl_status_cb); } Return WifiP2pIface::getType(getType_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb(createWifiStatus(WifiStatusCode::ERROR_WIFI_IFACE_INVALID), - IfaceType::P2P); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::P2P); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiP2pIface::getTypeInternal, + hidl_status_cb); +} + +std::pair WifiP2pIface::getNameInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), ifname_}; +} + +std::pair WifiP2pIface::getTypeInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::P2P}; } } // namespace implementation diff --git a/wifi/1.0/default/wifi_p2p_iface.h b/wifi/1.0/default/wifi_p2p_iface.h index ba02212302..d4656e1224 100644 --- a/wifi/1.0/default/wifi_p2p_iface.h +++ b/wifi/1.0/default/wifi_p2p_iface.h @@ -37,12 +37,17 @@ class WifiP2pIface : public IWifiP2pIface { const std::weak_ptr legacy_hal); // Refer to |WifiChip::invalidate()|. void invalidate(); + bool isValid(); // HIDL methods exposed. Return getName(getName_cb hidl_status_cb) override; Return getType(getType_cb hidl_status_cb) override; private: + // Corresponding worker functions for the HIDL methods. + std::pair getNameInternal(); + std::pair getTypeInternal(); + std::string ifname_; std::weak_ptr legacy_hal_; bool is_valid_; diff --git a/wifi/1.0/default/wifi_rtt_controller.cpp b/wifi/1.0/default/wifi_rtt_controller.cpp index c0d0a0054d..b7eab89d9f 100644 --- a/wifi/1.0/default/wifi_rtt_controller.cpp +++ b/wifi/1.0/default/wifi_rtt_controller.cpp @@ -14,10 +14,10 @@ * limitations under the License. */ -#include "wifi_rtt_controller.h" - #include +#include "hidl_return_util.h" +#include "wifi_rtt_controller.h" #include "wifi_status_util.h" namespace android { @@ -25,6 +25,7 @@ namespace hardware { namespace wifi { namespace V1_0 { namespace implementation { +using hidl_return_util::validateAndCall; WifiRttController::WifiRttController( const sp& bound_iface, @@ -36,15 +37,20 @@ void WifiRttController::invalidate() { is_valid_ = false; } +bool WifiRttController::isValid() { + return is_valid_; +} + Return WifiRttController::getBoundIface(getBoundIface_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb( - createWifiStatus(WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID), - nullptr); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), bound_iface_); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_RTT_CONTROLLER_INVALID, + &WifiRttController::getBoundIfaceInternal, + hidl_status_cb); +} + +std::pair> +WifiRttController::getBoundIfaceInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), bound_iface_}; } } // namespace implementation diff --git a/wifi/1.0/default/wifi_rtt_controller.h b/wifi/1.0/default/wifi_rtt_controller.h index 51b15573dc..afb6a0009c 100644 --- a/wifi/1.0/default/wifi_rtt_controller.h +++ b/wifi/1.0/default/wifi_rtt_controller.h @@ -38,11 +38,15 @@ class WifiRttController : public IWifiRttController { const std::weak_ptr legacy_hal); // Refer to |WifiChip::invalidate()|. void invalidate(); + bool isValid(); // HIDL methods exposed. Return getBoundIface(getBoundIface_cb hidl_status_cb) override; private: + // Corresponding worker functions for the HIDL methods. + std::pair> getBoundIfaceInternal(); + sp bound_iface_; std::weak_ptr legacy_hal_; bool is_valid_; diff --git a/wifi/1.0/default/wifi_sta_iface.cpp b/wifi/1.0/default/wifi_sta_iface.cpp index e3ae1118a3..83bd28db84 100644 --- a/wifi/1.0/default/wifi_sta_iface.cpp +++ b/wifi/1.0/default/wifi_sta_iface.cpp @@ -14,10 +14,10 @@ * limitations under the License. */ -#include "wifi_sta_iface.h" - #include +#include "hidl_return_util.h" +#include "wifi_sta_iface.h" #include "wifi_status_util.h" namespace android { @@ -25,6 +25,7 @@ namespace hardware { namespace wifi { namespace V1_0 { namespace implementation { +using hidl_return_util::validateAndCall; WifiStaIface::WifiStaIface(const std::string& ifname, const std::weak_ptr legacy_hal) @@ -35,24 +36,30 @@ void WifiStaIface::invalidate() { is_valid_ = false; } +bool WifiStaIface::isValid() { + return is_valid_; +} + Return WifiStaIface::getName(getName_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb(createWifiStatus(WifiStatusCode::ERROR_WIFI_IFACE_INVALID), - hidl_string()); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), ifname_); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiStaIface::getNameInternal, + hidl_status_cb); } Return WifiStaIface::getType(getType_cb hidl_status_cb) { - if (!is_valid_) { - hidl_status_cb(createWifiStatus(WifiStatusCode::ERROR_WIFI_IFACE_INVALID), - IfaceType::STA); - return Void(); - } - hidl_status_cb(createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::STA); - return Void(); + return validateAndCall(this, + WifiStatusCode::ERROR_WIFI_IFACE_INVALID, + &WifiStaIface::getTypeInternal, + hidl_status_cb); +} + +std::pair WifiStaIface::getNameInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), ifname_}; +} + +std::pair WifiStaIface::getTypeInternal() { + return {createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::STA}; } } // namespace implementation diff --git a/wifi/1.0/default/wifi_sta_iface.h b/wifi/1.0/default/wifi_sta_iface.h index 29c5f06b71..6303305e63 100644 --- a/wifi/1.0/default/wifi_sta_iface.h +++ b/wifi/1.0/default/wifi_sta_iface.h @@ -37,12 +37,17 @@ class WifiStaIface : public IWifiStaIface { const std::weak_ptr legacy_hal); // Refer to |WifiChip::invalidate()|. void invalidate(); + bool isValid(); // HIDL methods exposed. Return getName(getName_cb hidl_status_cb) override; Return getType(getType_cb hidl_status_cb) override; private: + // Corresponding worker functions for the HIDL methods. + std::pair getNameInternal(); + std::pair getTypeInternal(); + std::string ifname_; std::weak_ptr legacy_hal_; bool is_valid_;