void WifiNanIface::invalidate() {
legacy_hal_.reset();
+ event_callbacks_.clear();
is_valid_ = false;
}
hidl_status_cb);
}
+Return<void> WifiNanIface::registerEventCallback(
+ const sp<IWifiNanIfaceEventCallback>& callback,
+ registerEventCallback_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::registerEventCallbackInternal,
+ hidl_status_cb,
+ callback);
+}
+
+Return<void> WifiNanIface::enableRequest(uint32_t cmd_id,
+ const NanEnableRequest& msg,
+ enableRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::enableRequestInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::disableRequest(uint32_t cmd_id,
+ disableRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::disableRequestInternal,
+ hidl_status_cb,
+ cmd_id);
+}
+
+Return<void> WifiNanIface::publishRequest(uint32_t cmd_id,
+ const NanPublishRequest& msg,
+ publishRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::publishRequestInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::publishCancelRequest(
+ uint32_t cmd_id,
+ const NanPublishCancelRequest& msg,
+ publishCancelRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::publishCancelRequestInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::subscribeRequest(
+ uint32_t cmd_id,
+ const NanSubscribeRequest& msg,
+ subscribeRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::subscribeRequestInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::subscribeCancelRequest(
+ uint32_t cmd_id,
+ const NanSubscribeCancelRequest& msg,
+ subscribeCancelRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::subscribeCancelRequestInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::transmitFollowupRequest(
+ uint32_t cmd_id,
+ const NanTransmitFollowupRequest& msg,
+ transmitFollowupRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::transmitFollowupRequestInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::configRequest(uint32_t cmd_id,
+ const NanConfigRequest& msg,
+ configRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::configRequestInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::beaconSdfPayloadRequest(
+ uint32_t cmd_id,
+ const NanBeaconSdfPayloadRequest& msg,
+ beaconSdfPayloadRequest_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::beaconSdfPayloadRequestInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::getVersion(getVersion_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::getVersionInternal,
+ hidl_status_cb);
+}
+
+Return<void> WifiNanIface::getCapabilities(uint32_t cmd_id,
+ getCapabilities_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::getCapabilitiesInternal,
+ hidl_status_cb,
+ cmd_id);
+}
+
+Return<void> WifiNanIface::dataInterfaceCreate(
+ uint32_t cmd_id,
+ const hidl_string& iface_name,
+ dataInterfaceCreate_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::dataInterfaceCreateInternal,
+ hidl_status_cb,
+ cmd_id,
+ iface_name);
+}
+
+Return<void> WifiNanIface::dataInterfaceDelete(
+ uint32_t cmd_id,
+ const hidl_string& iface_name,
+ dataInterfaceDelete_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::dataInterfaceDeleteInternal,
+ hidl_status_cb,
+ cmd_id,
+ iface_name);
+}
+
+Return<void> WifiNanIface::dataRequestInitiator(
+ uint32_t cmd_id,
+ const NanDataPathInitiatorRequest& msg,
+ dataRequestInitiator_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::dataRequestInitiatorInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::dataIndicationResponse(
+ uint32_t cmd_id,
+ const NanDataPathIndicationResponse& msg,
+ dataIndicationResponse_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::dataIndicationResponseInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
+Return<void> WifiNanIface::dataEnd(uint32_t cmd_id,
+ const NanDataPathEndRequest& msg,
+ dataEnd_cb hidl_status_cb) {
+ return validateAndCall(this,
+ WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
+ &WifiNanIface::dataEndInternal,
+ hidl_status_cb,
+ cmd_id,
+ msg);
+}
+
Return<void> WifiNanIface::getType(getType_cb hidl_status_cb) {
return validateAndCall(this,
WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
return {createWifiStatus(WifiStatusCode::SUCCESS), IfaceType::NAN};
}
+WifiStatus WifiNanIface::registerEventCallbackInternal(
+ const sp<IWifiNanIfaceEventCallback>& callback) {
+ // TODO(b/31632518): remove the callback when the client is destroyed
+ event_callbacks_.emplace_back(callback);
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+
+WifiStatus WifiNanIface::enableRequestInternal(
+ uint32_t /* cmd_id */, const NanEnableRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+
+WifiStatus WifiNanIface::disableRequestInternal(uint32_t /* cmd_id */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+
+WifiStatus WifiNanIface::publishRequestInternal(
+ uint32_t /* cmd_id */, const NanPublishRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+
+WifiStatus WifiNanIface::publishCancelRequestInternal(
+ uint32_t /* cmd_id */, const NanPublishCancelRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::subscribeRequestInternal(
+ uint32_t /* cmd_id */, const NanSubscribeRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::subscribeCancelRequestInternal(
+ uint32_t /* cmd_id */, const NanSubscribeCancelRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::transmitFollowupRequestInternal(
+ uint32_t /* cmd_id */, const NanTransmitFollowupRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::configRequestInternal(
+ uint32_t /* cmd_id */, const NanConfigRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::beaconSdfPayloadRequestInternal(
+ uint32_t /* cmd_id */, const NanBeaconSdfPayloadRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+std::pair<WifiStatus, NanVersion> WifiNanIface::getVersionInternal() {
+ // TODO implement
+ return {createWifiStatus(WifiStatusCode::SUCCESS), 0};
+}
+WifiStatus WifiNanIface::getCapabilitiesInternal(uint32_t /* cmd_id */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::dataInterfaceCreateInternal(
+ uint32_t /* cmd_id */, const std::string& /* iface_name */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::dataInterfaceDeleteInternal(
+ uint32_t /* cmd_id */, const std::string& /* iface_name */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::dataRequestInitiatorInternal(
+ uint32_t /* cmd_id */, const NanDataPathInitiatorRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::dataIndicationResponseInternal(
+ uint32_t /* cmd_id */, const NanDataPathIndicationResponse& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+WifiStatus WifiNanIface::dataEndInternal(
+ uint32_t /* cmd_id */, const NanDataPathEndRequest& /* msg */) {
+ // TODO implement
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
} // namespace implementation
} // namespace V1_0
} // namespace wifi
#include <android-base/macros.h>
#include <android/hardware/wifi/1.0/IWifiNanIface.h>
+#include <android/hardware/wifi/1.0/IWifiNanIfaceEventCallback.h>
#include "wifi_legacy_hal.h"
// HIDL methods exposed.
Return<void> getName(getName_cb hidl_status_cb) override;
Return<void> getType(getType_cb hidl_status_cb) override;
+ Return<void> registerEventCallback(
+ const sp<IWifiNanIfaceEventCallback>& callback,
+ registerEventCallback_cb hidl_status_cb) override;
+ Return<void> enableRequest(uint32_t cmd_id,
+ const NanEnableRequest& msg,
+ enableRequest_cb hidl_status_cb) override;
+ Return<void> disableRequest(uint32_t cmd_id,
+ disableRequest_cb hidl_status_cb) override;
+ Return<void> publishRequest(uint32_t cmd_id,
+ const NanPublishRequest& msg,
+ publishRequest_cb hidl_status_cb) override;
+ Return<void> publishCancelRequest(
+ uint32_t cmd_id,
+ const NanPublishCancelRequest& msg,
+ publishCancelRequest_cb hidl_status_cb) override;
+ Return<void> subscribeRequest(uint32_t cmd_id,
+ const NanSubscribeRequest& msg,
+ subscribeRequest_cb hidl_status_cb) override;
+ Return<void> subscribeCancelRequest(
+ uint32_t cmd_id,
+ const NanSubscribeCancelRequest& msg,
+ subscribeCancelRequest_cb hidl_status_cb) override;
+ Return<void> transmitFollowupRequest(
+ uint32_t cmd_id,
+ const NanTransmitFollowupRequest& msg,
+ transmitFollowupRequest_cb hidl_status_cb) override;
+ Return<void> configRequest(uint32_t cmd_id,
+ const NanConfigRequest& msg,
+ configRequest_cb hidl_status_cb) override;
+ Return<void> beaconSdfPayloadRequest(
+ uint32_t cmd_id,
+ const NanBeaconSdfPayloadRequest& msg,
+ beaconSdfPayloadRequest_cb hidl_status_cb) override;
+ Return<void> getVersion(getVersion_cb hidl_status_cb) override;
+ Return<void> getCapabilities(uint32_t cmd_id,
+ getCapabilities_cb hidl_status_cb) override;
+ Return<void> dataInterfaceCreate(
+ uint32_t cmd_id,
+ const hidl_string& iface_name,
+ dataInterfaceCreate_cb hidl_status_cb) override;
+ Return<void> dataInterfaceDelete(
+ uint32_t cmd_id,
+ const hidl_string& iface_name,
+ dataInterfaceDelete_cb hidl_status_cb) override;
+ Return<void> dataRequestInitiator(
+ uint32_t cmd_id,
+ const NanDataPathInitiatorRequest& msg,
+ dataRequestInitiator_cb hidl_status_cb) override;
+ Return<void> dataIndicationResponse(
+ uint32_t cmd_id,
+ const NanDataPathIndicationResponse& msg,
+ dataIndicationResponse_cb hidl_status_cb) override;
+ Return<void> dataEnd(uint32_t cmd_id,
+ const NanDataPathEndRequest& msg,
+ dataEnd_cb hidl_status_cb) override;
private:
// Corresponding worker functions for the HIDL methods.
std::pair<WifiStatus, std::string> getNameInternal();
std::pair<WifiStatus, IfaceType> getTypeInternal();
+ WifiStatus registerEventCallbackInternal(
+ const sp<IWifiNanIfaceEventCallback>& callback);
+ WifiStatus enableRequestInternal(uint32_t cmd_id,
+ const NanEnableRequest& msg);
+ WifiStatus disableRequestInternal(uint32_t cmd_id);
+ WifiStatus publishRequestInternal(uint32_t cmd_id,
+ const NanPublishRequest& msg);
+ WifiStatus publishCancelRequestInternal(uint32_t cmd_id,
+ const NanPublishCancelRequest& msg);
+ WifiStatus subscribeRequestInternal(uint32_t cmd_id,
+ const NanSubscribeRequest& msg);
+ WifiStatus subscribeCancelRequestInternal(
+ uint32_t cmd_id, const NanSubscribeCancelRequest& msg);
+ WifiStatus transmitFollowupRequestInternal(
+ uint32_t cmd_id, const NanTransmitFollowupRequest& msg);
+ WifiStatus configRequestInternal(uint32_t cmd_id,
+ const NanConfigRequest& msg);
+ WifiStatus beaconSdfPayloadRequestInternal(
+ uint32_t cmd_id, const NanBeaconSdfPayloadRequest& msg);
+ std::pair<WifiStatus, NanVersion> getVersionInternal();
+ WifiStatus getCapabilitiesInternal(uint32_t cmd_id);
+ WifiStatus dataInterfaceCreateInternal(uint32_t cmd_id,
+ const std::string& iface_name);
+ WifiStatus dataInterfaceDeleteInternal(uint32_t cmd_id,
+ const std::string& iface_name);
+ WifiStatus dataRequestInitiatorInternal(
+ uint32_t cmd_id, const NanDataPathInitiatorRequest& msg);
+ WifiStatus dataIndicationResponseInternal(
+ uint32_t cmd_id, const NanDataPathIndicationResponse& msg);
+ WifiStatus dataEndInternal(uint32_t cmd_id, const NanDataPathEndRequest& msg);
std::string ifname_;
std::weak_ptr<WifiLegacyHal> legacy_hal_;
+ std::vector<sp<IWifiNanIfaceEventCallback>> event_callbacks_;
bool is_valid_;
DISALLOW_COPY_AND_ASSIGN(WifiNanIface);