fdf::DriverBase

Summary

Constructors and Destructors

DriverBase(std::string_view name, DriverStartArgs start_args, fdf::UnownedSynchronizedDispatcher driver_dispatcher)
DriverBase(const DriverBase &)
~DriverBase()

Public types

InitMethodCallback using
fit::callback< zx::result<>(async_dispatcher_t *, Namespace &)>

Protected attributes

logger_
std::unique_ptr< Logger >

Public static functions

GetInstanceFromTokenForTesting(void *token)
DriverBaseImpl *

Public functions

PrepareStop(PrepareStopCompleter completer)
virtual void
RegisterInitMethods(InitMethodCallback cb)
void
RunInitMethods()
Start()
virtual zx::result
Start(StartCompleter completer)
virtual void
Stop()
virtual void
logger()
Logger &
operator=(const DriverBase &)=delete

Protected functions

AddChild(std::string_view node_name, cpp20::span< const fuchsia_driver_framework::NodeProperty > properties, cpp20::span< const fuchsia_driver_framework::Offer > offers)
zx::result< fidl::ClientEnd< fuchsia_driver_framework::NodeController > >
AddChild(std::string_view node_name, fuchsia_driver_framework::DevfsAddArgs & devfs_args, cpp20::span< const fuchsia_driver_framework::NodeProperty > properties, cpp20::span< const fuchsia_driver_framework::Offer > offers)
zx::result< fidl::ClientEnd< fuchsia_driver_framework::NodeController > >
AddChild(std::string_view node_name, cpp20::span< const fuchsia_driver_framework::NodeProperty2 > properties, cpp20::span< const fuchsia_driver_framework::Offer > offers)
zx::result< fidl::ClientEnd< fuchsia_driver_framework::NodeController > >
AddChild(std::string_view node_name, fuchsia_driver_framework::DevfsAddArgs & devfs_args, cpp20::span< const fuchsia_driver_framework::NodeProperty2 > properties, cpp20::span< const fuchsia_driver_framework::Offer > offers)
zx::result< fidl::ClientEnd< fuchsia_driver_framework::NodeController > >
AddOwnedChild(std::string_view node_name)
AddOwnedChild(std::string_view node_name, fuchsia_driver_framework::DevfsAddArgs & devfs_args)
InitInspectorExactlyOnce(inspect::Inspector inspector)
void
dispatcher() const
async_dispatcher_t *
driver_dispatcher() const
incoming() const
const std::shared_ptr< Namespace > &
inspector()
name() const
std::string_view
node()
fidl::ClientEnd< fuchsia_driver_framework::Node > &
node() const
const fidl::ClientEnd< fuchsia_driver_framework::Node > &
node_name() const
const std::optional< std::string > &
node_offers()
const std::vector< fuchsia_driver_framework::Offer > &
node_properties_2(const std::string & parent_node_name) const
cpp20::span< const fuchsia_driver_framework::NodeProperty2 >
outgoing()
std::shared_ptr< OutgoingDirectory > &
program() const
const std::optional< fuchsia_data::Dictionary > &
svc() const
fidl::UnownedClientEnd< fuchsia_io::Directory >
symbols() const
const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol > > &
take_config()
StructuredConfig
url() const
const std::optional< std::string > &

Public types

InitMethodCallback

fit::callback< zx::result<>(async_dispatcher_t *, Namespace &)> InitMethodCallback

Protected attributes

logger_

std::unique_ptr< Logger > logger_

Public static functions

GetInstanceFromTokenForTesting

DriverBaseImpl * GetInstanceFromTokenForTesting(
  void *token
)

Public functions

DriverBase

 DriverBase(
  std::string_view name,
  DriverStartArgs start_args,
  fdf::UnownedSynchronizedDispatcher driver_dispatcher
)

DriverBase

 DriverBase(
  const DriverBase &
)=delete

PrepareStop

virtual void PrepareStop(
  PrepareStopCompleter completer
)

RegisterInitMethods

void RegisterInitMethods(
  InitMethodCallback cb
)

RunInitMethods

zx::result RunInitMethods()

Start

virtual zx::result Start()

Start

virtual void Start(
  StartCompleter completer
)

Stop

virtual void Stop()

logger

Logger & logger()

operator=

DriverBase & operator=(
  const DriverBase &
)=delete

~DriverBase

virtual  ~DriverBase()

Protected functions

AddChild

zx::result< fidl::ClientEnd< fuchsia_driver_framework::NodeController > > AddChild(
  std::string_view node_name,
  cpp20::span< const fuchsia_driver_framework::NodeProperty > properties,
  cpp20::span< const fuchsia_driver_framework::Offer > offers
)

AddChild

zx::result< fidl::ClientEnd< fuchsia_driver_framework::NodeController > > AddChild(
  std::string_view node_name,
  fuchsia_driver_framework::DevfsAddArgs & devfs_args,
  cpp20::span< const fuchsia_driver_framework::NodeProperty > properties,
  cpp20::span< const fuchsia_driver_framework::Offer > offers
)

AddChild

zx::result< fidl::ClientEnd< fuchsia_driver_framework::NodeController > > AddChild(
  std::string_view node_name,
  cpp20::span< const fuchsia_driver_framework::NodeProperty2 > properties,
  cpp20::span< const fuchsia_driver_framework::Offer > offers
)

AddChild

zx::result< fidl::ClientEnd< fuchsia_driver_framework::NodeController > > AddChild(
  std::string_view node_name,
  fuchsia_driver_framework::DevfsAddArgs & devfs_args,
  cpp20::span< const fuchsia_driver_framework::NodeProperty2 > properties,
  cpp20::span< const fuchsia_driver_framework::Offer > offers
)

AddOwnedChild

zx::result< OwnedChildNode > AddOwnedChild(
  std::string_view node_name
)

AddOwnedChild

zx::result< OwnedChildNode > AddOwnedChild(
  std::string_view node_name,
  fuchsia_driver_framework::DevfsAddArgs & devfs_args
)

InitInspectorExactlyOnce

void InitInspectorExactlyOnce(
  inspect::Inspector inspector
)

dispatcher

async_dispatcher_t * dispatcher() const 

driver_dispatcher

const fdf::UnownedSynchronizedDispatcher & driver_dispatcher() const 

incoming

const std::shared_ptr< Namespace > & incoming() const 

inspector

inspect::ComponentInspector & inspector()

name

std::string_view name() const 

node

fidl::ClientEnd< fuchsia_driver_framework::Node > & node()

node

const fidl::ClientEnd< fuchsia_driver_framework::Node > & node() const 

node_name

const std::optional< std::string > & node_name() const 

node_offers

const std::vector< fuchsia_driver_framework::Offer > & node_offers()

node_properties_2

cpp20::span< const fuchsia_driver_framework::NodeProperty2 > node_properties_2(
  const std::string & parent_node_name
) const 

outgoing

std::shared_ptr< OutgoingDirectory > & outgoing()

program

const std::optional< fuchsia_data::Dictionary > & program() const 

svc

fidl::UnownedClientEnd< fuchsia_io::Directory > svc() const 

symbols

const std::optional< std::vector< fuchsia_driver_framework::NodeSymbol > > & symbols() const 

take_config

StructuredConfig take_config()

url

const std::optional< std::string > & url() const