Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c92d446 authored by Roshan Pius's avatar Roshan Pius
Browse files

wifi: Stub implementation of WifiNanIface methods

Bug: 31991076
Test: Compiles
Change-Id: Ia3723a14af20176c08e6e466e8b55bb32c8f9d41
parent 7913f5e4
Loading
Loading
Loading
Loading
+275 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ WifiNanIface::WifiNanIface(const std::string& ifname,

void WifiNanIface::invalidate() {
  legacy_hal_.reset();
  event_callbacks_.clear();
  is_valid_ = false;
}

@@ -47,6 +48,193 @@ Return<void> WifiNanIface::getName(getName_cb hidl_status_cb) {
                         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,
@@ -62,6 +250,93 @@ std::pair<WifiStatus, IfaceType> WifiNanIface::getTypeInternal() {
  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
+87 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@

#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"

@@ -42,14 +43,100 @@ class WifiNanIface : public IWifiNanIface {
  // 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);