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>
52 bool method_has_response)
override;
61 bool CreateAndBindNamespace();
63 bool SetUpFromKernel();
64 bool SetUpFromAppSnapshot();
66 bool CreateIsolate(
const uint8_t* isolate_snapshot_data,
67 const uint8_t* isolate_snapshot_instructions);
70 void EchoString(fidl::StringPtr
value, EchoStringCallback
callback)
override;
77 void MessageEpilogue(Dart_Handle result);
78 void OnIdleTimer(async_dispatcher_t* dispatcher,
79 async::WaitBase* wait,
81 const zx_packet_signal* signal);
85 std::unique_ptr<async::Loop> loop_;
89 std::string data_path_;
90 std::shared_ptr<sys::ServiceDirectory> runner_incoming_services_;
91 std::unique_ptr<sys::ComponentContext> context_;
92 std::unique_ptr<vfs::PseudoDir> dart_outgoing_dir_;
93 fuchsia::io::DirectoryPtr dart_outgoing_dir_ptr_;
94 fidl::InterfaceRequest<fuchsia::io::Directory> dart_outgoing_dir_request_;
95 fuchsia::io::NodePtr dart_outgoing_dir_ptr_to_check_on_open_;
97 fuchsia::component::runner::ComponentStartInfo start_info_;
98 fidl::Binding<fuchsia::component::runner::ComponentController> binding_;
99 fidl::BindingSet<dart::test::Echo> echo_binding_;
101 fdio_ns_t* namespace_ =
nullptr;
108 std::vector<dart_utils::MappedResource> kernel_peices_;
110 Dart_Isolate isolate_;
111 int32_t return_code_ = 0;
113 zx::time idle_start_{0};
114 zx::timer idle_timer_;
116 &DartComponentController::OnIdleTimer>