mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-24 21:46:52 +01:00
827 lines
217 KiB
HTML
827 lines
217 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>tgstation-server: src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs Source File</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">tgstation-server<span id="projectnumber"> 6.19.3</span>
|
|
</div>
|
|
<div id="projectbrief">The /tg/station 13 server suite</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.8 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function() { init_codefold(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_34761767c1c3cd212f9d2f80ea0828a8.html">Tgstation.Server.Host</a></li><li class="navelem"><a class="el" href="dir_7a3fd032a1362a6005a1fc9227a8dd86.html">Components</a></li><li class="navelem"><a class="el" href="dir_f5938f3ae6ef69fa99e4683082cea79c.html">Session</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle"><div class="title">SessionControllerFactory.cs</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="_session_controller_factory_8cs.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="keyword">using </span>System;</div>
|
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="keyword">using </span>System.Collections.Generic;</div>
|
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">using </span>System.Globalization;</div>
|
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">using </span>System.Linq;</div>
|
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="keyword">using </span>System.Net.Sockets;</div>
|
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="keyword">using </span>System.Text;</div>
|
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="keyword">using </span>System.Threading;</div>
|
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">using </span>System.Threading.Tasks;</div>
|
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
|
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">using </span>Microsoft.Extensions.Logging;</div>
|
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">using </span>Microsoft.Extensions.Options;</div>
|
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
|
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">using </span>Prometheus;</div>
|
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
|
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html">Tgstation.Server.Api.Models</a>;</div>
|
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal.html">Tgstation.Server.Api.Models.Internal</a>;</div>
|
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_common_1_1_extensions.html">Tgstation.Server.Common.Extensions</a>;</div>
|
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat.html">Tgstation.Server.Host.Components.Chat</a>;</div>
|
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment.html">Tgstation.Server.Host.Components.Deployment</a>;</div>
|
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine.html">Tgstation.Server.Host.Components.Engine</a>;</div>
|
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_events.html">Tgstation.Server.Host.Components.Events</a>;</div>
|
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop.html">Tgstation.Server.Host.Components.Interop</a>;</div>
|
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge.html">Tgstation.Server.Host.Components.Interop.Bridge</a>;</div>
|
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_configuration.html">Tgstation.Server.Host.Configuration</a>;</div>
|
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_core.html">Tgstation.Server.Host.Core</a>;</div>
|
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_extensions.html">Tgstation.Server.Host.Extensions</a>;</div>
|
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_i_o.html">Tgstation.Server.Host.IO</a>;</div>
|
|
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_jobs.html">Tgstation.Server.Host.Jobs</a>;</div>
|
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_security.html">Tgstation.Server.Host.Security</a>;</div>
|
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_system.html">Tgstation.Server.Host.System</a>;</div>
|
|
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">using </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_utils.html">Tgstation.Server.Host.Utils</a>;</div>
|
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
|
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_session.html">Tgstation.Server.Host.Components.Session</a></div>
|
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>{</div>
|
|
<div class="foldopen" id="foldopen00036" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html"> 36</a></span> <span class="keyword">sealed</span> <span class="keyword">class </span><a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html">SessionControllerFactory</a> : <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory.html">ISessionControllerFactory</a></div>
|
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> {</div>
|
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a64531b114473becdc1cfeedea4ca0308"> 41</a></span> <span class="keyword">const</span> <span class="keywordtype">string</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a64531b114473becdc1cfeedea4ca0308">DreamDaemonLogsPath</a> = <span class="stringliteral">"DreamDaemonLogs"</span>;</div>
|
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
|
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56"> 46</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html">IProcessExecutor</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56">processExecutor</a>;</div>
|
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ac7e7d4fc0a793672a53f0d6d579d7954"> 51</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_manager.html">IEngineManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ac7e7d4fc0a793672a53f0d6d579d7954">engineManager</a>;</div>
|
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09c977af69bd3d954c7dd4ca0b89e92e"> 56</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_topic_client_factory.html">ITopicClientFactory</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09c977af69bd3d954c7dd4ca0b89e92e">topicClientFactory</a>;</div>
|
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
|
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a483ed37a018bd66106dbed87ce8adc13"> 61</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html">ICryptographySuite</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a483ed37a018bd66106dbed87ce8adc13">cryptographySuite</a>;</div>
|
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
|
|
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8dbd5a414f211bbb1b0c63c5666568b8"> 66</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider.html">IAssemblyInformationProvider</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8dbd5a414f211bbb1b0c63c5666568b8">assemblyInformationProvider</a>;</div>
|
|
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
|
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1ff309648594dba65ebd5f5be0742b0a"> 71</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html">IIOManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1ff309648594dba65ebd5f5be0742b0a">gameIOManager</a>;</div>
|
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
|
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0"> 76</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html">IIOManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">diagnosticsIOManager</a>;</div>
|
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
|
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46"> 81</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html">IChatManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">chat</a>;</div>
|
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
|
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b73a5e0ea646cfe55c2bd6679e4cab6"> 86</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html">INetworkPromptReaper</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b73a5e0ea646cfe55c2bd6679e4cab6">networkPromptReaper</a>;</div>
|
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
|
|
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5f067400fe019d8375fffc0e83dee"> 91</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html">IPlatformIdentifier</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5f067400fe019d8375fffc0e83dee">platformIdentifier</a>;</div>
|
|
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
|
|
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a58566db67d5309791189384f51ccc914"> 96</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar.html">IBridgeRegistrar</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a58566db67d5309791189384f51ccc914">bridgeRegistrar</a>;</div>
|
|
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
|
|
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a14b84906ae2ddd580d5735ebf3ba9917"> 101</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html">IServerPortProvider</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a14b84906ae2ddd580d5735ebf3ba9917">serverPortProvider</a>;</div>
|
|
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
|
|
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d"> 106</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html">IEventConsumer</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">eventConsumer</a>;</div>
|
|
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
|
|
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adf89514aa3791a1ec0055f908ad02168"> 111</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html">IJobManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adf89514aa3791a1ec0055f908ad02168">jobManager</a>;</div>
|
|
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
|
|
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a51ca33cc4d830ae0a38defc0999adb2a"> 116</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker.html">IDreamMaker</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a51ca33cc4d830ae0a38defc0999adb2a">dreamMaker</a>;</div>
|
|
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
|
|
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c"> 121</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html">IAsyncDelayer</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c">asyncDelayer</a>;</div>
|
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
|
|
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#abc72835a2978c48c124ed1031f9e0661"> 126</a></span> readonly <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_dotnet_dump_service.html">IDotnetDumpService</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#abc72835a2978c48c124ed1031f9e0661">dotnetDumpService</a>;</div>
|
|
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
|
|
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a19be3056a71f332cc36cc29b3aea9e3a"> 131</a></span> readonly ILoggerFactory <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a19be3056a71f332cc36cc29b3aea9e3a">loggerFactory</a>;</div>
|
|
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
|
|
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#afbfc991e242020937547979c28e87e0c"> 136</a></span> readonly IOptionsMonitor<SessionConfiguration> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#afbfc991e242020937547979c28e87e0c">sessionConfigurationOptions</a>;</div>
|
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
|
|
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5"> 141</a></span> readonly ILogger<SessionControllerFactory> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>;</div>
|
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
|
|
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a6664cd594568a6693b0c211c2ed04fd5"> 146</a></span> readonly Counter <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a6664cd594568a6693b0c211c2ed04fd5">sessionsLaunched</a>;</div>
|
|
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
|
|
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ade13771cc246600ec3d213d52397277d"> 151</a></span> readonly Gauge <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ade13771cc246600ec3d213d52397277d">lastSessionLaunch</a>;</div>
|
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
|
|
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b5be8922642811c1a2912d8428554e5"> 156</a></span> readonly <a class="code hl_class" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html">Api.Models.Instance</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b5be8922642811c1a2912d8428554e5">instance</a>;</div>
|
|
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
|
|
<div class="foldopen" id="foldopen00165" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a5fceb9618381d05a21cfb3254218f3ff"> 165</a></span> async ValueTask <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a5fceb9618381d05a21cfb3254218f3ff">PortBindTest</a>(ushort port, <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad8fb60934662752c4bbed899440208ea">EngineType</a> engineType, CancellationToken cancellationToken)</div>
|
|
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> {</div>
|
|
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogTrace(<span class="stringliteral">"Bind test: {port}"</span>, port);</div>
|
|
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> {</div>
|
|
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// GIVE ME THE FUCKING PORT BACK WINDOWS!!!!</span></div>
|
|
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">const</span> <span class="keywordtype">int</span> MaxAttempts = 5;</div>
|
|
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">for</span> (var i = 0; i < MaxAttempts; ++i)</div>
|
|
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> {</div>
|
|
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_socket_extensions.html">SocketExtensions</a>.<a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_socket_extensions.html#ad87cda4241401c1a92afb27242c2e0de">BindTest</a>(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5f067400fe019d8375fffc0e83dee">platformIdentifier</a>, port, <span class="keyword">false</span>, engineType == <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad8fb60934662752c4bbed899440208ea">EngineType</a>.OpenDream);</div>
|
|
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">if</span> (i > 0)</div>
|
|
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogDebug(<span class="stringliteral">"Clearing the socket took {iterations} attempts :/"</span>, i + 1);</div>
|
|
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
|
|
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
|
|
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">catch</span> (SocketException ex) when (<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5f067400fe019d8375fffc0e83dee">platformIdentifier</a>.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html#aa9bf3bd1082b7178f58cb1f36839550e">IsWindows</a> && ex.SocketErrorCode == SocketError.AddressAlreadyInUse && i < (MaxAttempts - 1))</div>
|
|
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> {</div>
|
|
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> await <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c">asyncDelayer</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html#a588b00b42267c8d23088bde28d3f7fce">Delay</a>(TimeSpan.FromSeconds(1), cancellationToken);</div>
|
|
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> }</div>
|
|
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> }</div>
|
|
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">catch</span> (SocketException ex) when (ex.SocketErrorCode == SocketError.AddressAlreadyInUse)</div>
|
|
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> {</div>
|
|
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception.html">JobException</a>(<a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a1a6adb59dd51244efabf4e548e7075c8">ErrorCode</a>.GameServerPortInUse, ex);</div>
|
|
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> }</div>
|
|
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
|
|
<div class="foldopen" id="foldopen00217" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a813e174693bf34436e8ef323524b83da"> 217</a></span> <span class="keyword">public</span> <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a813e174693bf34436e8ef323524b83da">SessionControllerFactory</a>(</div>
|
|
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html">IProcessExecutor</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56">processExecutor</a>,</div>
|
|
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_manager.html">IEngineManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ac7e7d4fc0a793672a53f0d6d579d7954">engineManager</a>,</div>
|
|
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_topic_client_factory.html">ITopicClientFactory</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09c977af69bd3d954c7dd4ca0b89e92e">topicClientFactory</a>,</div>
|
|
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html">ICryptographySuite</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a483ed37a018bd66106dbed87ce8adc13">cryptographySuite</a>,</div>
|
|
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider.html">IAssemblyInformationProvider</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8dbd5a414f211bbb1b0c63c5666568b8">assemblyInformationProvider</a>,</div>
|
|
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html">IIOManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1ff309648594dba65ebd5f5be0742b0a">gameIOManager</a>,</div>
|
|
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html">IIOManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">diagnosticsIOManager</a>,</div>
|
|
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html">IChatManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">chat</a>,</div>
|
|
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html">INetworkPromptReaper</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b73a5e0ea646cfe55c2bd6679e4cab6">networkPromptReaper</a>,</div>
|
|
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html">IPlatformIdentifier</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5f067400fe019d8375fffc0e83dee">platformIdentifier</a>,</div>
|
|
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar.html">IBridgeRegistrar</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a58566db67d5309791189384f51ccc914">bridgeRegistrar</a>,</div>
|
|
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html">IServerPortProvider</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a14b84906ae2ddd580d5735ebf3ba9917">serverPortProvider</a>,</div>
|
|
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html">IEventConsumer</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">eventConsumer</a>,</div>
|
|
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html">IJobManager</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adf89514aa3791a1ec0055f908ad02168">jobManager</a>,</div>
|
|
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker.html">IDreamMaker</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a51ca33cc4d830ae0a38defc0999adb2a">dreamMaker</a>,</div>
|
|
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html">IAsyncDelayer</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c">asyncDelayer</a>,</div>
|
|
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_dotnet_dump_service.html">IDotnetDumpService</a> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#abc72835a2978c48c124ed1031f9e0661">dotnetDumpService</a>,</div>
|
|
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> IMetricFactory metricFactory,</div>
|
|
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> ILoggerFactory <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a19be3056a71f332cc36cc29b3aea9e3a">loggerFactory</a>,</div>
|
|
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> IOptionsMonitor<SessionConfiguration> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#afbfc991e242020937547979c28e87e0c">sessionConfigurationOptions</a>,</div>
|
|
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> ILogger<SessionControllerFactory> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>,</div>
|
|
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> Api.Models.Instance <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b5be8922642811c1a2912d8428554e5">instance</a>)</div>
|
|
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> {</div>
|
|
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> this.processExecutor = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56">processExecutor</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56">processExecutor</a>));</div>
|
|
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> this.engineManager = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ac7e7d4fc0a793672a53f0d6d579d7954">engineManager</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ac7e7d4fc0a793672a53f0d6d579d7954">engineManager</a>));</div>
|
|
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> this.topicClientFactory = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09c977af69bd3d954c7dd4ca0b89e92e">topicClientFactory</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09c977af69bd3d954c7dd4ca0b89e92e">topicClientFactory</a>));</div>
|
|
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> this.cryptographySuite = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a483ed37a018bd66106dbed87ce8adc13">cryptographySuite</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a483ed37a018bd66106dbed87ce8adc13">cryptographySuite</a>));</div>
|
|
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> this.assemblyInformationProvider = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8dbd5a414f211bbb1b0c63c5666568b8">assemblyInformationProvider</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8dbd5a414f211bbb1b0c63c5666568b8">assemblyInformationProvider</a>));</div>
|
|
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> this.gameIOManager = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1ff309648594dba65ebd5f5be0742b0a">gameIOManager</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1ff309648594dba65ebd5f5be0742b0a">gameIOManager</a>));</div>
|
|
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> this.diagnosticsIOManager = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">diagnosticsIOManager</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">diagnosticsIOManager</a>));</div>
|
|
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> this.chat = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">chat</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">chat</a>));</div>
|
|
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> this.networkPromptReaper = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b73a5e0ea646cfe55c2bd6679e4cab6">networkPromptReaper</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b73a5e0ea646cfe55c2bd6679e4cab6">networkPromptReaper</a>));</div>
|
|
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> this.platformIdentifier = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5f067400fe019d8375fffc0e83dee">platformIdentifier</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5f067400fe019d8375fffc0e83dee">platformIdentifier</a>));</div>
|
|
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> this.bridgeRegistrar = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a58566db67d5309791189384f51ccc914">bridgeRegistrar</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a58566db67d5309791189384f51ccc914">bridgeRegistrar</a>));</div>
|
|
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> this.serverPortProvider = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a14b84906ae2ddd580d5735ebf3ba9917">serverPortProvider</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a14b84906ae2ddd580d5735ebf3ba9917">serverPortProvider</a>));</div>
|
|
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> this.eventConsumer = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">eventConsumer</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">eventConsumer</a>));</div>
|
|
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> this.jobManager = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adf89514aa3791a1ec0055f908ad02168">jobManager</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adf89514aa3791a1ec0055f908ad02168">jobManager</a>));</div>
|
|
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> this.dreamMaker = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a51ca33cc4d830ae0a38defc0999adb2a">dreamMaker</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a51ca33cc4d830ae0a38defc0999adb2a">dreamMaker</a>));</div>
|
|
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> this.asyncDelayer = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c">asyncDelayer</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c">asyncDelayer</a>));</div>
|
|
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> this.dotnetDumpService = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#abc72835a2978c48c124ed1031f9e0661">dotnetDumpService</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#abc72835a2978c48c124ed1031f9e0661">dotnetDumpService</a>));</div>
|
|
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> ArgumentNullException.ThrowIfNull(metricFactory);</div>
|
|
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> this.sessionConfigurationOptions = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#afbfc991e242020937547979c28e87e0c">sessionConfigurationOptions</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#afbfc991e242020937547979c28e87e0c">sessionConfigurationOptions</a>));</div>
|
|
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> this.loggerFactory = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a19be3056a71f332cc36cc29b3aea9e3a">loggerFactory</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a19be3056a71f332cc36cc29b3aea9e3a">loggerFactory</a>));</div>
|
|
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> this.logger = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>));</div>
|
|
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> this.instance = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b5be8922642811c1a2912d8428554e5">instance</a> ?? <span class="keywordflow">throw</span> <span class="keyword">new</span> ArgumentNullException(nameof(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b5be8922642811c1a2912d8428554e5">instance</a>));</div>
|
|
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> </div>
|
|
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a6664cd594568a6693b0c211c2ed04fd5">sessionsLaunched</a> = metricFactory.CreateCounter(<span class="stringliteral">"tgs_sessions_launched"</span>, <span class="stringliteral">"The number of game server processes created"</span>);</div>
|
|
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ade13771cc246600ec3d213d52397277d">lastSessionLaunch</a> = metricFactory.CreateGauge(<span class="stringliteral">"tgs_session_start_time"</span>, <span class="stringliteral">"The UTC unix timestamp the most recent session was started"</span>);</div>
|
|
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> </div>
|
|
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="preprocessor">#pragma warning disable CA1506 </span><span class="comment">// TODO: Decomplexify</span></div>
|
|
<div class="foldopen" id="foldopen00270" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aa1f001876dbd9f80e47e492fc2ed9d39"> 270</a></span> <span class="keyword">public</span> async ValueTask<ISessionController> <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aa1f001876dbd9f80e47e492fc2ed9d39">LaunchNew</a>(</div>
|
|
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html">IDmbProvider</a> dmbProvider,</div>
|
|
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_executable_lock.html">IEngineExecutableLock</a>? currentByondLock,</div>
|
|
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html">DreamDaemonLaunchParameters</a> launchParameters,</div>
|
|
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordtype">bool</span> apiValidate,</div>
|
|
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> CancellationToken cancellationToken)</div>
|
|
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> {</div>
|
|
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogTrace(<span class="stringliteral">"Begin session launch..."</span>);</div>
|
|
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">if</span> (!launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a00af90c86ba9ced8f7b718cea098892b">Port</a>.HasValue)</div>
|
|
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">throw</span> <span class="keyword">new</span> InvalidOperationException(<span class="stringliteral">"Given port is null!"</span>);</div>
|
|
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
|
|
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">switch</span> (dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#aad154752808c57d3877f766894c24f4a">CompileJob</a>.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html#aba859254f245bc21a8ff640ab58caf03">MinimumSecurityLevel</a>)</div>
|
|
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> {</div>
|
|
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">case</span> <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">DreamDaemonSecurity</a>.Ultrasafe:</div>
|
|
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">case</span> <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">DreamDaemonSecurity</a>.Safe:</div>
|
|
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">if</span> (launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#aab2ca846e0aade7de3cfcea099f40fa4">SecurityLevel</a> == <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">DreamDaemonSecurity</a>.Ultrasafe)</div>
|
|
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> {</div>
|
|
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogTrace(<span class="stringliteral">"Boosting security level to minimum of Safe"</span>);</div>
|
|
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> launchParameters.SecurityLevel = <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">DreamDaemonSecurity</a>.Safe;</div>
|
|
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> }</div>
|
|
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> </div>
|
|
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">case</span> <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">DreamDaemonSecurity</a>.Trusted:</div>
|
|
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">if</span> (launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#aab2ca846e0aade7de3cfcea099f40fa4">SecurityLevel</a> != <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">DreamDaemonSecurity</a>.Trusted)</div>
|
|
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogTrace(<span class="stringliteral">"Boosting security level to minimum of Trusted"</span>);</div>
|
|
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
|
|
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> launchParameters.SecurityLevel = <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">DreamDaemonSecurity</a>.Trusted;</div>
|
|
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keywordflow">default</span>:</div>
|
|
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">throw</span> <span class="keyword">new</span> InvalidOperationException(String.Format(CultureInfo.InvariantCulture, <span class="stringliteral">"Invalid DreamDaemonSecurity value: {0}"</span>, dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#aad154752808c57d3877f766894c24f4a">CompileJob</a>.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html#aba859254f245bc21a8ff640ab58caf03">MinimumSecurityLevel</a>));</div>
|
|
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> }</div>
|
|
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
|
|
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="comment">// get the byond lock</span></div>
|
|
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> var engineLock = currentByondLock ?? await <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ac7e7d4fc0a793672a53f0d6d579d7954">engineManager</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_manager.html#ac21fb8c8df8b40c14944282d86c32a66">UseExecutables</a>(</div>
|
|
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a1b5874e4f5733aa7a04b397450f40792">EngineVersion</a>,</div>
|
|
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1ff309648594dba65ebd5f5be0742b0a">gameIOManager</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a286f4eb5c679683b7e519847a6c3574e">ConcatPath</a>(dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a7607fcc4f9d4667337c435fd2b96dc53">Directory</a>, dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a950ac6f5b0cbcb2680546968c79486a1">DmbName</a>),</div>
|
|
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> cancellationToken);</div>
|
|
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> {</div>
|
|
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogDebug(</div>
|
|
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="stringliteral">"Launching session with CompileJob {compileJobId}..."</span>,</div>
|
|
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#aad154752808c57d3877f766894c24f4a">CompileJob</a>.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html#ae31e478e1d338b37a14565df6fd58570">Id</a>);</div>
|
|
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> </div>
|
|
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <span class="comment">// mad this isn't abstracted but whatever</span></div>
|
|
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> var engineType = dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a1b5874e4f5733aa7a04b397450f40792">EngineVersion</a>.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_engine_version.html#ae13db4c5dbd6b06c79d37ad9afd25af2">Engine</a>!.Value;</div>
|
|
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordflow">if</span> (engineType == <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad8fb60934662752c4bbed899440208ea">EngineType</a>.Byond)</div>
|
|
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> await <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5c5fc42697bf3146a1b0fc9271eb1">CheckPagerIsNotRunning</a>();</div>
|
|
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> </div>
|
|
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> await <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a5fceb9618381d05a21cfb3254218f3ff">PortBindTest</a>(launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a00af90c86ba9ced8f7b718cea098892b">Port</a>.Value, engineType, cancellationToken);</div>
|
|
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> </div>
|
|
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordtype">string</span>? outputFilePath = <span class="keyword">null</span>;</div>
|
|
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> var preserveLogFile = <span class="keyword">true</span>;</div>
|
|
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> </div>
|
|
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> var hasStandardOutput = engineLock.HasStandardOutput;</div>
|
|
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordflow">if</span> (launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a3dbd92d8284bf7837808be9499105682">LogOutput</a>!.Value)</div>
|
|
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> {</div>
|
|
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> var now = DateTimeOffset.UtcNow;</div>
|
|
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> var dateDirectory = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">diagnosticsIOManager</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a286f4eb5c679683b7e519847a6c3574e">ConcatPath</a>(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a64531b114473becdc1cfeedea4ca0308">DreamDaemonLogsPath</a>, now.ToString(<span class="stringliteral">"yyyy-MM-dd"</span>, CultureInfo.InvariantCulture));</div>
|
|
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> await <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">diagnosticsIOManager</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a69aa1b9dbeb6af3744e568095c4376e7">CreateDirectory</a>(dateDirectory, cancellationToken);</div>
|
|
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> outputFilePath = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">diagnosticsIOManager</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a18a442b5dff16f5e7a730ec354e81d78">ResolvePath</a>(</div>
|
|
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">diagnosticsIOManager</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a286f4eb5c679683b7e519847a6c3574e">ConcatPath</a>(</div>
|
|
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> dateDirectory,</div>
|
|
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> $<span class="stringliteral">"server-utc-{now.ToString("</span>yyyy-MM-dd-HH-mm-ss<span class="stringliteral">", CultureInfo.InvariantCulture)}{(apiValidate ? "</span>-dmapi<span class="stringliteral">" : String.Empty)}.log"</span>));</div>
|
|
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> </div>
|
|
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogInformation(<span class="stringliteral">"Logging server output to {path}..."</span>, outputFilePath);</div>
|
|
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> }</div>
|
|
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!hasStandardOutput)</div>
|
|
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> {</div>
|
|
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> outputFilePath = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1ff309648594dba65ebd5f5be0742b0a">gameIOManager</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a286f4eb5c679683b7e519847a6c3574e">ConcatPath</a>(dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a7607fcc4f9d4667337c435fd2b96dc53">Directory</a>, $<span class="stringliteral">"{Guid.NewGuid()}.server.log"</span>);</div>
|
|
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> preserveLogFile = <span class="keyword">false</span>;</div>
|
|
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> }</div>
|
|
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
|
|
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> var accessIdentifier = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a483ed37a018bd66106dbed87ce8adc13">cryptographySuite</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html#ab49e5041cfb7333ee413c9719046ae37">GetSecureString</a>();</div>
|
|
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> </div>
|
|
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="keywordflow">if</span> (!apiValidate && dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#aad154752808c57d3877f766894c24f4a">CompileJob</a>.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html#ab960ca771b3f1b5b1caabddb6286934b">DMApiVersion</a> == <span class="keyword">null</span>)</div>
|
|
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogDebug(<span class="stringliteral">"Session will have no DMAPI support!"</span>);</div>
|
|
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> </div>
|
|
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// launch dd</span></div>
|
|
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> var process = await <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a4f44ac08947e06971e21e3f39bdd3683">CreateGameServerProcess</a>(</div>
|
|
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> dmbProvider,</div>
|
|
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> engineLock,</div>
|
|
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> launchParameters,</div>
|
|
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> accessIdentifier,</div>
|
|
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> outputFilePath,</div>
|
|
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> apiValidate,</div>
|
|
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> cancellationToken);</div>
|
|
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
|
|
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> {</div>
|
|
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> var chatTrackingContext = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">chat</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html#a5b3b4e9ab7d03bd8020ee9dfa9bebbbe">CreateTrackingContext</a>();</div>
|
|
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> </div>
|
|
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> {</div>
|
|
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> var runtimeInformation = <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3fa7ac01727101e55cf46b5ba8681982">CreateRuntimeInformation</a>(</div>
|
|
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> dmbProvider,</div>
|
|
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> chatTrackingContext,</div>
|
|
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#aab2ca846e0aade7de3cfcea099f40fa4">SecurityLevel</a>!.Value,</div>
|
|
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a08f11d77340868a0c8f2e1af89c7affe">Visibility</a>!.Value,</div>
|
|
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> apiValidate);</div>
|
|
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> </div>
|
|
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> var reattachInformation = <span class="keyword">new</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html">ReattachInformation</a>(</div>
|
|
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> dmbProvider,</div>
|
|
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> process,</div>
|
|
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> runtimeInformation,</div>
|
|
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> accessIdentifier,</div>
|
|
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a00af90c86ba9ced8f7b718cea098892b">Port</a>.Value);</div>
|
|
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> </div>
|
|
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> var byondTopicSender = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09c977af69bd3d954c7dd4ca0b89e92e">topicClientFactory</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_topic_client_factory.html#a950569e357f1d6e51722d4894792c555">CreateTopicClient</a>(</div>
|
|
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> TimeSpan.FromMilliseconds(</div>
|
|
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a5e172ad3abdcc1f6a0f24cdf08646d0a">TopicRequestTimeout</a>!.Value));</div>
|
|
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> </div>
|
|
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> var sessionController = <span class="keyword">new</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html">SessionController</a>(</div>
|
|
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> reattachInformation,</div>
|
|
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b5be8922642811c1a2912d8428554e5">instance</a>,</div>
|
|
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> process,</div>
|
|
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> engineLock,</div>
|
|
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> byondTopicSender,</div>
|
|
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> chatTrackingContext,</div>
|
|
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a58566db67d5309791189384f51ccc914">bridgeRegistrar</a>,</div>
|
|
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">chat</a>,</div>
|
|
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8dbd5a414f211bbb1b0c63c5666568b8">assemblyInformationProvider</a>,</div>
|
|
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c">asyncDelayer</a>,</div>
|
|
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#abc72835a2978c48c124ed1031f9e0661">dotnetDumpService</a>,</div>
|
|
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">eventConsumer</a>,</div>
|
|
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adf89514aa3791a1ec0055f908ad02168">jobManager</a>,</div>
|
|
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a51ca33cc4d830ae0a38defc0999adb2a">dreamMaker</a>,</div>
|
|
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a19be3056a71f332cc36cc29b3aea9e3a">loggerFactory</a>.CreateLogger<<a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html">SessionController</a>>(),</div>
|
|
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> () => <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3d7f74e98cb6a70dbab697f79765226b">LogDDOutput</a>(</div>
|
|
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> process,</div>
|
|
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> outputFilePath,</div>
|
|
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> hasStandardOutput,</div>
|
|
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> preserveLogFile,</div>
|
|
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> CancellationToken.None), <span class="comment">// DCT: None available</span></div>
|
|
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> launchParameters.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#aa3ac63088b89bf67dd5fdbe67970b03d">StartupTimeout</a>,</div>
|
|
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keyword">false</span>,</div>
|
|
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> apiValidate);</div>
|
|
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
|
|
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> <span class="keywordflow">if</span> (!apiValidate)</div>
|
|
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> {</div>
|
|
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a6664cd594568a6693b0c211c2ed04fd5">sessionsLaunched</a>.Inc();</div>
|
|
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ade13771cc246600ec3d213d52397277d">lastSessionLaunch</a>.SetToCurrentTimeUtc();</div>
|
|
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> }</div>
|
|
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> </div>
|
|
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keywordflow">return</span> sessionController;</div>
|
|
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> }</div>
|
|
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <span class="keywordflow">catch</span></div>
|
|
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> {</div>
|
|
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> chatTrackingContext.Dispose();</div>
|
|
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <span class="keywordflow">throw</span>;</div>
|
|
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> }</div>
|
|
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> }</div>
|
|
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <span class="keywordflow">catch</span></div>
|
|
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> {</div>
|
|
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> await <span class="keyword">using</span> (process)</div>
|
|
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> {</div>
|
|
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> process.Terminate();</div>
|
|
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> await process.Lifetime;</div>
|
|
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">throw</span>;</div>
|
|
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> }</div>
|
|
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> }</div>
|
|
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> }</div>
|
|
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <span class="keywordflow">catch</span></div>
|
|
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> {</div>
|
|
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="keywordflow">if</span> (currentByondLock == <span class="keyword">null</span>)</div>
|
|
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> engineLock.Dispose();</div>
|
|
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> <span class="keywordflow">throw</span>;</div>
|
|
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> }</div>
|
|
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span><span class="preprocessor">#pragma warning restore CA1506</span></div>
|
|
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> </div>
|
|
<div class="foldopen" id="foldopen00442" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adc773a2a44c35f4ac1fb855fff929e22"> 442</a></span> <span class="keyword">public</span> async ValueTask<ISessionController?> <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adc773a2a44c35f4ac1fb855fff929e22">Reattach</a>(</div>
|
|
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html">ReattachInformation</a> reattachInformation,</div>
|
|
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> CancellationToken cancellationToken)</div>
|
|
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> {</div>
|
|
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> ArgumentNullException.ThrowIfNull(reattachInformation);</div>
|
|
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> </div>
|
|
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogTrace(<span class="stringliteral">"Begin session reattach..."</span>);</div>
|
|
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> var byondTopicSender = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09c977af69bd3d954c7dd4ca0b89e92e">topicClientFactory</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_topic_client_factory.html#a950569e357f1d6e51722d4894792c555">CreateTopicClient</a>(reattachInformation.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#a0e7e39db3290479256688fc7dae2e52d">TopicRequestTimeout</a>);</div>
|
|
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> var engineLock = await <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ac7e7d4fc0a793672a53f0d6d579d7954">engineManager</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_manager.html#ac21fb8c8df8b40c14944282d86c32a66">UseExecutables</a>(</div>
|
|
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> reattachInformation.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#ae9210ff3236e194682fabe36fe20620d">Dmb</a>.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a1b5874e4f5733aa7a04b397450f40792">EngineVersion</a>,</div>
|
|
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <span class="keyword">null</span>, <span class="comment">// Doesn't matter if it's trusted or not on reattach</span></div>
|
|
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> cancellationToken);</div>
|
|
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> </div>
|
|
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> {</div>
|
|
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>.LogDebug(</div>
|
|
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <span class="stringliteral">"Attaching to session PID: {pid}, CompileJob: {compileJobId}..."</span>,</div>
|
|
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> reattachInformation.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html#a6f8d698913ca0c40775eaa9a1ec8a787">ProcessId</a>,</div>
|
|
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> reattachInformation.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#ae9210ff3236e194682fabe36fe20620d">Dmb</a>.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#aad154752808c57d3877f766894c24f4a">CompileJob</a>.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html#ae31e478e1d338b37a14565df6fd58570">Id</a>);</div>
|
|
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> </div>
|
|
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> var process = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56">processExecutor</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html#a82c1c9bbc432577594f49417c969849f">GetProcess</a>(reattachInformation.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html#a6f8d698913ca0c40775eaa9a1ec8a787">ProcessId</a>);</div>
|
|
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="keywordflow">if</span> (process == <span class="keyword">null</span>)</div>
|
|
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <span class="keywordflow">return</span> <span class="keyword">null</span>;</div>
|
|
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> </div>
|
|
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> {</div>
|
|
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="keywordflow">if</span> (engineLock.PromptsForNetworkAccess)</div>
|
|
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b73a5e0ea646cfe55c2bd6679e4cab6">networkPromptReaper</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html#a3493714e50b54482ee2739479cf02d56">RegisterProcess</a>(process);</div>
|
|
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> </div>
|
|
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> var chatTrackingContext = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">chat</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html#a5b3b4e9ab7d03bd8020ee9dfa9bebbbe">CreateTrackingContext</a>();</div>
|
|
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> {</div>
|
|
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> var runtimeInformation = <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3fa7ac01727101e55cf46b5ba8681982">CreateRuntimeInformation</a>(</div>
|
|
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> reattachInformation.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#ae9210ff3236e194682fabe36fe20620d">Dmb</a>,</div>
|
|
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> chatTrackingContext,</div>
|
|
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> reattachInformation.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html#a1db7cc859835159944cbafba2c328ec4">LaunchSecurityLevel</a>,</div>
|
|
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> reattachInformation.<a class="code hl_property" href="class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html#a7f83efb03ed1b30f40185078860abb7c">LaunchVisibility</a>,</div>
|
|
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">false</span>);</div>
|
|
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> reattachInformation.<a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#a56616a95d65e523becb086f2042d8a93">SetRuntimeInformation</a>(runtimeInformation);</div>
|
|
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> </div>
|
|
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> var controller = <span class="keyword">new</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html">SessionController</a>(</div>
|
|
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> reattachInformation,</div>
|
|
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b5be8922642811c1a2912d8428554e5">instance</a>,</div>
|
|
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> process,</div>
|
|
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> engineLock,</div>
|
|
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> byondTopicSender,</div>
|
|
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> chatTrackingContext,</div>
|
|
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a58566db67d5309791189384f51ccc914">bridgeRegistrar</a>,</div>
|
|
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">chat</a>,</div>
|
|
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8dbd5a414f211bbb1b0c63c5666568b8">assemblyInformationProvider</a>,</div>
|
|
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c">asyncDelayer</a>,</div>
|
|
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#abc72835a2978c48c124ed1031f9e0661">dotnetDumpService</a>,</div>
|
|
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">eventConsumer</a>,</div>
|
|
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adf89514aa3791a1ec0055f908ad02168">jobManager</a>,</div>
|
|
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a51ca33cc4d830ae0a38defc0999adb2a">dreamMaker</a>,</div>
|
|
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a19be3056a71f332cc36cc29b3aea9e3a">loggerFactory</a>.CreateLogger<<a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html">SessionController</a>>(),</div>
|
|
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> () => ValueTask.CompletedTask,</div>
|
|
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="keyword">null</span>,</div>
|
|
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">true</span>,</div>
|
|
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keyword">false</span>);</div>
|
|
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> </div>
|
|
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> process = <span class="keyword">null</span>;</div>
|
|
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> engineLock = <span class="keyword">null</span>;</div>
|
|
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> chatTrackingContext = <span class="keyword">null</span>;</div>
|
|
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> </div>
|
|
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keywordflow">return</span> controller;</div>
|
|
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> }</div>
|
|
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> <span class="keywordflow">catch</span></div>
|
|
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> {</div>
|
|
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> chatTrackingContext?.Dispose();</div>
|
|
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <span class="keywordflow">throw</span>;</div>
|
|
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> }</div>
|
|
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> }</div>
|
|
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">catch</span></div>
|
|
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> {</div>
|
|
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">if</span> (process != <span class="keyword">null</span>)</div>
|
|
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> await process.DisposeAsync();</div>
|
|
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> </div>
|
|
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keywordflow">throw</span>;</div>
|
|
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> }</div>
|
|
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> }</div>
|
|
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">catch</span></div>
|
|
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> {</div>
|
|
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> engineLock?.Dispose();</div>
|
|
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> <span class="keywordflow">throw</span>;</div>
|
|
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> }</div>
|
|
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> </div>
|
|
<div class="foldopen" id="foldopen00541" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a4f44ac08947e06971e21e3f39bdd3683"> 541</a></span> async ValueTask<IProcess> <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a4f44ac08947e06971e21e3f39bdd3683">CreateGameServerProcess</a>(</div>
|
|
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html">IDmbProvider</a> dmbProvider,</div>
|
|
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_executable_lock.html">IEngineExecutableLock</a> engineLock,</div>
|
|
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html">DreamDaemonLaunchParameters</a> launchParameters,</div>
|
|
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keywordtype">string</span> accessIdentifier,</div>
|
|
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keywordtype">string</span>? logFilePath,</div>
|
|
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordtype">bool</span> apiValidate,</div>
|
|
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> CancellationToken cancellationToken)</div>
|
|
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> {</div>
|
|
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> var serverMayHaveDMApi = apiValidate || dmbProvider.CompileJob.DMApiVersion != <span class="keyword">null</span>;</div>
|
|
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
|
|
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> var serverArguments = serverMayHaveDMApi</div>
|
|
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> ? <span class="keyword">new</span> Dictionary<string, string></div>
|
|
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> {</div>
|
|
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> { <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html">DMApiConstants</a>.<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html#ab930f933c33983f0c21c6dd614b896ec">ParamApiVersion</a>, <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html">DMApiConstants</a>.<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html#ac2e027490bca3307936efe1092da2cc9">InteropVersion</a>.Semver().ToString() },</div>
|
|
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> { <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html">DMApiConstants</a>.<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html#a8dcd2fa9f5a2900252b878d8ad560796">ParamServerPort</a>, <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a14b84906ae2ddd580d5735ebf3ba9917">serverPortProvider</a>.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html#af5e86a67c2cc59e14c762532275f0a2c">HttpApiPort</a>.ToString(CultureInfo.InvariantCulture) },</div>
|
|
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> { <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html">DMApiConstants</a>.<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html#aa076c322d7bee2b5d7da67093a9dabff">ParamAccessIdentifier</a>, accessIdentifier },</div>
|
|
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> }</div>
|
|
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> : <span class="keyword">null</span>;</div>
|
|
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> </div>
|
|
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> var environment = await engineLock.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#a1f08236db634210e10291a4ffddd0df8">LoadEnv</a>(<a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">logger</a>, <span class="keyword">false</span>, cancellationToken);</div>
|
|
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> var arguments = engineLock.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#a16bc1d460e98b09d6f03b6ff9eb5ca03">FormatServerArguments</a>(</div>
|
|
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> dmbProvider,</div>
|
|
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> serverArguments,</div>
|
|
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> launchParameters,</div>
|
|
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> accessIdentifier,</div>
|
|
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> !engineLock.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#af4417b7b16eb08fcd239ff1ee5267a4a">HasStandardOutput</a> || engineLock.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#a4eca5f3247105da00e7afe5bbbca9684">PreferFileLogging</a></div>
|
|
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> ? logFilePath</div>
|
|
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> : <span class="keyword">null</span>);</div>
|
|
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> </div>
|
|
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="comment">// If this isnt a staging DD (From a Deployment), fire off events</span></div>
|
|
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="keywordflow">if</span> (!apiValidate)</div>
|
|
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> await <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">eventConsumer</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html#a3aa955c269e063d5db2f3f83d001c38c">HandleEvent</a>(</div>
|
|
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_events.html#ac30c818717e92c8fb65f389adec739b7">EventType</a>.DreamDaemonPreLaunch,</div>
|
|
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> Enumerable.Empty<<span class="keywordtype">string</span>?>(),</div>
|
|
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <span class="keyword">false</span>,</div>
|
|
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">false</span>,</div>
|
|
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> cancellationToken);</div>
|
|
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> </div>
|
|
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> var process = await <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56">processExecutor</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html#a801aa19c189da2b1c40a805d98079b40">LaunchProcess</a>(</div>
|
|
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> engineLock.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#a0c27eae4fd625ca5e22a064ee34ca35e">ServerExePath</a>,</div>
|
|
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> dmbProvider.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a7607fcc4f9d4667337c435fd2b96dc53">Directory</a>,</div>
|
|
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> arguments,</div>
|
|
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> cancellationToken,</div>
|
|
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> environment,</div>
|
|
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> logFilePath,</div>
|
|
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> engineLock.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#af4417b7b16eb08fcd239ff1ee5267a4a">HasStandardOutput</a>,</div>
|
|
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="keyword">true</span>);</div>
|
|
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> </div>
|
|
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> {</div>
|
|
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> var sessionConfiguration = <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#afbfc991e242020937547979c28e87e0c">sessionConfigurationOptions</a>.CurrentValue;</div>
|
|
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">if</span> (!apiValidate)</div>
|
|
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> {</div>
|
|
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">if</span> (sessionConfiguration.HighPriorityLiveDreamDaemon)</div>
|
|
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> process.AdjustPriority(<span class="keyword">true</span>);</div>
|
|
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> }</div>
|
|
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sessionConfiguration.LowPriorityDeploymentProcesses)</div>
|
|
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> process.AdjustPriority(<span class="keyword">false</span>);</div>
|
|
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> </div>
|
|
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keywordflow">if</span> (!engineLock.<a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#af4417b7b16eb08fcd239ff1ee5267a4a">HasStandardOutput</a>)</div>
|
|
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b73a5e0ea646cfe55c2bd6679e4cab6">networkPromptReaper</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html#a3493714e50b54482ee2739479cf02d56">RegisterProcess</a>(process);</div>
|
|
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> </div>
|
|
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="keywordflow">if</span> (!apiValidate)</div>
|
|
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> await <a class="code hl_variable" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">eventConsumer</a>.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html#a3aa955c269e063d5db2f3f83d001c38c">HandleEvent</a>(</div>
|
|
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_events.html#ac30c818717e92c8fb65f389adec739b7">EventType</a>.DreamDaemonLaunch,</div>
|
|
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keyword">new</span> List<string></div>
|
|
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> {</div>
|
|
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> process.Id.ToString(CultureInfo.InvariantCulture),</div>
|
|
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> },</div>
|
|
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keyword">false</span>,</div>
|
|
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <span class="keyword">false</span>,</div>
|
|
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> cancellationToken);</div>
|
|
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> </div>
|
|
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keywordflow">return</span> process;</div>
|
|
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> }</div>
|
|
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> <span class="keywordflow">catch</span></div>
|
|
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> {</div>
|
|
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> await <span class="keyword">using</span> (process)</div>
|
|
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> {</div>
|
|
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> process.Terminate();</div>
|
|
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> await process.Lifetime;</div>
|
|
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <span class="keywordflow">throw</span>;</div>
|
|
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> }</div>
|
|
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> }</div>
|
|
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> </div>
|
|
<div class="foldopen" id="foldopen00637" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3d7f74e98cb6a70dbab697f79765226b"> 637</a></span> async ValueTask <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3d7f74e98cb6a70dbab697f79765226b">LogDDOutput</a>(<a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html">IProcess</a> process, <span class="keywordtype">string</span>? outputFilePath, <span class="keywordtype">bool</span> cliSupported, <span class="keywordtype">bool</span> preserveFile, CancellationToken cancellationToken)</div>
|
|
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> {</div>
|
|
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> {</div>
|
|
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordtype">string</span>? ddOutput = <span class="keyword">null</span>;</div>
|
|
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="keywordflow">if</span> (cliSupported)</div>
|
|
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> ddOutput = (await process.<a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html#af0f4b22a2d653f0b1d94190938498a48">GetCombinedOutput</a>(cancellationToken))!;</div>
|
|
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> </div>
|
|
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <span class="keywordflow">if</span> (String.IsNullOrWhiteSpace(ddOutput) && outputFilePath != <span class="keyword">null</span>)</div>
|
|
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> {</div>
|
|
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> var dreamDaemonLogBytes = await gameIOManager.ReadAllBytes(</div>
|
|
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> outputFilePath,</div>
|
|
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> cancellationToken);</div>
|
|
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> </div>
|
|
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> ddOutput = Encoding.UTF8.GetString(dreamDaemonLogBytes);</div>
|
|
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> }</div>
|
|
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <span class="keywordflow">finally</span></div>
|
|
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> {</div>
|
|
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <span class="keywordflow">if</span> (!preserveFile)</div>
|
|
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">try</span></div>
|
|
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> {</div>
|
|
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> logger.LogTrace(<span class="stringliteral">"Deleting temporary log file {path}..."</span>, outputFilePath);</div>
|
|
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> await gameIOManager.DeleteFile(outputFilePath, cancellationToken);</div>
|
|
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> }</div>
|
|
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keywordflow">catch</span> (<a class="code hl_class" href="class_exception.html">Exception</a> ex)</div>
|
|
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> {</div>
|
|
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <span class="comment">// this is expected on OD at time of the support changes.</span></div>
|
|
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <span class="comment">// I've open a change to fix it: https://github.com/space-wizards/RobustToolbox/pull/4501</span></div>
|
|
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> logger.LogWarning(ex, <span class="stringliteral">"Failed to delete server log file {outputFilePath}!"</span>, outputFilePath);</div>
|
|
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> }</div>
|
|
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> }</div>
|
|
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> </div>
|
|
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> logger.LogTrace(</div>
|
|
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="stringliteral">"Server Output:{newLine}{output}"</span>,</div>
|
|
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> Environment.NewLine,</div>
|
|
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> ddOutput);</div>
|
|
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> }</div>
|
|
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> <span class="keywordflow">catch</span> (<a class="code hl_class" href="class_exception.html">Exception</a> ex)</div>
|
|
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> {</div>
|
|
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> logger.LogWarning(ex, <span class="stringliteral">"Error reading server output!"</span>);</div>
|
|
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> }</div>
|
|
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> </div>
|
|
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3fa7ac01727101e55cf46b5ba8681982"> 690</a></span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html">RuntimeInformation</a> <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3fa7ac01727101e55cf46b5ba8681982">CreateRuntimeInformation</a>(</div>
|
|
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html">IDmbProvider</a> dmbProvider,</div>
|
|
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context.html">IChatTrackingContext</a> chatTrackingContext,</div>
|
|
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">DreamDaemonSecurity</a> securityLevel,</div>
|
|
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> <a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a2ca30004669a0f022b39b67d21ac976c">DreamDaemonVisibility</a> visibility,</div>
|
|
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> <span class="keywordtype">bool</span> apiValidateOnly)</div>
|
|
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> => <span class="keyword">new</span>(</div>
|
|
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> chatTrackingContext,</div>
|
|
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> dmbProvider,</div>
|
|
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> assemblyInformationProvider.Version,</div>
|
|
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> instance.Name!,</div>
|
|
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> securityLevel,</div>
|
|
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> visibility,</div>
|
|
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> serverPortProvider.HttpApiPort,</div>
|
|
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> apiValidateOnly);</div>
|
|
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> </div>
|
|
<div class="foldopen" id="foldopen00710" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"><a class="line" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5c5fc42697bf3146a1b0fc9271eb1"> 710</a></span> async ValueTask <a class="code hl_function" href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5c5fc42697bf3146a1b0fc9271eb1">CheckPagerIsNotRunning</a>()</div>
|
|
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> {</div>
|
|
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> <span class="keywordflow">if</span> (!platformIdentifier.IsWindows)</div>
|
|
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="keywordflow">return</span>;</div>
|
|
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> </div>
|
|
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> await <span class="keyword">using </span>var otherProcess = processExecutor.GetProcessByName(<span class="stringliteral">"byond"</span>);</div>
|
|
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <span class="keywordflow">if</span> (otherProcess == <span class="keyword">null</span>)</div>
|
|
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> <span class="keywordflow">return</span>;</div>
|
|
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> </div>
|
|
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> var otherUsername = otherProcess.GetExecutingUsername();</div>
|
|
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> </div>
|
|
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> await <span class="keyword">using </span>var ourProcess = processExecutor.GetCurrentProcess();</div>
|
|
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> var ourUsername = ourProcess.GetExecutingUsername();</div>
|
|
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> </div>
|
|
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <span class="keywordflow">if</span> (otherUsername.Equals(ourUsername, StringComparison.Ordinal))</div>
|
|
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code hl_class" href="class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception.html">JobException</a>(<a class="code hl_enumeration" href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a1a6adb59dd51244efabf4e548e7075c8">ErrorCode</a>.DreamDaemonPagerRunning);</div>
|
|
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span>}</div>
|
|
<div class="ttc" id="aclass_exception_html"><div class="ttname"><a href="class_exception.html">Exception</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_engine_version_html_ae13db4c5dbd6b06c79d37ad9afd25af2"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_engine_version.html#ae13db4c5dbd6b06c79d37ad9afd25af2">Tgstation.Server.Api.Models.EngineVersion.Engine</a></div><div class="ttdeci">EngineType? Engine</div><div class="ttdoc">The EngineType.</div><div class="ttdef"><b>Definition</b> <a href="_engine_version_8cs_source.html#l00024">EngineVersion.cs:24</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id_html_ae31e478e1d338b37a14565df6fd58570"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html#ae31e478e1d338b37a14565df6fd58570">Tgstation.Server.Api.Models.EntityId.Id</a></div><div class="ttdeci">virtual ? long Id</div><div class="ttdoc">The ID of the entity.</div><div class="ttdef"><b>Definition</b> <a href="_entity_id_8cs_source.html#l00014">EntityId.cs:14</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html">Tgstation.Server.Api.Models.Instance</a></div><div class="ttdoc">Metadata about a server instance.</div><div class="ttdef"><b>Definition</b> <a href="_tgstation_8_server_8_api_2_models_2_instance_8cs_source.html#l00008">Instance.cs:9</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job_html_ab960ca771b3f1b5b1caabddb6286934b"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html#ab960ca771b3f1b5b1caabddb6286934b">Tgstation.Server.Api.Models.Internal.CompileJob.DMApiVersion</a></div><div class="ttdeci">virtual ? Version DMApiVersion</div><div class="ttdoc">The DMAPI Version.</div><div class="ttdef"><b>Definition</b> <a href="_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs_source.html#l00043">CompileJob.cs:43</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job_html_aba859254f245bc21a8ff640ab58caf03"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html#aba859254f245bc21a8ff640ab58caf03">Tgstation.Server.Api.Models.Internal.CompileJob.MinimumSecurityLevel</a></div><div class="ttdeci">DreamDaemonSecurity? MinimumSecurityLevel</div><div class="ttdoc">The minimum DreamDaemonSecurity required to run the CompileJob's output.</div><div class="ttdef"><b>Definition</b> <a href="_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs_source.html#l00035">CompileJob.cs:35</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html">Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters</a></div><div class="ttdoc">Launch settings for DreamDaemon.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_launch_parameters_8cs_source.html#l00009">DreamDaemonLaunchParameters.cs:10</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_html_a00af90c86ba9ced8f7b718cea098892b"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a00af90c86ba9ced8f7b718cea098892b">Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.Port</a></div><div class="ttdeci">ushort? Port</div><div class="ttdoc">The port DreamDaemon uses. This should be publically accessible.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_launch_parameters_8cs_source.html#l00051">DreamDaemonLaunchParameters.cs:51</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_html_a08f11d77340868a0c8f2e1af89c7affe"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a08f11d77340868a0c8f2e1af89c7affe">Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.Visibility</a></div><div class="ttdeci">DreamDaemonVisibility? Visibility</div><div class="ttdoc">The DreamDaemonVisibility level of DreamDaemon. No-op for EngineType.OpenDream.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_launch_parameters_8cs_source.html#l00033">DreamDaemonLaunchParameters.cs:33</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_html_a3dbd92d8284bf7837808be9499105682"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a3dbd92d8284bf7837808be9499105682">Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.LogOutput</a></div><div class="ttdeci">bool? LogOutput</div><div class="ttdoc">If process output/error text should be logged.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_launch_parameters_8cs_source.html#l00107">DreamDaemonLaunchParameters.cs:107</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_html_a5e172ad3abdcc1f6a0f24cdf08646d0a"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#a5e172ad3abdcc1f6a0f24cdf08646d0a">Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.TopicRequestTimeout</a></div><div class="ttdeci">uint? TopicRequestTimeout</div><div class="ttdoc">The timeout for sending and receiving BYOND topics in milliseconds.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_launch_parameters_8cs_source.html#l00092">DreamDaemonLaunchParameters.cs:92</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_html_aa3ac63088b89bf67dd5fdbe67970b03d"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#aa3ac63088b89bf67dd5fdbe67970b03d">Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.StartupTimeout</a></div><div class="ttdeci">uint? StartupTimeout</div><div class="ttdoc">The DreamDaemon startup timeout in seconds.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_launch_parameters_8cs_source.html#l00068">DreamDaemonLaunchParameters.cs:68</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters_html_aab2ca846e0aade7de3cfcea099f40fa4"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html#aab2ca846e0aade7de3cfcea099f40fa4">Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.SecurityLevel</a></div><div class="ttdeci">DreamDaemonSecurity? SecurityLevel</div><div class="ttdoc">The DreamDaemonSecurity level of DreamDaemon. No-op for EngineType.OpenDream.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_launch_parameters_8cs_source.html#l00042">DreamDaemonLaunchParameters.cs:42</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html">Tgstation.Server.Host.Components.Interop.Bridge.RuntimeInformation</a></div><div class="ttdoc">Representation of the initial data passed as part of a BridgeCommandType.Startup request.</div><div class="ttdef"><b>Definition</b> <a href="_runtime_information_8cs_source.html#l00017">RuntimeInformation.cs:18</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html">Tgstation.Server.Host.Components.Interop.DMApiConstants</a></div><div class="ttdoc">Constants used for communication with the DMAPI.</div><div class="ttdef"><b>Definition</b> <a href="_d_m_api_constants_8cs_source.html#l00015">DMApiConstants.cs:16</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants_html_a8dcd2fa9f5a2900252b878d8ad560796"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html#a8dcd2fa9f5a2900252b878d8ad560796">Tgstation.Server.Host.Components.Interop.DMApiConstants.ParamServerPort</a></div><div class="ttdeci">const string ParamServerPort</div><div class="ttdoc">Identifies the Core.IServerPortProvider.HttpApiPort of the server.</div><div class="ttdef"><b>Definition</b> <a href="_d_m_api_constants_8cs_source.html#l00025">DMApiConstants.cs:25</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants_html_aa076c322d7bee2b5d7da67093a9dabff"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html#aa076c322d7bee2b5d7da67093a9dabff">Tgstation.Server.Host.Components.Interop.DMApiConstants.ParamAccessIdentifier</a></div><div class="ttdeci">const string ParamAccessIdentifier</div><div class="ttdoc">Identifies the DMApiParameters.AccessIdentifier for the session.</div><div class="ttdef"><b>Definition</b> <a href="_d_m_api_constants_8cs_source.html#l00030">DMApiConstants.cs:30</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants_html_ab930f933c33983f0c21c6dd614b896ec"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html#ab930f933c33983f0c21c6dd614b896ec">Tgstation.Server.Host.Components.Interop.DMApiConstants.ParamApiVersion</a></div><div class="ttdeci">const string ParamApiVersion</div><div class="ttdoc">Identifies a DMAPI execution with the version as the value.</div><div class="ttdef"><b>Definition</b> <a href="_d_m_api_constants_8cs_source.html#l00020">DMApiConstants.cs:20</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants_html_ac2e027490bca3307936efe1092da2cc9"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html#ac2e027490bca3307936efe1092da2cc9">Tgstation.Server.Host.Components.Interop.DMApiConstants.InteropVersion</a></div><div class="ttdeci">static readonly Version InteropVersion</div><div class="ttdoc">The DMAPI InteropVersion being used.</div><div class="ttdef"><b>Definition</b> <a href="_d_m_api_constants_8cs_source.html#l00056">DMApiConstants.cs:56</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html">Tgstation.Server.Host.Components.Session.ReattachInformation</a></div><div class="ttdoc">Parameters necessary for duplicating a ISessionController session.</div><div class="ttdef"><b>Definition</b> <a href="_components_2_session_2_reattach_information_8cs_source.html#l00013">ReattachInformation.cs:14</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information_html_a0e7e39db3290479256688fc7dae2e52d"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#a0e7e39db3290479256688fc7dae2e52d">Tgstation.Server.Host.Components.Session.ReattachInformation.TopicRequestTimeout</a></div><div class="ttdeci">TimeSpan TopicRequestTimeout</div><div class="ttdoc">The TimeSpan which indicates when topic requests should timeout.</div><div class="ttdef"><b>Definition</b> <a href="_components_2_session_2_reattach_information_8cs_source.html#l00033">ReattachInformation.cs:33</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information_html_a56616a95d65e523becb086f2042d8a93"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#a56616a95d65e523becb086f2042d8a93">Tgstation.Server.Host.Components.Session.ReattachInformation.SetRuntimeInformation</a></div><div class="ttdeci">void SetRuntimeInformation(RuntimeInformation runtimeInformation)</div><div class="ttdoc">Set the RuntimeInformation post construction.</div><div class="ttdef"><b>Definition</b> <a href="_components_2_session_2_reattach_information_8cs_source.html#l00092">ReattachInformation.cs:92</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information_html_ae9210ff3236e194682fabe36fe20620d"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html#ae9210ff3236e194682fabe36fe20620d">Tgstation.Server.Host.Components.Session.ReattachInformation.Dmb</a></div><div class="ttdeci">IDmbProvider Dmb</div><div class="ttdoc">The IDmbProvider used by DreamDaemon.</div><div class="ttdef"><b>Definition</b> <a href="_components_2_session_2_reattach_information_8cs_source.html#l00018">ReattachInformation.cs:18</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html">Tgstation.Server.Host.Components.Session.SessionControllerFactory</a></div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00036">SessionControllerFactory.cs:37</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a09b395370c91275ae408e142fb54a72d"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09b395370c91275ae408e142fb54a72d">Tgstation.Server.Host.Components.Session.SessionControllerFactory.eventConsumer</a></div><div class="ttdeci">readonly IEventConsumer eventConsumer</div><div class="ttdoc">The IEventConsumer for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00106">SessionControllerFactory.cs:106</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a09c977af69bd3d954c7dd4ca0b89e92e"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a09c977af69bd3d954c7dd4ca0b89e92e">Tgstation.Server.Host.Components.Session.SessionControllerFactory.topicClientFactory</a></div><div class="ttdeci">readonly ITopicClientFactory topicClientFactory</div><div class="ttdoc">The ITopicClientFactory for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00056">SessionControllerFactory.cs:56</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a14b84906ae2ddd580d5735ebf3ba9917"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a14b84906ae2ddd580d5735ebf3ba9917">Tgstation.Server.Host.Components.Session.SessionControllerFactory.serverPortProvider</a></div><div class="ttdeci">readonly IServerPortProvider serverPortProvider</div><div class="ttdoc">The IServerPortProvider for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00101">SessionControllerFactory.cs:101</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a19be3056a71f332cc36cc29b3aea9e3a"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a19be3056a71f332cc36cc29b3aea9e3a">Tgstation.Server.Host.Components.Session.SessionControllerFactory.loggerFactory</a></div><div class="ttdeci">readonly ILoggerFactory loggerFactory</div><div class="ttdoc">The ILoggerFactory for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00131">SessionControllerFactory.cs:131</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a1e5abb3512c946d17d762285046b6e56"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1e5abb3512c946d17d762285046b6e56">Tgstation.Server.Host.Components.Session.SessionControllerFactory.processExecutor</a></div><div class="ttdeci">readonly IProcessExecutor processExecutor</div><div class="ttdoc">The IProcessExecutor for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00046">SessionControllerFactory.cs:46</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a1ff309648594dba65ebd5f5be0742b0a"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a1ff309648594dba65ebd5f5be0742b0a">Tgstation.Server.Host.Components.Session.SessionControllerFactory.gameIOManager</a></div><div class="ttdeci">readonly IIOManager gameIOManager</div><div class="ttdoc">The IIOManager for the Game directory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00071">SessionControllerFactory.cs:71</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a3ac5c5fc42697bf3146a1b0fc9271eb1"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5c5fc42697bf3146a1b0fc9271eb1">Tgstation.Server.Host.Components.Session.SessionControllerFactory.CheckPagerIsNotRunning</a></div><div class="ttdeci">async ValueTask CheckPagerIsNotRunning()</div><div class="ttdoc">Make sure the BYOND pager is not running.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00710">SessionControllerFactory.cs:710</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a3ac5f067400fe019d8375fffc0e83dee"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3ac5f067400fe019d8375fffc0e83dee">Tgstation.Server.Host.Components.Session.SessionControllerFactory.platformIdentifier</a></div><div class="ttdeci">readonly IPlatformIdentifier platformIdentifier</div><div class="ttdoc">The IPlatformIdentifier for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00091">SessionControllerFactory.cs:91</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a3d7f74e98cb6a70dbab697f79765226b"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3d7f74e98cb6a70dbab697f79765226b">Tgstation.Server.Host.Components.Session.SessionControllerFactory.LogDDOutput</a></div><div class="ttdeci">async ValueTask LogDDOutput(IProcess process, string? outputFilePath, bool cliSupported, bool preserveFile, CancellationToken cancellationToken)</div><div class="ttdoc">Attempts to log DreamDaemon output.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00637">SessionControllerFactory.cs:637</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a3fa7ac01727101e55cf46b5ba8681982"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a3fa7ac01727101e55cf46b5ba8681982">Tgstation.Server.Host.Components.Session.SessionControllerFactory.CreateRuntimeInformation</a></div><div class="ttdeci">RuntimeInformation CreateRuntimeInformation(IDmbProvider dmbProvider, IChatTrackingContext chatTrackingContext, DreamDaemonSecurity securityLevel, DreamDaemonVisibility visibility, bool apiValidateOnly)</div><div class="ttdoc">Create RuntimeInformation.</div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a483ed37a018bd66106dbed87ce8adc13"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a483ed37a018bd66106dbed87ce8adc13">Tgstation.Server.Host.Components.Session.SessionControllerFactory.cryptographySuite</a></div><div class="ttdeci">readonly ICryptographySuite cryptographySuite</div><div class="ttdoc">The ICryptographySuite for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00061">SessionControllerFactory.cs:61</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a4f44ac08947e06971e21e3f39bdd3683"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a4f44ac08947e06971e21e3f39bdd3683">Tgstation.Server.Host.Components.Session.SessionControllerFactory.CreateGameServerProcess</a></div><div class="ttdeci">async ValueTask< IProcess > CreateGameServerProcess(IDmbProvider dmbProvider, IEngineExecutableLock engineLock, DreamDaemonLaunchParameters launchParameters, string accessIdentifier, string? logFilePath, bool apiValidate, CancellationToken cancellationToken)</div><div class="ttdoc">Creates the game server IProcess.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00541">SessionControllerFactory.cs:541</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a51ca33cc4d830ae0a38defc0999adb2a"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a51ca33cc4d830ae0a38defc0999adb2a">Tgstation.Server.Host.Components.Session.SessionControllerFactory.dreamMaker</a></div><div class="ttdeci">readonly IDreamMaker dreamMaker</div><div class="ttdoc">The IDreamMaker for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00116">SessionControllerFactory.cs:116</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a58566db67d5309791189384f51ccc914"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a58566db67d5309791189384f51ccc914">Tgstation.Server.Host.Components.Session.SessionControllerFactory.bridgeRegistrar</a></div><div class="ttdeci">readonly IBridgeRegistrar bridgeRegistrar</div><div class="ttdoc">The IBridgeRegistrar for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00096">SessionControllerFactory.cs:96</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a5fceb9618381d05a21cfb3254218f3ff"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a5fceb9618381d05a21cfb3254218f3ff">Tgstation.Server.Host.Components.Session.SessionControllerFactory.PortBindTest</a></div><div class="ttdeci">async ValueTask PortBindTest(ushort port, EngineType engineType, CancellationToken cancellationToken)</div><div class="ttdoc">Check if a given port can be bound to.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00165">SessionControllerFactory.cs:165</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a64531b114473becdc1cfeedea4ca0308"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a64531b114473becdc1cfeedea4ca0308">Tgstation.Server.Host.Components.Session.SessionControllerFactory.DreamDaemonLogsPath</a></div><div class="ttdeci">const string DreamDaemonLogsPath</div><div class="ttdoc">Path in Diagnostics folder to DreamDaemon logs.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00041">SessionControllerFactory.cs:41</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a6664cd594568a6693b0c211c2ed04fd5"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a6664cd594568a6693b0c211c2ed04fd5">Tgstation.Server.Host.Components.Session.SessionControllerFactory.sessionsLaunched</a></div><div class="ttdeci">readonly Counter sessionsLaunched</div><div class="ttdoc">The number of sessions launched.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00146">SessionControllerFactory.cs:146</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a7b5be8922642811c1a2912d8428554e5"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b5be8922642811c1a2912d8428554e5">Tgstation.Server.Host.Components.Session.SessionControllerFactory.instance</a></div><div class="ttdeci">readonly Api.Models.Instance instance</div><div class="ttdoc">The Api.Models.Instance for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00156">SessionControllerFactory.cs:156</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a7b73a5e0ea646cfe55c2bd6679e4cab6"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a7b73a5e0ea646cfe55c2bd6679e4cab6">Tgstation.Server.Host.Components.Session.SessionControllerFactory.networkPromptReaper</a></div><div class="ttdeci">readonly INetworkPromptReaper networkPromptReaper</div><div class="ttdoc">The INetworkPromptReaper for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00086">SessionControllerFactory.cs:86</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a813e174693bf34436e8ef323524b83da"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a813e174693bf34436e8ef323524b83da">Tgstation.Server.Host.Components.Session.SessionControllerFactory.SessionControllerFactory</a></div><div class="ttdeci">SessionControllerFactory(IProcessExecutor processExecutor, IEngineManager engineManager, ITopicClientFactory topicClientFactory, ICryptographySuite cryptographySuite, IAssemblyInformationProvider assemblyInformationProvider, IIOManager gameIOManager, IIOManager diagnosticsIOManager, IChatManager chat, INetworkPromptReaper networkPromptReaper, IPlatformIdentifier platformIdentifier, IBridgeRegistrar bridgeRegistrar, IServerPortProvider serverPortProvider, IEventConsumer eventConsumer, IJobManager jobManager, IDreamMaker dreamMaker, IAsyncDelayer asyncDelayer, IDotnetDumpService dotnetDumpService, IMetricFactory metricFactory, ILoggerFactory loggerFactory, IOptionsMonitor< SessionConfiguration > sessionConfigurationOptions, ILogger< SessionControllerFactory > logger, Api.Models.Instance instance)</div><div class="ttdoc">Initializes a new instance of the SessionControllerFactory class.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00217">SessionControllerFactory.cs:217</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a83b35ba371db1f4a93b6b4a3a7c1a2c5"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a83b35ba371db1f4a93b6b4a3a7c1a2c5">Tgstation.Server.Host.Components.Session.SessionControllerFactory.logger</a></div><div class="ttdeci">readonly ILogger< SessionControllerFactory > logger</div><div class="ttdoc">The ILogger for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00141">SessionControllerFactory.cs:141</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a8aec2da2210588cce0c937b97ff94d46"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8aec2da2210588cce0c937b97ff94d46">Tgstation.Server.Host.Components.Session.SessionControllerFactory.chat</a></div><div class="ttdeci">readonly IChatManager chat</div><div class="ttdoc">The IChatManager for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00081">SessionControllerFactory.cs:81</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_a8dbd5a414f211bbb1b0c63c5666568b8"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#a8dbd5a414f211bbb1b0c63c5666568b8">Tgstation.Server.Host.Components.Session.SessionControllerFactory.assemblyInformationProvider</a></div><div class="ttdeci">readonly IAssemblyInformationProvider assemblyInformationProvider</div><div class="ttdoc">The IAssemblyInformationProvider for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00066">SessionControllerFactory.cs:66</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_aa1f001876dbd9f80e47e492fc2ed9d39"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aa1f001876dbd9f80e47e492fc2ed9d39">Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew</a></div><div class="ttdeci">async ValueTask< ISessionController > LaunchNew(IDmbProvider dmbProvider, IEngineExecutableLock? currentByondLock, DreamDaemonLaunchParameters launchParameters, bool apiValidate, CancellationToken cancellationToken)</div><div class="ttdoc">Create a ISessionController from a freshly launch DreamDaemon instance.A ValueTask<TResult> resulting...</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00270">SessionControllerFactory.cs:270</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_abc72835a2978c48c124ed1031f9e0661"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#abc72835a2978c48c124ed1031f9e0661">Tgstation.Server.Host.Components.Session.SessionControllerFactory.dotnetDumpService</a></div><div class="ttdeci">readonly IDotnetDumpService dotnetDumpService</div><div class="ttdoc">The IDotnetDumpService for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00126">SessionControllerFactory.cs:126</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_ac7e7d4fc0a793672a53f0d6d579d7954"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ac7e7d4fc0a793672a53f0d6d579d7954">Tgstation.Server.Host.Components.Session.SessionControllerFactory.engineManager</a></div><div class="ttdeci">readonly IEngineManager engineManager</div><div class="ttdoc">The IEngineManager for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00051">SessionControllerFactory.cs:51</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_adc773a2a44c35f4ac1fb855fff929e22"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adc773a2a44c35f4ac1fb855fff929e22">Tgstation.Server.Host.Components.Session.SessionControllerFactory.Reattach</a></div><div class="ttdeci">async ValueTask< ISessionController?> Reattach(ReattachInformation reattachInformation, CancellationToken cancellationToken)</div><div class="ttdoc">Create a ISessionController from an existing DreamDaemon instance.A ValueTask<TResult> resulting in a...</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00442">SessionControllerFactory.cs:442</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_ade13771cc246600ec3d213d52397277d"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ade13771cc246600ec3d213d52397277d">Tgstation.Server.Host.Components.Session.SessionControllerFactory.lastSessionLaunch</a></div><div class="ttdeci">readonly Gauge lastSessionLaunch</div><div class="ttdoc">The time the current session was launched.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00151">SessionControllerFactory.cs:151</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_adf89514aa3791a1ec0055f908ad02168"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#adf89514aa3791a1ec0055f908ad02168">Tgstation.Server.Host.Components.Session.SessionControllerFactory.jobManager</a></div><div class="ttdeci">readonly IJobManager jobManager</div><div class="ttdoc">The IJobManager for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00111">SessionControllerFactory.cs:111</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_ae6a1924988e5c3532f1cad03cd14b61c"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#ae6a1924988e5c3532f1cad03cd14b61c">Tgstation.Server.Host.Components.Session.SessionControllerFactory.asyncDelayer</a></div><div class="ttdeci">readonly IAsyncDelayer asyncDelayer</div><div class="ttdoc">The IAsyncDelayer for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00121">SessionControllerFactory.cs:121</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_afbfc991e242020937547979c28e87e0c"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#afbfc991e242020937547979c28e87e0c">Tgstation.Server.Host.Components.Session.SessionControllerFactory.sessionConfigurationOptions</a></div><div class="ttdeci">readonly IOptionsMonitor< SessionConfiguration > sessionConfigurationOptions</div><div class="ttdoc">The IOptionsMonitor<TOptions> of SessionConfiguration for the SessionControllerFactory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00136">SessionControllerFactory.cs:136</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory_html_aff289db7cbcdaa6d6b4e3268886af0e0"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html#aff289db7cbcdaa6d6b4e3268886af0e0">Tgstation.Server.Host.Components.Session.SessionControllerFactory.diagnosticsIOManager</a></div><div class="ttdeci">readonly IIOManager diagnosticsIOManager</div><div class="ttdoc">The IIOManager for the Diagnostics directory.</div><div class="ttdef"><b>Definition</b> <a href="_session_controller_factory_8cs_source.html#l00076">SessionControllerFactory.cs:76</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html">Tgstation.Server.Host.Components.Session.SessionController</a></div><div class="ttdef"><b>Definition</b> <a href="_session_controller_8cs_source.html#l00037">SessionController.cs:39</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_socket_extensions_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_socket_extensions.html">Tgstation.Server.Host.Extensions.SocketExtensions</a></div><div class="ttdoc">Extension methods for the Socket class.</div><div class="ttdef"><b>Definition</b> <a href="_socket_extensions_8cs_source.html#l00012">SocketExtensions.cs:13</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_socket_extensions_html_ad87cda4241401c1a92afb27242c2e0de"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_extensions_1_1_socket_extensions.html#ad87cda4241401c1a92afb27242c2e0de">Tgstation.Server.Host.Extensions.SocketExtensions.BindTest</a></div><div class="ttdeci">static void BindTest(IPlatformIdentifier platformIdentifier, ushort port, bool includeIPv6, bool udp)</div><div class="ttdoc">Attempt to exclusively bind to a given port .</div><div class="ttdef"><b>Definition</b> <a href="_socket_extensions_8cs_source.html#l00021">SocketExtensions.cs:21</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception_html"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_job_exception.html">Tgstation.Server.Host.Jobs.JobException</a></div><div class="ttdoc">Operation exceptions thrown from the context of a Models.Job.</div><div class="ttdef"><b>Definition</b> <a href="_job_exception_8cs_source.html#l00010">JobException.cs:11</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base_html_a1db7cc859835159944cbafba2c328ec4"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html#a1db7cc859835159944cbafba2c328ec4">Tgstation.Server.Host.Models.ReattachInformationBase.LaunchSecurityLevel</a></div><div class="ttdeci">DreamDaemonSecurity LaunchSecurityLevel</div><div class="ttdoc">The DreamDaemonSecurity level DreamDaemon was launched with.</div><div class="ttdef"><b>Definition</b> <a href="_reattach_information_base_8cs_source.html#l00042">ReattachInformationBase.cs:42</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base_html_a6f8d698913ca0c40775eaa9a1ec8a787"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html#a6f8d698913ca0c40775eaa9a1ec8a787">Tgstation.Server.Host.Models.ReattachInformationBase.ProcessId</a></div><div class="ttdeci">int ProcessId</div><div class="ttdoc">The system process ID.</div><div class="ttdef"><b>Definition</b> <a href="_reattach_information_base_8cs_source.html#l00022">ReattachInformationBase.cs:22</a></div></div>
|
|
<div class="ttc" id="aclass_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base_html_a7f83efb03ed1b30f40185078860abb7c"><div class="ttname"><a href="class_tgstation_1_1_server_1_1_host_1_1_models_1_1_reattach_information_base.html#a7f83efb03ed1b30f40185078860abb7c">Tgstation.Server.Host.Models.ReattachInformationBase.LaunchVisibility</a></div><div class="ttdeci">DreamDaemonVisibility LaunchVisibility</div><div class="ttdoc">The DreamDaemonVisibility DreamDaemon was launched with.</div><div class="ttdef"><b>Definition</b> <a href="_reattach_information_base_8cs_source.html#l00047">ReattachInformationBase.cs:47</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html">Tgstation.Server.Host.Components.Chat.IChatManager</a></div><div class="ttdoc">For managing connected chat services.</div><div class="ttdef"><b>Definition</b> <a href="_i_chat_manager_8cs_source.html#l00014">IChatManager.cs:15</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager_html_a5b3b4e9ab7d03bd8020ee9dfa9bebbbe"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_manager.html#a5b3b4e9ab7d03bd8020ee9dfa9bebbbe">Tgstation.Server.Host.Components.Chat.IChatManager.CreateTrackingContext</a></div><div class="ttdeci">IChatTrackingContext CreateTrackingContext()</div><div class="ttdoc">Start tracking Commands.CustomCommands and ChannelRepresentations.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_i_chat_tracking_context.html">Tgstation.Server.Host.Components.Chat.IChatTrackingContext</a></div><div class="ttdoc">Represents a tracking of dynamic chat json files.</div><div class="ttdef"><b>Definition</b> <a href="_i_chat_tracking_context_8cs_source.html#l00011">IChatTrackingContext.cs:12</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html">Tgstation.Server.Host.Components.Deployment.IDmbProvider</a></div><div class="ttdoc">Provides absolute paths to the latest compiled .dmbs.</div><div class="ttdef"><b>Definition</b> <a href="_i_dmb_provider_8cs_source.html#l00010">IDmbProvider.cs:11</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider_html_a1b5874e4f5733aa7a04b397450f40792"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a1b5874e4f5733aa7a04b397450f40792">Tgstation.Server.Host.Components.Deployment.IDmbProvider.EngineVersion</a></div><div class="ttdeci">EngineVersion EngineVersion</div><div class="ttdoc">The Api.Models.EngineVersion used to build the .dmb.</div><div class="ttdef"><b>Definition</b> <a href="_i_dmb_provider_8cs_source.html#l00030">IDmbProvider.cs:30</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider_html_a7607fcc4f9d4667337c435fd2b96dc53"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a7607fcc4f9d4667337c435fd2b96dc53">Tgstation.Server.Host.Components.Deployment.IDmbProvider.Directory</a></div><div class="ttdeci">string Directory</div><div class="ttdoc">The primary game directory.</div><div class="ttdef"><b>Definition</b> <a href="_i_dmb_provider_8cs_source.html#l00020">IDmbProvider.cs:20</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider_html_a950ac6f5b0cbcb2680546968c79486a1"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#a950ac6f5b0cbcb2680546968c79486a1">Tgstation.Server.Host.Components.Deployment.IDmbProvider.DmbName</a></div><div class="ttdeci">string DmbName</div><div class="ttdoc">The file name of the .dmb.</div><div class="ttdef"><b>Definition</b> <a href="_i_dmb_provider_8cs_source.html#l00015">IDmbProvider.cs:15</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider_html_aad154752808c57d3877f766894c24f4a"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dmb_provider.html#aad154752808c57d3877f766894c24f4a">Tgstation.Server.Host.Components.Deployment.IDmbProvider.CompileJob</a></div><div class="ttdeci">Models.CompileJob CompileJob</div><div class="ttdoc">The CompileJob of the .dmb.</div><div class="ttdef"><b>Definition</b> <a href="_i_dmb_provider_8cs_source.html#l00025">IDmbProvider.cs:25</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_i_dream_maker.html">Tgstation.Server.Host.Components.Deployment.IDreamMaker</a></div><div class="ttdoc">For managing the compiler.</div><div class="ttdef"><b>Definition</b> <a href="_i_dream_maker_8cs_source.html#l00013">IDreamMaker.cs:14</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_executable_lock_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_executable_lock.html">Tgstation.Server.Host.Components.Engine.IEngineExecutableLock</a></div><div class="ttdoc">Represents usage of the two primary BYOND server executables.</div><div class="ttdef"><b>Definition</b> <a href="_i_engine_executable_lock_8cs_source.html#l00008">IEngineExecutableLock.cs:9</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation_html_a0c27eae4fd625ca5e22a064ee34ca35e"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#a0c27eae4fd625ca5e22a064ee34ca35e">Tgstation.Server.Host.Components.Engine.IEngineInstallation.ServerExePath</a></div><div class="ttdeci">string ServerExePath</div><div class="ttdoc">The full path to the game server executable.</div><div class="ttdef"><b>Definition</b> <a href="_i_engine_installation_8cs_source.html#l00027">IEngineInstallation.cs:27</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation_html_a16bc1d460e98b09d6f03b6ff9eb5ca03"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#a16bc1d460e98b09d6f03b6ff9eb5ca03">Tgstation.Server.Host.Components.Engine.IEngineInstallation.FormatServerArguments</a></div><div class="ttdeci">string FormatServerArguments(IDmbProvider dmbProvider, IReadOnlyDictionary< string, string >? parameters, DreamDaemonLaunchParameters launchParameters, string accessIdentifier, string? logFilePath)</div><div class="ttdoc">Return the command line arguments for launching with given launchParameters .</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation_html_a1f08236db634210e10291a4ffddd0df8"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#a1f08236db634210e10291a4ffddd0df8">Tgstation.Server.Host.Components.Engine.IEngineInstallation.LoadEnv</a></div><div class="ttdeci">ValueTask< Dictionary< string, string >?> LoadEnv(ILogger logger, bool forCompiler, CancellationToken cancellationToken)</div><div class="ttdoc">Loads the environment settings for either the server or compiler.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation_html_a4eca5f3247105da00e7afe5bbbca9684"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#a4eca5f3247105da00e7afe5bbbca9684">Tgstation.Server.Host.Components.Engine.IEngineInstallation.PreferFileLogging</a></div><div class="ttdeci">bool PreferFileLogging</div><div class="ttdoc">If HasStandardOutput is set, this indicates that the engine server has good file logging that should ...</div><div class="ttdef"><b>Definition</b> <a href="_i_engine_installation_8cs_source.html#l00047">IEngineInstallation.cs:47</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation_html_af4417b7b16eb08fcd239ff1ee5267a4a"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_installation.html#af4417b7b16eb08fcd239ff1ee5267a4a">Tgstation.Server.Host.Components.Engine.IEngineInstallation.HasStandardOutput</a></div><div class="ttdeci">bool HasStandardOutput</div><div class="ttdoc">If ServerExePath supports being run as a command-line application and outputs log information to be c...</div><div class="ttdef"><b>Definition</b> <a href="_i_engine_installation_8cs_source.html#l00037">IEngineInstallation.cs:37</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_manager_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_manager.html">Tgstation.Server.Host.Components.Engine.IEngineManager</a></div><div class="ttdoc">For managing the engine installations.</div><div class="ttdef"><b>Definition</b> <a href="_i_engine_manager_8cs_source.html#l00016">IEngineManager.cs:17</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_manager_html_ac21fb8c8df8b40c14944282d86c32a66"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_1_1_i_engine_manager.html#ac21fb8c8df8b40c14944282d86c32a66">Tgstation.Server.Host.Components.Engine.IEngineManager.UseExecutables</a></div><div class="ttdeci">ValueTask< IEngineExecutableLock > UseExecutables(EngineVersion? requiredVersion, string? trustDmbFullPath, CancellationToken cancellationToken)</div><div class="ttdoc">Lock the current installation's location and return a IEngineExecutableLock.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html">Tgstation.Server.Host.Components.Events.IEventConsumer</a></div><div class="ttdoc">Consumes EventTypes and takes the appropriate actions.</div><div class="ttdef"><b>Definition</b> <a href="_i_event_consumer_8cs_source.html#l00010">IEventConsumer.cs:11</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer_html_a3aa955c269e063d5db2f3f83d001c38c"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_i_event_consumer.html#a3aa955c269e063d5db2f3f83d001c38c">Tgstation.Server.Host.Components.Events.IEventConsumer.HandleEvent</a></div><div class="ttdeci">ValueTask HandleEvent(EventType eventType, IEnumerable< string?> parameters, bool sensitiveParameters, bool deploymentPipeline, CancellationToken cancellationToken)</div><div class="ttdoc">Handle a given eventType .</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_i_bridge_registrar.html">Tgstation.Server.Host.Components.Interop.Bridge.IBridgeRegistrar</a></div><div class="ttdoc">Registers IBridgeHandlers.</div><div class="ttdef"><b>Definition</b> <a href="_i_bridge_registrar_8cs_source.html#l00006">IBridgeRegistrar.cs:7</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_session_controller_factory.html">Tgstation.Server.Host.Components.Session.ISessionControllerFactory</a></div><div class="ttdoc">Factory for ISessionControllers.</div><div class="ttdef"><b>Definition</b> <a href="_i_session_controller_factory_8cs_source.html#l00013">ISessionControllerFactory.cs:14</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_topic_client_factory_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_topic_client_factory.html">Tgstation.Server.Host.Components.Session.ITopicClientFactory</a></div><div class="ttdoc">Factory for ITopicClients.</div><div class="ttdef"><b>Definition</b> <a href="_i_topic_client_factory_8cs_source.html#l00010">ITopicClientFactory.cs:11</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_topic_client_factory_html_a950569e357f1d6e51722d4894792c555"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_i_topic_client_factory.html#a950569e357f1d6e51722d4894792c555">Tgstation.Server.Host.Components.Session.ITopicClientFactory.CreateTopicClient</a></div><div class="ttdeci">ITopicClient CreateTopicClient(TimeSpan timeout)</div><div class="ttdoc">Create a ITopicClient.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html">Tgstation.Server.Host.Core.IServerPortProvider</a></div><div class="ttdoc">Provides access to the server's HttpApiPort.</div><div class="ttdef"><b>Definition</b> <a href="_i_server_port_provider_8cs_source.html#l00006">IServerPortProvider.cs:7</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider_html_af5e86a67c2cc59e14c762532275f0a2c"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_core_1_1_i_server_port_provider.html#af5e86a67c2cc59e14c762532275f0a2c">Tgstation.Server.Host.Core.IServerPortProvider.HttpApiPort</a></div><div class="ttdeci">ushort HttpApiPort</div><div class="ttdoc">The port the server listens on.</div><div class="ttdef"><b>Definition</b> <a href="_i_server_port_provider_8cs_source.html#l00011">IServerPortProvider.cs:11</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html">Tgstation.Server.Host.IO.IIOManager</a></div><div class="ttdoc">Interface for using filesystems.</div><div class="ttdef"><b>Definition</b> <a href="_i_i_o_manager_8cs_source.html#l00013">IIOManager.cs:14</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a18a442b5dff16f5e7a730ec354e81d78"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a18a442b5dff16f5e7a730ec354e81d78">Tgstation.Server.Host.IO.IIOManager.ResolvePath</a></div><div class="ttdeci">string ResolvePath()</div><div class="ttdoc">Retrieve the full path of the current working directory.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a286f4eb5c679683b7e519847a6c3574e"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a286f4eb5c679683b7e519847a6c3574e">Tgstation.Server.Host.IO.IIOManager.ConcatPath</a></div><div class="ttdeci">string ConcatPath(params string[] paths)</div><div class="ttdoc">Combines an array of strings into a path.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a69aa1b9dbeb6af3744e568095c4376e7"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a69aa1b9dbeb6af3744e568095c4376e7">Tgstation.Server.Host.IO.IIOManager.CreateDirectory</a></div><div class="ttdeci">Task CreateDirectory(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Create a directory at path .</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_jobs_1_1_i_job_manager.html">Tgstation.Server.Host.Jobs.IJobManager</a></div><div class="ttdoc">Manages the runtime of Jobs.</div><div class="ttdef"><b>Definition</b> <a href="_i_job_manager_8cs_source.html#l00012">IJobManager.cs:13</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html">Tgstation.Server.Host.Security.ICryptographySuite</a></div><div class="ttdoc">Contains various cryptographic functions.</div><div class="ttdef"><b>Definition</b> <a href="_i_cryptography_suite_8cs_source.html#l00008">ICryptographySuite.cs:9</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite_html_ab49e5041cfb7333ee413c9719046ae37"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_security_1_1_i_cryptography_suite.html#ab49e5041cfb7333ee413c9719046ae37">Tgstation.Server.Host.Security.ICryptographySuite.GetSecureString</a></div><div class="ttdeci">string GetSecureString()</div><div class="ttdoc">Generates a 40-length secure ascii string.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_assembly_information_provider.html">Tgstation.Server.Host.System.IAssemblyInformationProvider</a></div><div class="ttdoc">For retrieving the Assembly's location.</div><div class="ttdef"><b>Definition</b> <a href="_i_assembly_information_provider_8cs_source.html#l00010">IAssemblyInformationProvider.cs:11</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_dotnet_dump_service_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_dotnet_dump_service.html">Tgstation.Server.Host.System.IDotnetDumpService</a></div><div class="ttdoc">Service for managing the dotnet-dump installation.</div><div class="ttdef"><b>Definition</b> <a href="_i_dotnet_dump_service_8cs_source.html#l00009">IDotnetDumpService.cs:10</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html">Tgstation.Server.Host.System.INetworkPromptReaper</a></div><div class="ttdoc">On Windows, DreamDaemon will show an unskippable prompt when using /world/proc/OpenPort()....</div><div class="ttdef"><b>Definition</b> <a href="_i_network_prompt_reaper_8cs_source.html#l00006">INetworkPromptReaper.cs:7</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper_html_a3493714e50b54482ee2739479cf02d56"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_network_prompt_reaper.html#a3493714e50b54482ee2739479cf02d56">Tgstation.Server.Host.System.INetworkPromptReaper.RegisterProcess</a></div><div class="ttdeci">void RegisterProcess(IProcess process)</div><div class="ttdoc">Register a given process for network prompt reaping.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html">Tgstation.Server.Host.System.IPlatformIdentifier</a></div><div class="ttdoc">For identifying the current platform.</div><div class="ttdef"><b>Definition</b> <a href="_i_platform_identifier_8cs_source.html#l00008">IPlatformIdentifier.cs:9</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier_html_aa9bf3bd1082b7178f58cb1f36839550e"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_platform_identifier.html#aa9bf3bd1082b7178f58cb1f36839550e">Tgstation.Server.Host.System.IPlatformIdentifier.IsWindows</a></div><div class="ttdeci">bool IsWindows</div><div class="ttdoc">If the current platform is a Windows platform.</div><div class="ttdef"><b>Definition</b> <a href="_i_platform_identifier_8cs_source.html#l00014">IPlatformIdentifier.cs:14</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html">Tgstation.Server.Host.System.IProcessExecutor</a></div><div class="ttdoc">For launching IProcess'.</div><div class="ttdef"><b>Definition</b> <a href="_i_process_executor_8cs_source.html#l00010">IProcessExecutor.cs:11</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_html_a801aa19c189da2b1c40a805d98079b40"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html#a801aa19c189da2b1c40a805d98079b40">Tgstation.Server.Host.System.IProcessExecutor.LaunchProcess</a></div><div class="ttdeci">ValueTask< IProcess > LaunchProcess(string fileName, string workingDirectory, string arguments, CancellationToken cancellationToken, IReadOnlyDictionary< string, string >? environment=null, string? fileRedirect=null, bool readStandardHandles=false, bool noShellExecute=false, bool doNotLogArguments=false)</div><div class="ttdoc">Launch a IProcess.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor_html_a82c1c9bbc432577594f49417c969849f"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_executor.html#a82c1c9bbc432577594f49417c969849f">Tgstation.Server.Host.System.IProcessExecutor.GetProcess</a></div><div class="ttdeci">IProcess? GetProcess(int id)</div><div class="ttdoc">Get a IProcess by id .</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html">Tgstation.Server.Host.System.IProcess</a></div><div class="ttdoc">Abstraction over a global::System.Diagnostics.Process.</div><div class="ttdef"><b>Definition</b> <a href="_i_process_8cs_source.html#l00010">IProcess.cs:11</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process_html_af0f4b22a2d653f0b1d94190938498a48"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_system_1_1_i_process.html#af0f4b22a2d653f0b1d94190938498a48">Tgstation.Server.Host.System.IProcess.GetCombinedOutput</a></div><div class="ttdeci">Task< string?> GetCombinedOutput(CancellationToken cancellationToken)</div><div class="ttdoc">Get the stderr and stdout output of the IProcess.</div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html">Tgstation.Server.Host.Utils.IAsyncDelayer</a></div><div class="ttdoc">For waiting asynchronously.</div><div class="ttdef"><b>Definition</b> <a href="_i_async_delayer_8cs_source.html#l00010">IAsyncDelayer.cs:11</a></div></div>
|
|
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer_html_a588b00b42267c8d23088bde28d3f7fce"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_utils_1_1_i_async_delayer.html#a588b00b42267c8d23088bde28d3f7fce">Tgstation.Server.Host.Utils.IAsyncDelayer.Delay</a></div><div class="ttdeci">ValueTask Delay(TimeSpan timeSpan, CancellationToken cancellationToken)</div><div class="ttdoc">Create a Task that completes after a given timeSpan .</div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal.html">Tgstation.Server.Api.Models.Internal</a></div><div class="ttdef"><b>Definition</b> <a href="_chat_bot_api_base_8cs_source.html#l00005">ChatBotApiBase.cs:6</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_api_1_1_models_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html">Tgstation.Server.Api.Models</a></div><div class="ttdef"><b>Definition</b> <a href="_tgstation_8_server_8_api_2_models_2_chat_channel_8cs_source.html#l00005">ChatChannel.cs:6</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_api_1_1_models_html_a1a6adb59dd51244efabf4e548e7075c8"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a1a6adb59dd51244efabf4e548e7075c8">Tgstation.Server.Api.Models.ErrorCode</a></div><div class="ttdeci">ErrorCode</div><div class="ttdoc">Types of Response.ErrorMessageResponses that the API may return.</div><div class="ttdef"><b>Definition</b> <a href="_error_code_8cs_source.html#l00011">ErrorCode.cs:12</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_api_1_1_models_html_a2ca30004669a0f022b39b67d21ac976c"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#a2ca30004669a0f022b39b67d21ac976c">Tgstation.Server.Api.Models.DreamDaemonVisibility</a></div><div class="ttdeci">DreamDaemonVisibility</div><div class="ttdoc">The visibility setting for DreamDaemon.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_visibility_8cs_source.html#l00006">DreamDaemonVisibility.cs:7</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_api_1_1_models_html_ad4850e6b78816679602b13d63d2869b5"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad4850e6b78816679602b13d63d2869b5">Tgstation.Server.Api.Models.DreamDaemonSecurity</a></div><div class="ttdeci">DreamDaemonSecurity</div><div class="ttdoc">DreamDaemon's security level.</div><div class="ttdef"><b>Definition</b> <a href="_dream_daemon_security_8cs_source.html#l00006">DreamDaemonSecurity.cs:7</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_api_1_1_models_html_ad8fb60934662752c4bbed899440208ea"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_api_1_1_models.html#ad8fb60934662752c4bbed899440208ea">Tgstation.Server.Api.Models.EngineType</a></div><div class="ttdeci">EngineType</div><div class="ttdoc">The type of engine the codebase is using.</div><div class="ttdef"><b>Definition</b> <a href="_engine_type_8cs_source.html#l00006">EngineType.cs:7</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_common_1_1_extensions_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_common_1_1_extensions.html">Tgstation.Server.Common.Extensions</a></div><div class="ttdef"><b>Definition</b> <a href="_value_task_extensions_8cs_source.html#l00006">ValueTaskExtensions.cs:7</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat.html">Tgstation.Server.Host.Components.Chat</a></div><div class="ttdef"><b>Definition</b> <a href="_channel_mapping_8cs_source.html#l00003">ChannelMapping.cs:4</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment.html">Tgstation.Server.Host.Components.Deployment</a></div><div class="ttdef"><b>Definition</b> <a href="_deployment_lock_manager_8cs_source.html#l00012">DeploymentLockManager.cs:13</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_engine.html">Tgstation.Server.Host.Components.Engine</a></div><div class="ttdef"><b>Definition</b> <a href="_byond_installation_8cs_source.html#l00011">ByondInstallation.cs:12</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_events.html">Tgstation.Server.Host.Components.Events</a></div><div class="ttdef"><b>Definition</b> <a href="_event_consumer_8cs_source.html#l00009">EventConsumer.cs:10</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_html_ac30c818717e92c8fb65f389adec739b7"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_events.html#ac30c818717e92c8fb65f389adec739b7">Tgstation.Server.Host.Components.Events.EventType</a></div><div class="ttdeci">EventType</div><div class="ttdoc">Types of events. Mirror in tgs.dm. Prefer last listed name for script.</div><div class="ttdef"><b>Definition</b> <a href="_event_type_8cs_source.html#l00006">EventType.cs:7</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge.html">Tgstation.Server.Host.Components.Interop.Bridge</a></div><div class="ttdef"><b>Definition</b> <a href="_bridge_command_type_8cs_source.html#l00001">BridgeCommandType.cs:2</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop.html">Tgstation.Server.Host.Components.Interop</a></div><div class="ttdef"><b>Definition</b> <a href="_bridge_command_type_8cs_source.html#l00001">BridgeCommandType.cs:2</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_components_1_1_session.html">Tgstation.Server.Host.Components.Session</a></div><div class="ttdef"><b>Definition</b> <a href="_api_validation_status_8cs_source.html#l00001">ApiValidationStatus.cs:2</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_configuration_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_configuration.html">Tgstation.Server.Host.Configuration</a></div><div class="ttdef"><b>Definition</b> <a href="_control_panel_configuration_8cs_source.html#l00003">ControlPanelConfiguration.cs:4</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_core_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_core.html">Tgstation.Server.Host.Core</a></div><div class="ttdef"><b>Definition</b> <a href="_command_pipe_manager_8cs_source.html#l00016">CommandPipeManager.cs:17</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_extensions_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_extensions.html">Tgstation.Server.Host.Extensions</a></div><div class="ttdef"><b>Definition</b> <a href="_application_builder_extensions_8cs_source.html#l00021">ApplicationBuilderExtensions.cs:22</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_i_o_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_i_o.html">Tgstation.Server.Host.IO</a></div><div class="ttdef"><b>Definition</b> <a href="_buffered_file_stream_provider_8cs_source.html#l00008">BufferedFileStreamProvider.cs:9</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_jobs_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_jobs.html">Tgstation.Server.Host.Jobs</a></div><div class="ttdef"><b>Definition</b> <a href="_i_job_manager_8cs_source.html#l00007">IJobManager.cs:8</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_security_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_security.html">Tgstation.Server.Host.Security</a></div><div class="ttdef"><b>Definition</b> <a href="_authentication_context_8cs_source.html#l00007">AuthenticationContext.cs:8</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_system_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_system.html">Tgstation.Server.Host.System</a></div><div class="ttdef"><b>Definition</b> <a href="_assembly_information_provider_8cs_source.html#l00008">AssemblyInformationProvider.cs:9</a></div></div>
|
|
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_utils_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_utils.html">Tgstation.Server.Host.Utils</a></div><div class="ttdef"><b>Definition</b> <a href="_graph_q_l_git_lab_client_8cs_source.html#l00006">GraphQLGitLabClient.cs:7</a></div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
|
|
</small></address>
|
|
</body>
|
|
</html>
|