From ff158ce2dfbce6bc5900d193e0431d5f4afa8798 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Thu, 1 Feb 2024 03:29:56 +0000 Subject: [PATCH] Deploy code docs to GitHub Pages for workflow run 2226 Commit: a0ab7fca096f6c1637e2f5ad00b87a309049ff7e --- _application_8cs_source.html | 6 +- _byond_installation_8cs_source.html | 245 +++--- _byond_installer_base_8cs_source.html | 309 +++---- _command_factory_8cs_source.html | 2 +- _configuration_8cs_source.html | 2 +- _delegating_engine_installer_8cs_source.html | 2 +- _dream_maker_8cs_source.html | 249 +++--- _engine_command_8cs_source.html | 2 +- _engine_executable_lock_8cs_source.html | 10 +- _engine_installation_base_8cs_source.html | 189 +++-- _engine_installer_base_8cs_source.html | 2 +- _engine_manager_8cs_source.html | 2 +- _i_engine_executable_lock_8cs_source.html | 2 +- _i_engine_installation_8cs_source.html | 9 +- _i_engine_installation_data_8cs_source.html | 2 +- _i_engine_installer_8cs_source.html | 2 +- _i_engine_manager_8cs_source.html | 2 +- _i_instance_core_8cs_source.html | 2 +- _i_process_executor_8cs_source.html | 45 +- _i_session_controller_factory_8cs_source.html | 2 +- _instance_factory_8cs_source.html | 4 +- _instance_wrapper_8cs_source.html | 2 +- _open_dream_installation_8cs_source.html | 237 +++--- _open_dream_installer_8cs_source.html | 234 +++--- _posix_byond_installer_8cs_source.html | 2 +- _process_executor_8cs_source.html | 628 ++++++++------- ...y_engine_installation_data_8cs_source.html | 2 +- _session_controller_8cs_source.html | 2 +- _session_controller_factory_8cs_source.html | 285 +++---- _session_persistor_8cs_source.html | 2 +- _socket_extensions_8cs_source.html | 4 +- ...rver_8_api_8_assembly_info_8cs_source.html | 2 +- ...r_8_common_8_assembly_info_8cs_source.html | 2 +- ...st_2_components_2_instance_8cs_source.html | 2 +- ...ver_8_host_8_assembly_info_8cs_source.html | 2 +- ...t_8_common_8_assembly_info_8cs_source.html | 2 +- _windows_byond_installer_8cs_source.html | 8 +- _windows_firewall_helper_8cs_source.html | 6 +- _windows_open_dream_installer_8cs_source.html | 8 +- ...m_engine_installation_data_8cs_source.html | 2 +- changelog.yml | 7 +- ...1_1_api_1_1_models_1_1_engine_version.html | 4 +- ...al_1_1_dream_daemon_launch_parameters.html | 14 +- ..._extensions_1_1_value_task_extensions.html | 2 +- ...onents_1_1_deployment_1_1_dream_maker.html | 257 +++--- ...ae4c6ab993d51ca238233b5ba361c98_cgraph.map | 3 +- ...ae4c6ab993d51ca238233b5ba361c98_cgraph.md5 | 2 +- ...ae4c6ab993d51ca238233b5ba361c98_cgraph.png | Bin 12508 -> 18697 bytes ...394e942cf255412fe358bef742b580c_cgraph.map | 7 +- ...394e942cf255412fe358bef742b580c_cgraph.md5 | 2 +- ...394e942cf255412fe358bef742b580c_cgraph.png | Bin 95048 -> 101398 bytes ...8ea1632011a37a072e9d1c9e3d04c13_cgraph.map | 31 +- ...8ea1632011a37a072e9d1c9e3d04c13_cgraph.md5 | 2 +- ...8ea1632011a37a072e9d1c9e3d04c13_cgraph.png | Bin 295067 -> 301209 bytes ...489ef5c91d097ff3366d5bc63d8277e_cgraph.map | 11 +- ...489ef5c91d097ff3366d5bc63d8277e_cgraph.md5 | 2 +- ...489ef5c91d097ff3366d5bc63d8277e_cgraph.png | Bin 137968 -> 144334 bytes ...engine_1_1_byond_installation-members.html | 27 +- ...nts_1_1_engine_1_1_byond_installation.html | 241 +++--- ...s_1_1_engine_1_1_byond_installer_base.html | 311 ++++--- ...85cb89b454994000a6d5e853f7fef39_cgraph.map | 6 +- ...85cb89b454994000a6d5e853f7fef39_cgraph.md5 | 2 +- ...85cb89b454994000a6d5e853f7fef39_cgraph.png | Bin 35655 -> 20348 bytes ...ne_1_1_engine_executable_lock-members.html | 17 +- ...1_1_engine_1_1_engine_executable_lock.html | 62 ++ ..._1_1_engine_installation_base-members.html | 19 +- ...1_engine_1_1_engine_installation_base.html | 250 +++++- ...4c0770c5de49714829bcf0ba5a25018_cgraph.map | 5 + ...4c0770c5de49714829bcf0ba5a25018_cgraph.md5 | 1 + ...4c0770c5de49714829bcf0ba5a25018_cgraph.png | Bin 0 -> 15738 bytes ..._1_1_engine_1_1_engine_installer_base.html | 6 +- ...e_1_1_open_dream_installation-members.html | 14 +- ..._1_engine_1_1_open_dream_installation.html | 158 ++-- ...1_open_dream_installation__coll__graph.map | 11 +- ...1_open_dream_installation__coll__graph.md5 | 2 +- ...1_open_dream_installation__coll__graph.png | Bin 41316 -> 32081 bytes ...s_1_1_engine_1_1_open_dream_installer.html | 216 ++--- ...b3454e1b0d55e9fda7da0b792e5ae78_cgraph.map | 2 +- ...b3454e1b0d55e9fda7da0b792e5ae78_cgraph.md5 | 2 +- ..._1_engine_1_1_windows_byond_installer.html | 14 +- ...a246ed532bfa00b0e471a7fa51f2c17_cgraph.map | 2 +- ...a246ed532bfa00b0e471a7fa51f2c17_cgraph.md5 | 2 +- ...db765cab1e3405e710040bdcb223085_cgraph.map | 2 +- ...db765cab1e3405e710040bdcb223085_cgraph.md5 | 2 +- ...fbb08c2eb8e00b430ef4cf683468c90_cgraph.map | 2 +- ...fbb08c2eb8e00b430ef4cf683468c90_cgraph.md5 | 2 +- ...696117e411ba59dd94692141e3885c6_cgraph.map | 2 +- ...696117e411ba59dd94692141e3885c6_cgraph.md5 | 2 +- ...gine_1_1_windows_open_dream_installer.html | 10 +- ...934a7299ca217f93f49b4be99ae2188_cgraph.map | 2 +- ...934a7299ca217f93f49b4be99ae2188_cgraph.md5 | 2 +- ...44c356e8e1919479866587c37951dde_cgraph.map | 2 +- ...44c356e8e1919479866587c37951dde_cgraph.md5 | 2 +- ..._1_1_host_1_1_components_1_1_instance.html | 9 +- ...1cc04923d2557eefd57ad2ded9eb7f2_cgraph.md5 | 2 +- ...e70b9e1b420670ff8b02592a15dbdbe_cgraph.map | 47 +- ...e70b9e1b420670ff8b02592a15dbdbe_cgraph.md5 | 2 +- ...e70b9e1b420670ff8b02592a15dbdbe_cgraph.png | Bin 463251 -> 468713 bytes ...b736b47a7400fb861186b8dad1c4c4c_cgraph.map | 47 +- ...b736b47a7400fb861186b8dad1c4c4c_cgraph.md5 | 2 +- ...b736b47a7400fb861186b8dad1c4c4c_cgraph.png | Bin 450980 -> 456467 bytes ...c1fd9e8dc3bd57b78dbcbc4e7f449b4_cgraph.map | 49 +- ...c1fd9e8dc3bd57b78dbcbc4e7f449b4_cgraph.md5 | 2 +- ...c1fd9e8dc3bd57b78dbcbc4e7f449b4_cgraph.png | Bin 481250 -> 486670 bytes ...nts_1_1_interop_1_1_d_m_api_constants.html | 2 +- ...ession_1_1_session_controller_factory.html | 303 +++---- ...f44ac08947e06971e21e3f39bdd3683_cgraph.map | 7 +- ...f44ac08947e06971e21e3f39bdd3683_cgraph.md5 | 2 +- ...f44ac08947e06971e21e3f39bdd3683_cgraph.png | Bin 41106 -> 49833 bytes ...1f001876dbd9f80e47e492fc2ed9d39_cgraph.map | 43 +- ...1f001876dbd9f80e47e492fc2ed9d39_cgraph.md5 | 2 +- ...1f001876dbd9f80e47e492fc2ed9d39_cgraph.png | Bin 209103 -> 215694 bytes ...ts_1_1_static_files_1_1_configuration.html | 4 +- ...nents_1_1_watchdog_1_1_basic_watchdog.html | 27 +- ...57f98eb5a2516c2a70c35d684c2c21b_cgraph.map | 63 +- ...57f98eb5a2516c2a70c35d684c2c21b_cgraph.md5 | 2 +- ...57f98eb5a2516c2a70c35d684c2c21b_cgraph.png | Bin 408901 -> 416083 bytes ...ver_1_1_host_1_1_core_1_1_application.html | 4 +- ..._1_1_extensions_1_1_socket_extensions.html | 6 +- ...erver_1_1_host_1_1_system_1_1_process.html | 2 +- ...1_system_1_1_process_executor-members.html | 2 +- ..._host_1_1_system_1_1_process_executor.html | 605 +++++++------- ...06b74b2bb7f77e8e6880c681d8c12f_icgraph.map | 2 +- ...06b74b2bb7f77e8e6880c681d8c12f_icgraph.md5 | 2 +- ...8ff78981191a9e243f82df1376db860_cgraph.map | 0 ...8ff78981191a9e243f82df1376db860_cgraph.md5 | 0 ...8ff78981191a9e243f82df1376db860_cgraph.png | Bin ...ff78981191a9e243f82df1376db860_icgraph.map | 0 ...ff78981191a9e243f82df1376db860_icgraph.md5 | 0 ...ff78981191a9e243f82df1376db860_icgraph.png | Bin ..._1_system_1_1_windows_firewall_helper.html | 4 +- ...446ef24242576e5459ccaa30d473a59_cgraph.map | 2 +- ...446ef24242576e5459ccaa30d473a59_cgraph.md5 | 2 +- ..._1_1_utils_1_1_semaphore_slim_context.html | 2 +- functions_b.html | 2 +- functions_c.html | 5 +- functions_d.html | 2 +- functions_e.html | 1 + functions_func_b.html | 2 +- functions_func_e.html | 1 + functions_func_l.html | 3 +- functions_func_o.html | 2 +- functions_g.html | 4 +- functions_h.html | 3 +- functions_i.html | 7 +- functions_j.html | 2 +- functions_l.html | 3 +- functions_n.html | 3 +- functions_o.html | 6 +- functions_prop_i.html | 1 + functions_s.html | 2 +- functions_t.html | 3 +- functions_vars_i.html | 2 +- index.html | 29 +- ...nts_1_1_deployment_1_1_i_dmb_provider.html | 2 +- ...emote_1_1_i_remote_deployment_manager.html | 2 +- ..._1_1_i_engine_executable_lock-members.html | 11 +- ...1_engine_1_1_i_engine_executable_lock.html | 3 + ...ine_1_1_i_engine_installation-members.html | 11 +- ..._1_1_engine_1_1_i_engine_installation.html | 71 ++ ...08236db634210e10291a4ffddd0df8_icgraph.map | 14 + ...08236db634210e10291a4ffddd0df8_icgraph.md5 | 1 + ...08236db634210e10291a4ffddd0df8_icgraph.png | Bin 0 -> 60650 bytes ..._1_host_1_1_i_o_1_1_i_file_downloader.html | 2 +- ...er_1_1_host_1_1_i_o_1_1_i_i_o_manager.html | 206 ++--- ...a442b5dff16f5e7a730ec354e81d78_icgraph.map | 63 +- ...a442b5dff16f5e7a730ec354e81d78_icgraph.md5 | 2 +- ...a442b5dff16f5e7a730ec354e81d78_icgraph.png | Bin 345753 -> 332308 bytes ...7b549fab5803c199a7d37100650e85_icgraph.map | 15 +- ...7b549fab5803c199a7d37100650e85_icgraph.md5 | 2 +- ...7b549fab5803c199a7d37100650e85_icgraph.png | Bin 41944 -> 49809 bytes ...6f4eb5c679683b7e519847a6c3574e_icgraph.map | 81 +- ...6f4eb5c679683b7e519847a6c3574e_icgraph.md5 | 2 +- ...6f4eb5c679683b7e519847a6c3574e_icgraph.png | Bin 448154 -> 436962 bytes ...d1ad47e4ba1c1f7407f5dd50a81de8_icgraph.map | 2 +- ...d1ad47e4ba1c1f7407f5dd50a81de8_icgraph.md5 | 2 +- ...de873180481f7afa206b6282158d62_icgraph.map | 31 +- ...de873180481f7afa206b6282158d62_icgraph.md5 | 2 +- ...de873180481f7afa206b6282158d62_icgraph.png | Bin 140596 -> 151188 bytes ..._1_1_system_1_1_i_platform_identifier.html | 2 +- ...ver_1_1_host_1_1_system_1_1_i_process.html | 6 +- ..._1_host_1_1_system_1_1_i_process_base.html | 2 +- ...system_1_1_i_process_executor-members.html | 2 +- ...ost_1_1_system_1_1_i_process_executor.html | 29 +- ...aaca1c9368096a2366a7a14143d177_icgraph.map | 0 ...aaca1c9368096a2366a7a14143d177_icgraph.md5 | 0 ...aaca1c9368096a2366a7a14143d177_icgraph.png | Bin md__s_e_c_u_r_i_t_y.html | 4 +- ...er_1_1_host_1_1_components_1_1_engine.html | 114 +-- search/all_10.js | 111 +-- search/all_11.js | 305 ++++--- search/all_13.js | 151 ++-- search/all_14.js | 453 +++++------ search/all_15.js | 235 +++--- search/all_16.js | 20 +- search/all_2.js | 72 +- search/all_3.js | 2 +- search/all_4.js | 762 +++++++++--------- search/all_5.js | 412 +++++----- search/all_6.js | 122 +-- search/all_8.js | 31 +- search/all_9.js | 8 +- search/all_a.js | 743 ++++++++--------- search/all_b.js | 40 +- search/all_d.js | 65 +- search/all_f.js | 4 +- search/files_11.js | 2 +- search/files_12.js | 4 +- search/files_14.js | 2 +- search/files_15.js | 2 +- search/files_4.js | 2 +- search/files_5.js | 2 +- search/files_a.js | 6 +- search/functions_1.js | 2 +- search/functions_4.js | 39 +- search/functions_b.js | 27 +- search/functions_e.js | 2 +- search/properties_8.js | 63 +- search/variables_8.js | 2 +- 219 files changed, 5253 insertions(+), 4719 deletions(-) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_engine_installation_base_aa4c0770c5de49714829bcf0ba5a25018_cgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_engine_installation_base_aa4c0770c5de49714829bcf0ba5a25018_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_engine_installation_base_aa4c0770c5de49714829bcf0ba5a25018_cgraph.png rename class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a7b21fa9f1a882c96f540bb4b9c4c2c9f_cgraph.map => class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a98ff78981191a9e243f82df1376db860_cgraph.map (100%) rename class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a7b21fa9f1a882c96f540bb4b9c4c2c9f_cgraph.md5 => class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a98ff78981191a9e243f82df1376db860_cgraph.md5 (100%) rename class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a7b21fa9f1a882c96f540bb4b9c4c2c9f_cgraph.png => class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a98ff78981191a9e243f82df1376db860_cgraph.png (100%) rename class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a7b21fa9f1a882c96f540bb4b9c4c2c9f_icgraph.map => class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a98ff78981191a9e243f82df1376db860_icgraph.map (100%) rename class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a7b21fa9f1a882c96f540bb4b9c4c2c9f_icgraph.md5 => class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a98ff78981191a9e243f82df1376db860_icgraph.md5 (100%) rename class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a7b21fa9f1a882c96f540bb4b9c4c2c9f_icgraph.png => class_tgstation_1_1_server_1_1_host_1_1_system_1_1_process_executor_a98ff78981191a9e243f82df1376db860_icgraph.png (100%) create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation_a1f08236db634210e10291a4ffddd0df8_icgraph.map create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation_a1f08236db634210e10291a4ffddd0df8_icgraph.md5 create mode 100644 interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation_a1f08236db634210e10291a4ffddd0df8_icgraph.png rename interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_ae3bc97924b8208c67c3fc23a92eb789d_icgraph.map => interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_a51aaca1c9368096a2366a7a14143d177_icgraph.map (100%) rename interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_ae3bc97924b8208c67c3fc23a92eb789d_icgraph.md5 => interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_a51aaca1c9368096a2366a7a14143d177_icgraph.md5 (100%) rename interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_ae3bc97924b8208c67c3fc23a92eb789d_icgraph.png => interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_a51aaca1c9368096a2366a7a14143d177_icgraph.png (100%) diff --git a/_application_8cs_source.html b/_application_8cs_source.html index 636aaed4db..baa4937b64 100644 --- a/_application_8cs_source.html +++ b/_application_8cs_source.html @@ -787,7 +787,7 @@ $(function() {
Handles POSIX signals.
-
+
Implements the SystemD notify service protocol.
@@ -856,7 +856,7 @@ $(function() {
string VersionPrefix
Prefix to VersionString.
On Windows, DreamDaemon will show an unskippable prompt when using /world/proc/OpenPort()....
bool IsWindows
If the current platform is a Windows platform.
-
For launching IProcess'.
+
For launching IProcess'.
Abstraction for suspending and resuming processes.
Reads and writes to Streams associated with FileTicketResponses.
Service for temporarily storing files to be downloaded or uploaded.
@@ -869,7 +869,7 @@ $(function() {
-
+
diff --git a/_byond_installation_8cs_source.html b/_byond_installation_8cs_source.html index a79db5b3bf..54c7039f01 100644 --- a/_byond_installation_8cs_source.html +++ b/_byond_installation_8cs_source.html @@ -85,110 +85,113 @@ $(function() {
6using Tgstation.Server.Api.Models;
7using Tgstation.Server.Api.Models.Internal;
8using Tgstation.Server.Host.Components.Deployment;
-
9
-
10namespace Tgstation.Server.Host.Components.Engine
-
11{
-
15 sealed class ByondInstallation : EngineInstallationBase
-
16 {
-
18 public override EngineVersion Version { get; }
-
19
-
21 public override string ServerExePath { get; }
-
22
-
24 public override string CompilerExePath { get; }
-
25
-
27 public override bool PromptsForNetworkAccess { get; }
-
28
-
30 public override bool HasStandardOutput { get; }
-
31
-
33 public override bool PreferFileLogging => false;
-
34
-
36 public override Task InstallationTask { get; }
-
37
-
41 readonly bool supportsMapThreads;
-
42
-
48 static string SecurityWord(DreamDaemonSecurity securityLevel)
-
49 {
-
50 return securityLevel switch
-
51 {
-
52 DreamDaemonSecurity.Safe => "safe",
-
53 DreamDaemonSecurity.Trusted => "trusted",
-
54 DreamDaemonSecurity.Ultrasafe => "ultrasafe",
-
55 _ => throw new ArgumentOutOfRangeException(nameof(securityLevel), securityLevel, String.Format(CultureInfo.InvariantCulture, "Bad DreamDaemon security level: {0}", securityLevel)),
-
56 };
-
57 }
-
58
-
64 static string VisibilityWord(DreamDaemonVisibility visibility)
-
65 {
-
66 return visibility switch
-
67 {
-
68 DreamDaemonVisibility.Public => "public",
-
69 DreamDaemonVisibility.Private => "private",
-
70 DreamDaemonVisibility.Invisible => "invisible",
-
71 _ => throw new ArgumentOutOfRangeException(nameof(visibility), visibility, String.Format(CultureInfo.InvariantCulture, "Bad DreamDaemon visibility level: {0}", visibility)),
-
72 };
-
73 }
-
74
-
84 public ByondInstallation(
-
85 Task installationTask,
-
86 EngineVersion version,
-
87 string dreamDaemonPath,
-
88 string dreamMakerPath,
-
89 bool supportsCli,
-
90 bool supportsMapThreads)
-
91 {
-
92 InstallationTask = installationTask ?? throw new ArgumentNullException(nameof(installationTask));
-
93 ArgumentNullException.ThrowIfNull(version);
-
94
-
95 if (version.Engine != EngineType.Byond)
-
96 throw new ArgumentException($"Invalid EngineType: {version.Engine}", nameof(version));
-
97
-
98 Version = version ?? throw new ArgumentNullException(nameof(version));
-
99 ServerExePath = dreamDaemonPath ?? throw new ArgumentNullException(nameof(dreamDaemonPath));
-
100 CompilerExePath = dreamMakerPath ?? throw new ArgumentNullException(nameof(dreamMakerPath));
-
101 HasStandardOutput = supportsCli;
-
102 PromptsForNetworkAccess = !supportsCli;
-
103 this.supportsMapThreads = supportsMapThreads;
-
104 }
-
105
-
107 public override string FormatServerArguments(
-
108 IDmbProvider dmbProvider,
-
109 IReadOnlyDictionary<string, string> parameters,
-
110 DreamDaemonLaunchParameters launchParameters,
-
111 string? logFilePath)
-
112 {
-
113 ArgumentNullException.ThrowIfNull(dmbProvider);
-
114 ArgumentNullException.ThrowIfNull(parameters);
-
115 ArgumentNullException.ThrowIfNull(launchParameters);
-
116
-
117 var parametersString = EncodeParameters(parameters, launchParameters);
-
118
-
119 var arguments = String.Format(
-
120 CultureInfo.InvariantCulture,
-
121 "\"{0}\" -port {1} -ports 1-65535 {2}-close -verbose -{3} -{4}{5}{6}{7} -params \"{8}\"",
-
122 dmbProvider.DmbName,
-
123 launchParameters.Port!.Value,
-
124 launchParameters.AllowWebClient!.Value
-
125 ? "-webclient "
-
126 : String.Empty,
-
127 SecurityWord(launchParameters.SecurityLevel!.Value),
-
128 VisibilityWord(launchParameters.Visibility!.Value),
-
129 logFilePath != null
-
130 ? $" -logself -log {logFilePath}"
-
131 : String.Empty, // DD doesn't output anything if -logself is set???
-
132 launchParameters.StartProfiler!.Value
-
133 ? " -profile"
-
134 : String.Empty,
-
135 supportsMapThreads && launchParameters.MapThreads!.Value != 0
-
136 ? $" -map-threads {launchParameters.MapThreads.Value}"
-
137 : String.Empty,
-
138 parametersString);
-
139 return arguments;
-
140 }
-
141
-
143 public override string FormatCompilerArguments(string dmePath)
-
144 => $"-clean \"{dmePath ?? throw new ArgumentNullException(nameof(dmePath))}\"";
-
145 }
-
146}
+
9using Tgstation.Server.Host.IO;
+
10
+
11namespace Tgstation.Server.Host.Components.Engine
+
12{
+
16 sealed class ByondInstallation : EngineInstallationBase
+
17 {
+
19 public override EngineVersion Version { get; }
+
20
+
22 public override string ServerExePath { get; }
+
23
+
25 public override string CompilerExePath { get; }
+
26
+
28 public override bool PromptsForNetworkAccess { get; }
+
29
+
31 public override bool HasStandardOutput { get; }
+
32
+
34 public override bool PreferFileLogging => false;
+
35
+
37 public override Task InstallationTask { get; }
+
38
+
42 readonly bool supportsMapThreads;
+
43
+
49 static string SecurityWord(DreamDaemonSecurity securityLevel)
+
50 {
+
51 return securityLevel switch
+
52 {
+
53 DreamDaemonSecurity.Safe => "safe",
+
54 DreamDaemonSecurity.Trusted => "trusted",
+
55 DreamDaemonSecurity.Ultrasafe => "ultrasafe",
+
56 _ => throw new ArgumentOutOfRangeException(nameof(securityLevel), securityLevel, String.Format(CultureInfo.InvariantCulture, "Bad DreamDaemon security level: {0}", securityLevel)),
+
57 };
+
58 }
+
59
+
65 static string VisibilityWord(DreamDaemonVisibility visibility)
+
66 {
+
67 return visibility switch
+
68 {
+
69 DreamDaemonVisibility.Public => "public",
+
70 DreamDaemonVisibility.Private => "private",
+
71 DreamDaemonVisibility.Invisible => "invisible",
+
72 _ => throw new ArgumentOutOfRangeException(nameof(visibility), visibility, String.Format(CultureInfo.InvariantCulture, "Bad DreamDaemon visibility level: {0}", visibility)),
+
73 };
+
74 }
+
75
+
86 public ByondInstallation(
+
87 IIOManager installationIOManager,
+
88 Task installationTask,
+
89 EngineVersion version,
+
90 string dreamDaemonPath,
+
91 string dreamMakerPath,
+
92 bool supportsCli,
+
93 bool supportsMapThreads)
+
94 : base(installationIOManager)
+
95 {
+
96 InstallationTask = installationTask ?? throw new ArgumentNullException(nameof(installationTask));
+
97 ArgumentNullException.ThrowIfNull(version);
+
98
+
99 if (version.Engine != EngineType.Byond)
+
100 throw new ArgumentException($"Invalid EngineType: {version.Engine}", nameof(version));
+
101
+
102 Version = version ?? throw new ArgumentNullException(nameof(version));
+
103 ServerExePath = dreamDaemonPath ?? throw new ArgumentNullException(nameof(dreamDaemonPath));
+
104 CompilerExePath = dreamMakerPath ?? throw new ArgumentNullException(nameof(dreamMakerPath));
+
105 HasStandardOutput = supportsCli;
+
106 PromptsForNetworkAccess = !supportsCli;
+
107 this.supportsMapThreads = supportsMapThreads;
+
108 }
+
109
+
111 public override string FormatServerArguments(
+
112 IDmbProvider dmbProvider,
+
113 IReadOnlyDictionary<string, string> parameters,
+
114 DreamDaemonLaunchParameters launchParameters,
+
115 string? logFilePath)
+
116 {
+
117 ArgumentNullException.ThrowIfNull(dmbProvider);
+
118 ArgumentNullException.ThrowIfNull(parameters);
+
119 ArgumentNullException.ThrowIfNull(launchParameters);
+
120
+
121 var parametersString = EncodeParameters(parameters, launchParameters);
+
122
+
123 var arguments = String.Format(
+
124 CultureInfo.InvariantCulture,
+
125 "\"{0}\" -port {1} -ports 1-65535 {2}-close -verbose -{3} -{4}{5}{6}{7} -params \"{8}\"",
+
126 dmbProvider.DmbName,
+
127 launchParameters.Port!.Value,
+
128 launchParameters.AllowWebClient!.Value
+
129 ? "-webclient "
+
130 : String.Empty,
+
131 SecurityWord(launchParameters.SecurityLevel!.Value),
+
132 VisibilityWord(launchParameters.Visibility!.Value),
+
133 logFilePath != null
+
134 ? $" -logself -log {logFilePath}"
+
135 : String.Empty, // DD doesn't output anything if -logself is set???
+
136 launchParameters.StartProfiler!.Value
+
137 ? " -profile"
+
138 : String.Empty,
+
139 supportsMapThreads && launchParameters.MapThreads!.Value != 0
+
140 ? $" -map-threads {launchParameters.MapThreads.Value}"
+
141 : String.Empty,
+
142 parametersString);
+
143 return arguments;
+
144 }
+
145
+
147 public override string FormatCompilerArguments(string dmePath)
+
148 => $"-clean \"{dmePath ?? throw new ArgumentNullException(nameof(dmePath))}\"";
+
149 }
+
150}
Information about an engine installation.
EngineType? Engine
The EngineType.
Launch settings for DreamDaemon.
@@ -198,31 +201,33 @@ $(function() {
bool? StartProfiler
If -profile is passed in on the DreamDaemon command line. No-op for EngineType.OpenDream.
DreamDaemonSecurity? SecurityLevel
The DreamDaemonSecurity level of DreamDaemon. No-op for EngineType.OpenDream.
uint? MapThreads
If DreamDaemon supports it, the value added as the -map-threads parameter. 0 uses the default BYOND v...
-
Implementation of IEngineInstallation for EngineType.Byond.
-
readonly bool supportsMapThreads
If map threads are supported by the Version.
-
override bool PromptsForNetworkAccess
If ServerExePath may create network prompts.
-
static string VisibilityWord(DreamDaemonVisibility visibility)
Change a given visibility into the appropriate DreamDaemon command line word.
-
static string SecurityWord(DreamDaemonSecurity securityLevel)
Change a given securityLevel into the appropriate DreamDaemon command line word.
-
ByondInstallation(Task installationTask, EngineVersion version, string dreamDaemonPath, string dreamMakerPath, bool supportsCli, bool supportsMapThreads)
Initializes a new instance of the ByondInstallation class.
-
override string ServerExePath
The full path to the game server executable.
-
override Task InstallationTask
The Task that completes when the BYOND version finished installing.
-
override string FormatServerArguments(IDmbProvider dmbProvider, IReadOnlyDictionary< string, string > parameters, DreamDaemonLaunchParameters launchParameters, string? logFilePath)
Return the command line arguments for launching with given launchParameters . The formatted arguments...
-
override bool HasStandardOutput
If ServerExePath supports being run as a command-line application and outputs log information to be c...
-
override EngineVersion Version
The EngineVersion of the IEngineInstallation.
+
Implementation of IEngineInstallation for EngineType.Byond.
+
readonly bool supportsMapThreads
If map threads are supported by the Version.
+
override bool PromptsForNetworkAccess
If ServerExePath may create network prompts.
+
static string VisibilityWord(DreamDaemonVisibility visibility)
Change a given visibility into the appropriate DreamDaemon command line word.
+
static string SecurityWord(DreamDaemonSecurity securityLevel)
Change a given securityLevel into the appropriate DreamDaemon command line word.
+
override string ServerExePath
The full path to the game server executable.
+
override Task InstallationTask
The Task that completes when the BYOND version finished installing.
+
ByondInstallation(IIOManager installationIOManager, Task installationTask, EngineVersion version, string dreamDaemonPath, string dreamMakerPath, bool supportsCli, bool supportsMapThreads)
Initializes a new instance of the ByondInstallation class.
+
override string FormatServerArguments(IDmbProvider dmbProvider, IReadOnlyDictionary< string, string > parameters, DreamDaemonLaunchParameters launchParameters, string? logFilePath)
Return the command line arguments for launching with given launchParameters . The formatted arguments...
+
override bool HasStandardOutput
If ServerExePath supports being run as a command-line application and outputs log information to be c...
+
override EngineVersion Version
The EngineVersion of the IEngineInstallation.
override string FormatCompilerArguments(string dmePath)
Return the command line arguments for compiling a given dmePath if compilation is necessary....
-
override bool PreferFileLogging
If HasStandardOutput is set, this indicates that the engine server has good file logging that should ...
-
override string CompilerExePath
The full path to the dm/DreamMaker executable.
-
-
static string EncodeParameters(IReadOnlyDictionary< string, string > parameters, DreamDaemonLaunchParameters launchParameters)
Encode given parameters for passing as world.params on the command line.
+
override bool PreferFileLogging
If HasStandardOutput is set, this indicates that the engine server has good file logging that should ...
+
override string CompilerExePath
The full path to the dm/DreamMaker executable.
+
+
static string EncodeParameters(IReadOnlyDictionary< string, string > parameters, DreamDaemonLaunchParameters launchParameters)
Encode given parameters for passing as world.params on the command line.
Provides absolute paths to the latest compiled .dmbs.
Definition: IDmbProvider.cs:11
string DmbName
The file name of the .dmb.
Definition: IDmbProvider.cs:15
+
Interface for using filesystems.
Definition: IIOManager.cs:13
Definition: ChatChannel.cs:6
DreamDaemonVisibility
The visibility setting for DreamDaemon.
DreamDaemonSecurity
DreamDaemon's security level.
EngineType
The type of engine the codebase is using.
Definition: EngineType.cs:7
Definition: DmbFactory.cs:22
-
+
+