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