class CompositeNodeSpec

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

This partially abstract class represents a composite node spec and is responsible for managing

its state and composite node. The CompositeNodeSpec class will manage the state of its bound

nodes while its subclasses manage the composite node under the spec.

Public Methods

void CompositeNodeSpec (CompositeNodeSpecCreateInfo create_info, async_dispatcher_t * dispatcher, NodeManager * node_manager)

Defined at line 13 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.cc

zx::result<std::optional<NodeWkPtr>> BindParent (fuchsia_driver_framework::wire::CompositeParent composite_parent, const ResourceWkPtr & resource)

Called when CompositeNodeManager receives a MatchedNodeRepresentation.

Return ZX_ERR_ALREADY_BOUND if it's already bound. If the composite is complete, return

a pointer to the new node. Otherwise, return a std::nullopt. The lifetime of this

node object is managed by the parent nodes. Virtual for testing.

Defined at line 24 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.cc

void ~CompositeNodeSpec ()

Defined at line 34 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.h

const std::vector<fuchsia_driver_framework::ParentSpec2> & parent_specs ()

Defined at line 51 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.h

const std::string & name ()

Defined at line 55 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.h

const std::string & driver_host_name_for_colocation ()

Defined at line 56 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.h

std::optional<NodeWkPtr> completed_composite_node ()

Defined at line 60 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.h

const std::vector<std::optional<ResourceWkPtr>> & GetParentResources ()

Exposed for testing.

Defined at line 65 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.h

fuchsia_driver_development::wire::CompositeNodeInfo GetCompositeInfo (fidl::AnyArena & arena)

Defined at line 100 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.cc

void Remove (RemoveCompositeNodeCallback callback)

Remove the underlying composite node and unmatch all of its parents. Called for

rebind. Virtual for testing.

Defined at line 78 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.cc