tree: fd36edc7a148cfa0f19b9a867db1dbe2b46639bb [path history] [tgz]
  1. element_proposer/
  2. element_session/
  3. simple_element/
  4. BUILD.gn
  5. README.md
src/session/examples/elements/README.md

Overview

This directory contains an example implementation of a session that instantiates a single element proposer.

The element proposer connects to the ElementManager service offered by the session, and uses said service to add a simple_element to the session.

The simple_element then connects to the [ElementPing] service exposed to it by the session, and throug it notifies the session that it has been successfully instantiated.

Element Session

The element session is configured to:

  1. Declare a static child: the element_proposer.
  2. Declare a child collection with a name which matches the one passed to the ElementManagement library.
  3. Expose the ElementManager service.
  4. Expose the ElementPing service.
  5. Offer the ElementManager service to the element_proposer child.
  6. Offer the ElementPing service to the child collection mentioned above.

Details of how this is done can be found in the element_session.cml file.

Once the session is launched, it exposes the aforementioned services and starts handling requests.

Element Proposer

The element proposer is configured to:

  1. Use the ElementManager service.

Details of how this is done can be found in the element_proposer.cml file.

Once the element proposer is started it connects to the ElementManager service and attempts to add an element (simple_element) to the session.

Simple Element

The simple element is configured to:

  1. Use the ElementPing service.

Details of how this is done can be found in the simple_element.cml file.

Once the simple element is started, it will call ElementPing::Ping(). The session will receive the ping and log a confirmation.

Run the Session

Boot into Session

To boot into the example, first edit the session manager cml file to set the element session's component url as the argument:

"args": [ "-s", "fuchsia-pkg://fuchsia.com/element_session#meta/element_session.cm" ],

To build the relevant components and boot into the session, follow the instructions in //src/session/README.md.

Launch the Session from Command Line

To instruct a running session_manager to launch the session, run:

fx shell session_control -s fuchsia-pkg://fuchsia.com/element_session#meta/element_session.cm

The last command should output a message stating that the element's ping has been received.