wifi: Add support for multiple chips in IWifi
The modified HIDL interface supports multiple chip instances on the
device. Modify the |IWifi| interface implementation to support the new
methods.
NOTE: The legacy HAL implementation will continue to only expose 1 chip.
While there,
Change the |callbacks_| member to std::vector instead of std::set. We
don't really need a set to store the list of callbacks.
Bug: 32003988
Test: Compiles
Change-Id: I31e704100f716e223095890279bdf93d2a04377e
diff --git a/wifi/1.0/default/wifi_chip.h b/wifi/1.0/default/wifi_chip.h
index 95fabe4..ef2137b 100644
--- a/wifi/1.0/default/wifi_chip.h
+++ b/wifi/1.0/default/wifi_chip.h
@@ -37,11 +37,12 @@
*/
class WifiChip : public IWifiChip {
public:
- WifiChip(std::weak_ptr<WifiLegacyHal> legacy_hal);
+ WifiChip(ChipId chip_id, const std::weak_ptr<WifiLegacyHal> legacy_hal);
// Invalidate this instance once the HAL is stopped.
void invalidate();
// HIDL methods exposed.
+ Return<ChipId> getId() override;
Return<void> registerEventCallback(
const sp<IWifiChipEventCallback>& callback) override;
Return<void> getAvailableModes(getAvailableModes_cb cb) override;
@@ -52,6 +53,7 @@
Return<void> requestFirmwareDebugDump() override;
private:
+ ChipId chip_id_;
std::weak_ptr<WifiLegacyHal> legacy_hal_;
std::set<sp<IWifiChipEventCallback>> callbacks_;