30 :
public dart::test::Echo,
31 public fuchsia::component::runner::ComponentController {
34 fuchsia::component::runner::ComponentStartInfo start_info,
35 std::shared_ptr<sys::ServiceDirectory> runner_incoming_services,
36 fidl::InterfaceRequest<fuchsia::component::runner::ComponentController>
58 bool CreateAndBindNamespace();
60 bool SetUpFromKernel();
61 bool SetUpFromAppSnapshot();
63 bool CreateIsolate(
const uint8_t* isolate_snapshot_data,
64 const uint8_t* isolate_snapshot_instructions);
75 void OnIdleTimer(async_dispatcher_t* dispatcher,
76 async::WaitBase* wait,
78 const zx_packet_signal* signal);
82 std::unique_ptr<async::Loop> loop_;
86 std::string data_path_;
87 std::shared_ptr<sys::ServiceDirectory> runner_incoming_services_;
88 std::unique_ptr<sys::ComponentContext> context_;
89 std::unique_ptr<vfs::PseudoDir> dart_outgoing_dir_;
90 fuchsia::io::DirectoryPtr dart_outgoing_dir_ptr_;
91 fidl::InterfaceRequest<fuchsia::io::Directory> dart_outgoing_dir_request_;
92 fuchsia::io::NodePtr dart_outgoing_dir_ptr_to_check_on_open_;
94 fuchsia::component::runner::ComponentStartInfo start_info_;
95 fidl::Binding<fuchsia::component::runner::ComponentController> binding_;
96 fidl::BindingSet<dart::test::Echo> echo_binding_;
98 fdio_ns_t* namespace_ =
nullptr;
105 std::vector<dart_utils::MappedResource> kernel_peices_;
108 int32_t return_code_ = 0;
110 zx::time idle_start_{0};
111 zx::timer idle_timer_;
113 &DartComponentController::OnIdleTimer>