class CompositeNodeSpecManager

Defined at line 29 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec_manager.h

This class is responsible for managing composite node specs. It keeps track of the specs

and their matching composite driver and nodes. CompositeNodeSpecManager is owned by a

CompositeManagerBridge and must be outlived by it.

Public Methods

void CompositeNodeSpecManager (CompositeManagerBridge * bridge)

Defined at line 15 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec_manager.cc

void AddSpec (fuchsia_driver_framework::wire::CompositeNodeSpec fidl_spec, std::unique_ptr<CompositeNodeSpec> spec, fit::callback<void (fit::result<fuchsia_driver_framework::CompositeNodeSpecError>)> callback)

Adds a composite node spec to the driver index. If it's successfully added, then the

CompositeNodeSpecManager stores the composite node spec in a map. After that, it sends a call

to CompositeManagerBridge to bind all unbound devices.

Defined at line 18 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec_manager.cc

zx::result<BindSpecResult> BindParentSpec (fidl::AnyArena & arena, fidl::VectorView<fuchsia_driver_framework::wire::CompositeParent> composite_parents, const NodeWkPtr & node_ptr, bool enable_multibind)

Binds the device to the spec parents it was matched to. If |enable_multibind| is false,

CompositeNodeSpecManager will only bind the device to the first unbound parent. Depending

on the implementation, completed_node_and_drivers will return an empty vector or a list of

completed CompositeNodeAndDrivers.

Defined at line 53 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec_manager.cc

const CompositeNodeSpecMap & specs ()

Exposed for testing only.

Defined at line 59 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec_manager.h

void Rebind (std::string spec_name, std::optional<std::string> restart_driver_url_suffix, fit::callback<void (zx::result<>)> rebind_spec_completer)

Defined at line 173 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec_manager.cc

std::vector<fuchsia_driver_development::wire::CompositeNodeInfo> GetCompositeInfo (fidl::AnyArena & arena)

Defined at line 195 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec_manager.cc