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::CompositeNodeSpecfidl_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,boolenable_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::stringspec_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