1 | // Copyright 2013 The Flutter Authors. All rights reserved. |
2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. |
4 | |
5 | #include "flutter/runtime/dart_isolate_group_data.h" |
6 | #include "flutter/runtime/dart_snapshot.h" |
7 | |
8 | namespace flutter { |
9 | |
10 | DartIsolateGroupData::DartIsolateGroupData( |
11 | const Settings& settings, |
12 | fml::RefPtr<const DartSnapshot> isolate_snapshot, |
13 | std::string advisory_script_uri, |
14 | std::string advisory_script_entrypoint, |
15 | const ChildIsolatePreparer& child_isolate_preparer, |
16 | const fml::closure& isolate_create_callback, |
17 | const fml::closure& isolate_shutdown_callback) |
18 | : settings_(settings), |
19 | isolate_snapshot_(isolate_snapshot), |
20 | advisory_script_uri_(advisory_script_uri), |
21 | advisory_script_entrypoint_(advisory_script_entrypoint), |
22 | child_isolate_preparer_(child_isolate_preparer), |
23 | isolate_create_callback_(isolate_create_callback), |
24 | isolate_shutdown_callback_(isolate_shutdown_callback) { |
25 | FML_DCHECK(isolate_snapshot_) << "Must contain a valid isolate snapshot." ; |
26 | } |
27 | |
28 | DartIsolateGroupData::~DartIsolateGroupData() = default; |
29 | |
30 | const Settings& DartIsolateGroupData::GetSettings() const { |
31 | return settings_; |
32 | } |
33 | |
34 | fml::RefPtr<const DartSnapshot> DartIsolateGroupData::GetIsolateSnapshot() |
35 | const { |
36 | return isolate_snapshot_; |
37 | } |
38 | |
39 | const std::string& DartIsolateGroupData::GetAdvisoryScriptURI() const { |
40 | return advisory_script_uri_; |
41 | } |
42 | |
43 | const std::string& DartIsolateGroupData::GetAdvisoryScriptEntrypoint() const { |
44 | return advisory_script_entrypoint_; |
45 | } |
46 | |
47 | ChildIsolatePreparer DartIsolateGroupData::GetChildIsolatePreparer() const { |
48 | std::scoped_lock lock(child_isolate_preparer_mutex_); |
49 | return child_isolate_preparer_; |
50 | } |
51 | |
52 | const fml::closure& DartIsolateGroupData::GetIsolateCreateCallback() const { |
53 | return isolate_create_callback_; |
54 | } |
55 | |
56 | const fml::closure& DartIsolateGroupData::GetIsolateShutdownCallback() const { |
57 | return isolate_shutdown_callback_; |
58 | } |
59 | |
60 | void DartIsolateGroupData::SetChildIsolatePreparer( |
61 | const ChildIsolatePreparer& value) { |
62 | std::scoped_lock lock(child_isolate_preparer_mutex_); |
63 | child_isolate_preparer_ = value; |
64 | } |
65 | |
66 | } // namespace flutter |
67 | |