class CompositeNodeSpec

Defined at line 31 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 17 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 28 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.cc

void ~CompositeNodeSpec ()

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

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

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

const std::string & name ()

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

const std::string & driver_host_name_for_colocation ()

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

std::optional<NodeWkPtr> completed_composite_node ()

Defined at line 64 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 69 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.h

std::vector<std::optional<NodeWkPtr>> GetParentNodes ()

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

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

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

void RecordInspect (inspect::Node & spec_inspect_node)

Defined at line 128 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 95 of file ../../src/devices/bin/driver_manager/composite/composite_node_spec.cc