| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "flutter/runtime/dart_isolate_group_data.h" |
| #include "flutter/runtime/dart_snapshot.h" |
| |
| namespace flutter { |
| |
| DartIsolateGroupData::DartIsolateGroupData( |
| const Settings& settings, |
| fml::RefPtr<const DartSnapshot> isolate_snapshot, |
| std::string advisory_script_uri, |
| std::string advisory_script_entrypoint, |
| const ChildIsolatePreparer& child_isolate_preparer, |
| const fml::closure& isolate_create_callback, |
| const fml::closure& isolate_shutdown_callback) |
| : settings_(settings), |
| isolate_snapshot_(isolate_snapshot), |
| advisory_script_uri_(advisory_script_uri), |
| advisory_script_entrypoint_(advisory_script_entrypoint), |
| child_isolate_preparer_(child_isolate_preparer), |
| isolate_create_callback_(isolate_create_callback), |
| isolate_shutdown_callback_(isolate_shutdown_callback) { |
| FML_DCHECK(isolate_snapshot_) << "Must contain a valid isolate snapshot."; |
| } |
| |
| DartIsolateGroupData::~DartIsolateGroupData() = default; |
| |
| const Settings& DartIsolateGroupData::GetSettings() const { |
| return settings_; |
| } |
| |
| fml::RefPtr<const DartSnapshot> DartIsolateGroupData::GetIsolateSnapshot() |
| const { |
| return isolate_snapshot_; |
| } |
| |
| const std::string& DartIsolateGroupData::GetAdvisoryScriptURI() const { |
| return advisory_script_uri_; |
| } |
| |
| const std::string& DartIsolateGroupData::GetAdvisoryScriptEntrypoint() const { |
| return advisory_script_entrypoint_; |
| } |
| |
| ChildIsolatePreparer DartIsolateGroupData::GetChildIsolatePreparer() const { |
| std::scoped_lock lock(child_isolate_preparer_mutex_); |
| return child_isolate_preparer_; |
| } |
| |
| const fml::closure& DartIsolateGroupData::GetIsolateCreateCallback() const { |
| return isolate_create_callback_; |
| } |
| |
| const fml::closure& DartIsolateGroupData::GetIsolateShutdownCallback() const { |
| return isolate_shutdown_callback_; |
| } |
| |
| void DartIsolateGroupData::SetChildIsolatePreparer( |
| const ChildIsolatePreparer& value) { |
| std::scoped_lock lock(child_isolate_preparer_mutex_); |
| child_isolate_preparer_ = value; |
| } |
| |
| } // namespace flutter |