From 46818f1eb84a36a2b2c6485061729c17627d8d94 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Fri, 10 Jul 2020 18:00:50 +0000 Subject: [PATCH] Deploy code docs to GitHub Pages for Travis build 3628 Commit: 5432ae41ccab80a0f5b6af17e3bda9c290aaee94 --- ...3___m_s_initial_create_8_designer_8cs.html | 2 +- ..._initial_create_8_designer_8cs_source.html | 2 +- 20180906135553___m_s_initial_create_8cs.html | 2 +- ...35553___m_s_initial_create_8cs_source.html | 2 +- ...9___m_y_initial_create_8_designer_8cs.html | 2 +- ..._initial_create_8_designer_8cs_source.html | 2 +- 20180906143029___m_y_initial_create_8cs.html | 2 +- ...43029___m_y_initial_create_8cs_source.html | 2 +- ...y_add_minimum_security_8_designer_8cs.html | 2 +- ...inimum_security_8_designer_8cs_source.html | 2 +- ...020726___m_y_add_minimum_security_8cs.html | 2 +- ...__m_y_add_minimum_security_8cs_source.html | 2 +- ...s_add_minimum_security_8_designer_8cs.html | 2 +- ...inimum_security_8_designer_8cs_source.html | 2 +- ...021228___m_s_add_minimum_security_8cs.html | 2 +- ...__m_s_add_minimum_security_8cs_source.html | 2 +- ...nd_foreign_key_cleanup_8_designer_8cs.html | 2 +- ...ign_key_cleanup_8_designer_8cs_source.html | 2 +- ..._nullable_and_foreign_key_cleanup_8cs.html | 2 +- ...le_and_foreign_key_cleanup_8cs_source.html | 2 +- ...nd_foreign_key_cleanup_8_designer_8cs.html | 2 +- ...ign_key_cleanup_8_designer_8cs_source.html | 2 +- ..._nullable_and_foreign_key_cleanup_8cs.html | 2 +- ...le_and_foreign_key_cleanup_8cs_source.html | 2 +- ...h_compile_job_required_8_designer_8cs.html | 2 +- ...le_job_required_8_designer_8cs_source.html | 2 +- ...m_s_reattach_compile_job_required_8cs.html | 2 +- ...ttach_compile_job_required_8cs_source.html | 2 +- ...h_compile_job_required_8_designer_8cs.html | 2 +- ...le_job_required_8_designer_8cs_source.html | 2 +- ...m_y_reattach_compile_job_required_8cs.html | 2 +- ...ttach_compile_job_required_8cs_source.html | 2 +- ...gle_testmerge_comments_8_designer_8cs.html | 2 +- ...tmerge_comments_8_designer_8cs_source.html | 2 +- ...4___m_s_toggle_testmerge_comments_8cs.html | 2 +- ..._toggle_testmerge_comments_8cs_source.html | 2 +- ...gle_testmerge_comments_8_designer_8cs.html | 2 +- ...tmerge_comments_8_designer_8cs_source.html | 2 +- ...9___m_y_toggle_testmerge_comments_8cs.html | 2 +- ..._toggle_testmerge_comments_8cs_source.html | 2 +- ...m_s_fix_rev_info_index_8_designer_8cs.html | 2 +- ..._rev_info_index_8_designer_8cs_source.html | 2 +- ...19041825___m_s_fix_rev_info_index_8cs.html | 2 +- ...5___m_s_fix_rev_info_index_8cs_source.html | 2 +- ...m_y_fix_rev_info_index_8_designer_8cs.html | 2 +- ..._rev_info_index_8_designer_8cs_source.html | 2 +- ...19042440___m_y_fix_rev_info_index_8cs.html | 2 +- ...0___m_y_fix_rev_info_index_8cs_source.html | 2 +- ..._reconnection_interval_8_designer_8cs.html | 2 +- ...ection_interval_8_designer_8cs_source.html | 2 +- ...dd_chat_bot_reconnection_interval_8cs.html | 2 +- ..._bot_reconnection_interval_8cs_source.html | 2 +- ..._reconnection_interval_8_designer_8cs.html | 2 +- ...ection_interval_8_designer_8cs_source.html | 2 +- ...dd_chat_bot_reconnection_interval_8cs.html | 2 +- ..._bot_reconnection_interval_8cs_source.html | 2 +- ...m_s_tons_of_validation_8_designer_8cs.html | 2 +- ...s_of_validation_8_designer_8cs_source.html | 2 +- ...11164808___m_s_tons_of_validation_8cs.html | 2 +- ...8___m_s_tons_of_validation_8cs_source.html | 2 +- ...m_y_tons_of_validation_8_designer_8cs.html | 2 +- ...s_of_validation_8_designer_8cs_source.html | 2 +- ...11170010___m_y_tons_of_validation_8cs.html | 2 +- ...0___m_y_tons_of_validation_8cs_source.html | 2 +- ...9___m_s_limits_on_chat_8_designer_8cs.html | 2 +- ..._limits_on_chat_8_designer_8cs_source.html | 2 +- 20200420175359___m_s_limits_on_chat_8cs.html | 2 +- ...75359___m_s_limits_on_chat_8cs_source.html | 2 +- ...5___m_y_limits_on_chat_8_designer_8cs.html | 2 +- ..._limits_on_chat_8_designer_8cs_source.html | 2 +- 20200420181015___m_y_limits_on_chat_8cs.html | 2 +- ...81015___m_y_limits_on_chat_8cs_source.html | 2 +- ...le_job_d_m_api_version_8_designer_8cs.html | 2 +- ...d_m_api_version_8_designer_8cs_source.html | 2 +- ...s_add_compile_job_d_m_api_version_8cs.html | 2 +- ...ompile_job_d_m_api_version_8cs_source.html | 2 +- ...le_job_d_m_api_version_8_designer_8cs.html | 2 +- ...d_m_api_version_8_designer_8cs_source.html | 2 +- ...y_add_compile_job_d_m_api_version_8cs.html | 2 +- ...ompile_job_d_m_api_version_8cs_source.html | 2 +- ...m_y_checkpoint_rebuild_8_designer_8cs.html | 2 +- ...ckpoint_rebuild_8_designer_8cs_source.html | 2 +- ...23003841___m_y_checkpoint_rebuild_8cs.html | 2 +- ...1___m_y_checkpoint_rebuild_8cs_source.html | 2 +- ...m_s_checkpoint_rebuild_8_designer_8cs.html | 2 +- ...ckpoint_rebuild_8_designer_8cs_source.html | 2 +- ...23004015___m_s_checkpoint_rebuild_8cs.html | 2 +- ...5___m_s_checkpoint_rebuild_8cs_source.html | 2 +- ...ns_add_d_m_api_version_8_designer_8cs.html | 2 +- ...d_m_api_version_8_designer_8cs_source.html | 2 +- ..._s_kill_jsons_add_d_m_api_version_8cs.html | 2 +- ..._jsons_add_d_m_api_version_8cs_source.html | 2 +- ...ns_add_d_m_api_version_8_designer_8cs.html | 2 +- ...d_m_api_version_8_designer_8cs_source.html | 2 +- ..._y_kill_jsons_add_d_m_api_version_8cs.html | 2 +- ..._jsons_add_d_m_api_version_8cs_source.html | 2 +- ..._s_add_job_error_codes_8_designer_8cs.html | 2 +- ...job_error_codes_8_designer_8cs_source.html | 2 +- ...5024433___m_s_add_job_error_codes_8cs.html | 2 +- ...___m_s_add_job_error_codes_8cs_source.html | 2 +- ..._y_add_job_error_codes_8_designer_8cs.html | 2 +- ...job_error_codes_8_designer_8cs_source.html | 2 +- ...5024953___m_y_add_job_error_codes_8cs.html | 2 +- ...___m_y_add_job_error_codes_8cs_source.html | 2 +- ...s_fix_cascading_delete_8_designer_8cs.html | 2 +- ...ascading_delete_8_designer_8cs_source.html | 2 +- ...173852___m_s_fix_cascading_delete_8cs.html | 2 +- ...__m_s_fix_cascading_delete_8cs_source.html | 2 +- ...y_fix_cascading_delete_8_designer_8cs.html | 2 +- ...ascading_delete_8_designer_8cs_source.html | 2 +- ...180159___m_y_fix_cascading_delete_8cs.html | 2 +- ...__m_y_fix_cascading_delete_8cs_source.html | 2 +- ...27180904___s_l_rebuild_8_designer_8cs.html | 2 +- ...4___s_l_rebuild_8_designer_8cs_source.html | 2 +- 20200427180904___s_l_rebuild_8cs.html | 2 +- 20200427180904___s_l_rebuild_8cs_source.html | 2 +- ...57___m_s_add_heartbeat_8_designer_8cs.html | 2 +- ...s_add_heartbeat_8_designer_8cs_source.html | 2 +- 20200511005957___m_s_add_heartbeat_8cs.html | 2 +- ...005957___m_s_add_heartbeat_8cs_source.html | 2 +- ...48___m_y_add_heartbeat_8_designer_8cs.html | 2 +- ...y_add_heartbeat_8_designer_8cs_source.html | 2 +- 20200511011048___m_y_add_heartbeat_8cs.html | 2 +- ...011048___m_y_add_heartbeat_8cs_source.html | 2 +- ...17___s_l_add_heartbeat_8_designer_8cs.html | 2 +- ...l_add_heartbeat_8_designer_8cs_source.html | 2 +- 20200511012117___s_l_add_heartbeat_8cs.html | 2 +- ...012117___s_l_add_heartbeat_8cs_source.html | 2 +- ..._l_remove_soft_columns_8_designer_8cs.html | 2 +- ...ve_soft_columns_8_designer_8cs_source.html | 2 +- ...1162912___s_l_remove_soft_columns_8cs.html | 2 +- ...___s_l_remove_soft_columns_8cs_source.html | 2 +- ..._s_remove_soft_columns_8_designer_8cs.html | 2 +- ...ve_soft_columns_8_designer_8cs_source.html | 2 +- ...2181801___m_s_remove_soft_columns_8cs.html | 2 +- ...___m_s_remove_soft_columns_8cs_source.html | 2 +- ..._y_remove_soft_columns_8_designer_8cs.html | 2 +- ...ve_soft_columns_8_designer_8cs_source.html | 2 +- ...2182535___m_y_remove_soft_columns_8cs.html | 2 +- ...___m_y_remove_soft_columns_8cs_source.html | 2 +- ...516111712___p_g_create_8_designer_8cs.html | 2 +- ...12___p_g_create_8_designer_8cs_source.html | 2 +- 20200516111712___p_g_create_8cs.html | 2 +- 20200516111712___p_g_create_8cs_source.html | 2 +- ...___m_y_fix_foreign_key_8_designer_8cs.html | 2 +- ...fix_foreign_key_8_designer_8cs_source.html | 2 +- 20200529171541___m_y_fix_foreign_key_8cs.html | 2 +- ...1541___m_y_fix_foreign_key_8cs_source.html | 2 +- ...24___m_s_topic_timeout_8_designer_8cs.html | 2 +- ...s_topic_timeout_8_designer_8cs_source.html | 2 +- 20200616175424___m_s_topic_timeout_8cs.html | 2 +- ...175424___m_s_topic_timeout_8cs_source.html | 2 +- ...35___m_y_topic_timeout_8_designer_8cs.html | 2 +- ...y_topic_timeout_8_designer_8cs_source.html | 2 +- 20200616175535___m_y_topic_timeout_8cs.html | 2 +- ...175535___m_y_topic_timeout_8cs_source.html | 2 +- ...42___s_l_topic_timeout_8_designer_8cs.html | 2 +- ...l_topic_timeout_8_designer_8cs_source.html | 2 +- 20200616180742___s_l_topic_timeout_8cs.html | 2 +- ...180742___s_l_topic_timeout_8cs_source.html | 2 +- ...42___p_g_topic_timeout_8_designer_8cs.html | 2 +- ...g_topic_timeout_8_designer_8cs_source.html | 2 +- 20200616180842___p_g_topic_timeout_8cs.html | 2 +- ...180842___p_g_topic_timeout_8cs_source.html | 2 +- ..._experimental_watchdog_8_designer_8cs.html | 2 +- ...mental_watchdog_8_designer_8cs_source.html | 2 +- ..._m_s_remove_experimental_watchdog_8cs.html | 2 +- ...move_experimental_watchdog_8cs_source.html | 2 +- ..._experimental_watchdog_8_designer_8cs.html | 2 +- ...mental_watchdog_8_designer_8cs_source.html | 2 +- ..._m_y_remove_experimental_watchdog_8cs.html | 2 +- ...move_experimental_watchdog_8cs_source.html | 2 +- ..._experimental_watchdog_8_designer_8cs.html | 2 +- ...mental_watchdog_8_designer_8cs_source.html | 2 +- ..._p_g_remove_experimental_watchdog_8cs.html | 2 +- ...move_experimental_watchdog_8cs_source.html | 2 +- ..._experimental_watchdog_8_designer_8cs.html | 2 +- ...mental_watchdog_8_designer_8cs_source.html | 2 +- ..._s_l_remove_experimental_watchdog_8cs.html | 2 +- ...move_experimental_watchdog_8cs_source.html | 2 +- ...m_s_allow_null_d_m_api_8_designer_8cs.html | 2 +- ...ow_null_d_m_api_8_designer_8cs_source.html | 2 +- ...05163512___m_s_allow_null_d_m_api_8cs.html | 2 +- ...2___m_s_allow_null_d_m_api_8cs_source.html | 2 +- ...m_y_allow_null_d_m_api_8_designer_8cs.html | 2 +- ...ow_null_d_m_api_8_designer_8cs_source.html | 2 +- ...05163547___m_y_allow_null_d_m_api_8cs.html | 2 +- ...7___m_y_allow_null_d_m_api_8cs_source.html | 2 +- ...p_g_allow_null_d_m_api_8_designer_8cs.html | 2 +- ...ow_null_d_m_api_8_designer_8cs_source.html | 2 +- ...05163624___p_g_allow_null_d_m_api_8cs.html | 2 +- ...4___p_g_allow_null_d_m_api_8cs_source.html | 2 +- ...s_l_allow_null_d_m_api_8_designer_8cs.html | 2 +- ...ow_null_d_m_api_8_designer_8cs_source.html | 2 +- ...05163700___s_l_allow_null_d_m_api_8cs.html | 2 +- ...0___s_l_allow_null_d_m_api_8cs_source.html | 2 +- _a_p_i_8dox.html | 2 +- _administration_8cs.html | 2 +- _administration_8cs_source.html | 2 +- _administration_client_8cs.html | 2 +- _administration_client_8cs_source.html | 2 +- _administration_controller_8cs.html | 2 +- _administration_controller_8cs_source.html | 2 +- _administration_rights_8cs.html | 2 +- _administration_rights_8cs_source.html | 2 +- _api_client_8cs.html | 2 +- _api_client_8cs_source.html | 2 +- _api_client_factory_8cs.html | 2 +- _api_client_factory_8cs_source.html | 2 +- _api_conflict_exception_8cs.html | 2 +- _api_conflict_exception_8cs_source.html | 2 +- _api_controller_8cs.html | 2 +- _api_controller_8cs_source.html | 2 +- _api_exception_8cs.html | 2 +- _api_exception_8cs_source.html | 2 +- _api_headers_8cs.html | 2 +- _api_headers_8cs_source.html | 2 +- _api_validation_status_8cs.html | 2 +- _api_validation_status_8cs_source.html | 2 +- _application_8cs.html | 2 +- _application_8cs_source.html | 2 +- _application_builder_extensions_8cs.html | 2 +- ...ication_builder_extensions_8cs_source.html | 2 +- _architecture_8dox.html | 2 +- _assembly_information_provider_8cs.html | 2 +- ...embly_information_provider_8cs_source.html | 2 +- _async_delayer_8cs.html | 2 +- _async_delayer_8cs_source.html | 2 +- _authentication_context_8cs.html | 2 +- _authentication_context_8cs_source.html | 2 +- _authentication_context_factory_8cs.html | 2 +- ...entication_context_factory_8cs_source.html | 2 +- _basic_watchdog_8cs.html | 2 +- _basic_watchdog_8cs_source.html | 2 +- _bool_converter_8cs.html | 2 +- _bool_converter_8cs_source.html | 2 +- _bridge_command_type_8cs.html | 2 +- _bridge_command_type_8cs_source.html | 2 +- _bridge_controller_8cs.html | 2 +- _bridge_controller_8cs_source.html | 2 +- _bridge_parameters_8cs.html | 2 +- _bridge_parameters_8cs_source.html | 2 +- _bridge_registration_8cs.html | 2 +- _bridge_registration_8cs_source.html | 2 +- _bridge_response_8cs.html | 2 +- _bridge_response_8cs_source.html | 2 +- _byond_8cs.html | 2 +- _byond_8cs_source.html | 2 +- _byond_client_8cs.html | 2 +- _byond_client_8cs_source.html | 2 +- _byond_command_8cs.html | 2 +- _byond_command_8cs_source.html | 2 +- _byond_controller_8cs.html | 2 +- _byond_controller_8cs_source.html | 2 +- _byond_executable_lock_8cs.html | 2 +- _byond_executable_lock_8cs_source.html | 2 +- _byond_installer_base_8cs.html | 2 +- _byond_installer_base_8cs_source.html | 2 +- _byond_manager_8cs.html | 2 +- _byond_manager_8cs_source.html | 2 +- _byond_rights_8cs.html | 2 +- _byond_rights_8cs_source.html | 2 +- _channel_mapping_8cs.html | 2 +- _channel_mapping_8cs_source.html | 2 +- _channel_representation_8cs.html | 2 +- _channel_representation_8cs_source.html | 2 +- _chat_bot_rights_8cs.html | 2 +- _chat_bot_rights_8cs_source.html | 2 +- _chat_bots_client_8cs.html | 2 +- _chat_bots_client_8cs_source.html | 2 +- _chat_channel_extensions_8cs.html | 2 +- _chat_channel_extensions_8cs_source.html | 2 +- _chat_command_8cs.html | 2 +- _chat_command_8cs_source.html | 2 +- _chat_connection_string_builder_8cs.html | 2 +- ..._connection_string_builder_8cs_source.html | 2 +- _chat_controller_8cs.html | 2 +- _chat_controller_8cs_source.html | 2 +- _chat_manager_8cs.html | 2 +- _chat_manager_8cs_source.html | 2 +- _chat_manager_factory_8cs.html | 2 +- _chat_manager_factory_8cs_source.html | 2 +- _chat_message_8cs.html | 2 +- _chat_message_8cs_source.html | 2 +- _chat_provider_8cs.html | 2 +- _chat_provider_8cs_source.html | 2 +- _chat_tracking_context_8cs.html | 2 +- _chat_tracking_context_8cs_source.html | 2 +- _chat_update_8cs.html | 2 +- _chat_update_8cs_source.html | 2 +- _chat_user_8cs.html | 2 +- _chat_user_8cs_source.html | 2 +- _claims_injector_8cs.html | 2 +- _claims_injector_8cs_source.html | 2 +- _client_exception_8cs.html | 2 +- _client_exception_8cs_source.html | 2 +- _combined_topic_response_8cs.html | 2 +- _combined_topic_response_8cs_source.html | 2 +- _command_factory_8cs.html | 2 +- _command_factory_8cs_source.html | 2 +- ..._2_session_2_reattach_information_8cs.html | 2 +- ...ion_2_reattach_information_8cs_source.html | 2 +- _components_2_watchdog_2_i_watchdog_8cs.html | 2 +- ...ts_2_watchdog_2_i_watchdog_8cs_source.html | 2 +- ...s_2_watchdog_2_i_watchdog_factory_8cs.html | 2 +- ...chdog_2_i_watchdog_factory_8cs_source.html | 2 +- ...nts_2_watchdog_2_watchdog_factory_8cs.html | 2 +- ...atchdog_2_watchdog_factory_8cs_source.html | 4 +- _configuration_8cs.html | 2 +- _configuration_8cs_source.html | 2 +- _configuration_client_8cs.html | 2 +- _configuration_client_8cs_source.html | 2 +- _configuration_controller_8cs.html | 2 +- _configuration_controller_8cs_source.html | 2 +- _configuration_file_8cs.html | 2 +- _configuration_file_8cs_source.html | 2 +- _configuration_rights_8cs.html | 2 +- _configuration_rights_8cs_source.html | 2 +- _configuration_type_8cs.html | 2 +- _configuration_type_8cs_source.html | 2 +- _conflict_exception_8cs.html | 2 +- _conflict_exception_8cs_source.html | 2 +- _console_2_program_8cs.html | 2 +- _console_2_program_8cs_source.html | 2 +- _console_8cs.html | 2 +- _console_8cs_source.html | 2 +- _control_panel_configuration_8cs.html | 2 +- _control_panel_configuration_8cs_source.html | 2 +- _cryptography_suite_8cs.html | 2 +- _cryptography_suite_8cs_source.html | 2 +- _custom_command_8cs.html | 2 +- _custom_command_8cs_source.html | 2 +- _d_m_api_constants_8cs.html | 2 +- _d_m_api_constants_8cs_source.html | 2 +- _d_m_api_parameters_8cs.html | 2 +- _d_m_api_parameters_8cs_source.html | 2 +- _d_m_api_response_8cs.html | 2 +- _d_m_api_response_8cs_source.html | 2 +- _database_collection_8cs.html | 2 +- _database_collection_8cs_source.html | 2 +- _database_configuration_8cs.html | 2 +- _database_configuration_8cs_source.html | 2 +- _database_connection_factory_8cs.html | 2 +- _database_connection_factory_8cs_source.html | 2 +- _database_context_8cs.html | 2 +- _database_context_8cs_source.html | 2 +- _database_context_factory_8cs.html | 2 +- _database_context_factory_8cs_source.html | 2 +- _database_seeder_8cs.html | 2 +- _database_seeder_8cs_source.html | 14 +-- _database_type_8cs.html | 2 +- _database_type_8cs_source.html | 2 +- _date_time_offset_extensions_8cs.html | 2 +- _date_time_offset_extensions_8cs_source.html | 2 +- _default_i_o_manager_8cs.html | 2 +- _default_i_o_manager_8cs_source.html | 2 +- ...n_time_db_context_factory_helpers_8cs.html | 2 +- ...db_context_factory_helpers_8cs_source.html | 2 +- _discord_connection_string_builder_8cs.html | 2 +- ..._connection_string_builder_8cs_source.html | 2 +- _discord_provider_8cs.html | 2 +- _discord_provider_8cs_source.html | 2 +- _dmb_factory_8cs.html | 2 +- _dmb_factory_8cs_source.html | 8 +- _dmb_provider_8cs.html | 2 +- _dmb_provider_8cs_source.html | 2 +- _dream_daemon_8cs.html | 2 +- _dream_daemon_8cs_source.html | 2 +- _dream_daemon_client_8cs.html | 2 +- _dream_daemon_client_8cs_source.html | 2 +- _dream_daemon_controller_8cs.html | 2 +- _dream_daemon_controller_8cs_source.html | 2 +- _dream_daemon_launch_parameters_8cs.html | 2 +- ...m_daemon_launch_parameters_8cs_source.html | 2 +- _dream_daemon_rights_8cs.html | 2 +- _dream_daemon_rights_8cs_source.html | 2 +- _dream_daemon_security_8cs.html | 2 +- _dream_daemon_security_8cs_source.html | 2 +- _dream_maker_client_8cs.html | 2 +- _dream_maker_client_8cs_source.html | 2 +- _dream_maker_controller_8cs.html | 2 +- _dream_maker_controller_8cs_source.html | 2 +- _dream_maker_rights_8cs.html | 2 +- _dream_maker_rights_8cs_source.html | 2 +- _dream_maker_settings_8cs.html | 2 +- _dream_maker_settings_8cs_source.html | 2 +- _entity_id_8cs.html | 2 +- _entity_id_8cs_source.html | 2 +- _error_code_8cs.html | 2 +- _error_code_8cs_source.html | 2 +- _error_code_extensions_8cs.html | 2 +- _error_code_extensions_8cs_source.html | 2 +- _error_message_8cs.html | 2 +- _error_message_8cs_source.html | 2 +- _event_consumer_8cs.html | 2 +- _event_consumer_8cs_source.html | 2 +- _event_notification_8cs.html | 2 +- _event_notification_8cs_source.html | 2 +- _event_script_attribute_8cs.html | 2 +- _event_script_attribute_8cs_source.html | 2 +- _event_type_8cs.html | 2 +- _event_type_8cs_source.html | 2 +- _features_8dox.html | 2 +- _file_logging_configuration_8cs.html | 2 +- _file_logging_configuration_8cs_source.html | 2 +- _general_configuration_8cs.html | 2 +- _general_configuration_8cs_source.html | 2 +- _git_hub_client_factory_8cs.html | 2 +- _git_hub_client_factory_8cs_source.html | 2 +- _global_suppressions_8cs.html | 2 +- _global_suppressions_8cs_source.html | 2 +- _header_types_8cs.html | 2 +- _header_types_8cs_source.html | 2 +- _headers_exception_8cs.html | 2 +- _headers_exception_8cs_source.html | 2 +- _home_controller_8cs.html | 2 +- _home_controller_8cs_source.html | 2 +- _host_builder_extensions_8cs.html | 2 +- _host_builder_extensions_8cs_source.html | 2 +- _http_client_8cs.html | 2 +- _http_client_8cs_source.html | 2 +- _i_administration_client_8cs.html | 2 +- _i_administration_client_8cs_source.html | 2 +- _i_api_client_8cs.html | 2 +- _i_api_client_8cs_source.html | 2 +- _i_api_client_factory_8cs.html | 2 +- _i_api_client_factory_8cs_source.html | 2 +- _i_assembly_information_provider_8cs.html | 2 +- ...embly_information_provider_8cs_source.html | 2 +- _i_async_delayer_8cs.html | 2 +- _i_async_delayer_8cs_source.html | 2 +- _i_authentication_context_8cs.html | 2 +- _i_authentication_context_8cs_source.html | 2 +- _i_authentication_context_factory_8cs.html | 2 +- ...entication_context_factory_8cs_source.html | 2 +- _i_bridge_dispatcher_8cs.html | 2 +- _i_bridge_dispatcher_8cs_source.html | 2 +- _i_bridge_handler_8cs.html | 2 +- _i_bridge_handler_8cs_source.html | 2 +- _i_bridge_registrar_8cs.html | 2 +- _i_bridge_registrar_8cs_source.html | 2 +- _i_bridge_registration_8cs.html | 2 +- _i_bridge_registration_8cs_source.html | 2 +- _i_byond_client_8cs.html | 2 +- _i_byond_client_8cs_source.html | 2 +- _i_byond_executable_lock_8cs.html | 2 +- _i_byond_executable_lock_8cs_source.html | 2 +- _i_byond_installer_8cs.html | 2 +- _i_byond_installer_8cs_source.html | 2 +- _i_byond_manager_8cs.html | 2 +- _i_byond_manager_8cs_source.html | 2 +- _i_channel_sink_8cs.html | 2 +- _i_channel_sink_8cs_source.html | 2 +- _i_chat_bots_client_8cs.html | 2 +- _i_chat_bots_client_8cs_source.html | 2 +- _i_chat_manager_8cs.html | 2 +- _i_chat_manager_8cs_source.html | 2 +- _i_chat_manager_factory_8cs.html | 2 +- _i_chat_manager_factory_8cs_source.html | 2 +- _i_chat_tracking_context_8cs.html | 2 +- _i_chat_tracking_context_8cs_source.html | 2 +- _i_claims_injector_8cs.html | 2 +- _i_claims_injector_8cs_source.html | 2 +- _i_command_8cs.html | 2 +- _i_command_8cs_source.html | 2 +- _i_command_factory_8cs.html | 2 +- _i_command_factory_8cs_source.html | 2 +- _i_compile_job_sink_8cs.html | 2 +- _i_compile_job_sink_8cs_source.html | 2 +- _i_configuration_8cs.html | 2 +- _i_configuration_8cs_source.html | 2 +- _i_configuration_client_8cs.html | 2 +- _i_configuration_client_8cs_source.html | 2 +- _i_console_8cs.html | 2 +- _i_console_8cs_source.html | 2 +- _i_credentials_provider_8cs.html | 2 +- _i_credentials_provider_8cs_source.html | 2 +- _i_cryptography_suite_8cs.html | 2 +- _i_cryptography_suite_8cs_source.html | 2 +- _i_custom_command_handler_8cs.html | 2 +- _i_custom_command_handler_8cs_source.html | 2 +- _i_database_collection_8cs.html | 2 +- _i_database_collection_8cs_source.html | 2 +- _i_database_connection_factory_8cs.html | 2 +- ...atabase_connection_factory_8cs_source.html | 2 +- _i_database_context_8cs.html | 2 +- _i_database_context_8cs_source.html | 2 +- _i_database_context_factory_8cs.html | 2 +- _i_database_context_factory_8cs_source.html | 2 +- _i_database_seeder_8cs.html | 2 +- _i_database_seeder_8cs_source.html | 2 +- _i_dmb_factory_8cs.html | 2 +- _i_dmb_factory_8cs_source.html | 2 +- _i_dmb_provider_8cs.html | 2 +- _i_dmb_provider_8cs_source.html | 2 +- _i_dream_daemon_client_8cs.html | 2 +- _i_dream_daemon_client_8cs_source.html | 2 +- _i_dream_maker_8cs.html | 2 +- _i_dream_maker_8cs_source.html | 2 +- _i_dream_maker_client_8cs.html | 2 +- _i_dream_maker_client_8cs_source.html | 2 +- _i_event_consumer_8cs.html | 2 +- _i_event_consumer_8cs_source.html | 2 +- _i_git_hub_client_factory_8cs.html | 2 +- _i_git_hub_client_factory_8cs_source.html | 2 +- _i_http_client_8cs.html | 2 +- _i_http_client_8cs_source.html | 2 +- _i_i_o_manager_8cs.html | 2 +- _i_i_o_manager_8cs_source.html | 2 +- _i_identity_cache_8cs.html | 2 +- _i_identity_cache_8cs_source.html | 2 +- _i_instance_8cs.html | 2 +- _i_instance_8cs_source.html | 2 +- _i_instance_client_8cs.html | 2 +- _i_instance_client_8cs_source.html | 2 +- _i_instance_factory_8cs.html | 2 +- _i_instance_factory_8cs_source.html | 2 +- _i_instance_manager_8cs.html | 2 +- _i_instance_manager_8cs_source.html | 2 +- _i_instance_manager_client_8cs.html | 2 +- _i_instance_manager_client_8cs_source.html | 2 +- _i_instance_user_client_8cs.html | 2 +- _i_instance_user_client_8cs_source.html | 2 +- _i_job_manager_8cs.html | 2 +- _i_job_manager_8cs_source.html | 2 +- _i_jobs_client_8cs.html | 2 +- _i_jobs_client_8cs_source.html | 2 +- _i_latest_compile_job_provider_8cs.html | 2 +- ...atest_compile_job_provider_8cs_source.html | 2 +- _i_lib_git2_commands_8cs.html | 2 +- _i_lib_git2_commands_8cs_source.html | 2 +- _i_lib_git2_repository_factory_8cs.html | 2 +- ...ib_git2_repository_factory_8cs_source.html | 2 +- _i_network_prompt_reaper_8cs.html | 2 +- _i_network_prompt_reaper_8cs_source.html | 2 +- _i_platform_identifier_8cs.html | 2 +- _i_platform_identifier_8cs_source.html | 2 +- _i_post_setup_services_8cs.html | 2 +- _i_post_setup_services_8cs_source.html | 2 +- _i_post_write_handler_8cs.html | 2 +- _i_post_write_handler_8cs_source.html | 2 +- _i_process_8cs.html | 2 +- _i_process_8cs_source.html | 2 +- _i_process_base_8cs.html | 2 +- _i_process_base_8cs_source.html | 2 +- _i_process_executor_8cs.html | 2 +- _i_process_executor_8cs_source.html | 2 +- _i_process_features_8cs.html | 2 +- _i_process_features_8cs_source.html | 2 +- _i_provider_8cs.html | 2 +- _i_provider_8cs_source.html | 2 +- _i_provider_factory_8cs.html | 2 +- _i_provider_factory_8cs_source.html | 2 +- _i_rename_notifyee_8cs.html | 2 +- _i_rename_notifyee_8cs_source.html | 2 +- _i_repository_8cs.html | 2 +- _i_repository_8cs_source.html | 2 +- _i_repository_client_8cs.html | 2 +- _i_repository_client_8cs_source.html | 2 +- _i_repository_manager_8cs.html | 2 +- _i_repository_manager_8cs_source.html | 2 +- _i_request_logger_8cs.html | 2 +- _i_request_logger_8cs_source.html | 2 +- _i_restart_handler_8cs.html | 2 +- _i_restart_handler_8cs_source.html | 2 +- _i_restart_registration_8cs.html | 2 +- _i_restart_registration_8cs_source.html | 2 +- _i_server_8cs.html | 2 +- _i_server_8cs_source.html | 2 +- _i_server_client_8cs.html | 2 +- _i_server_client_8cs_source.html | 2 +- _i_server_client_factory_8cs.html | 2 +- _i_server_client_factory_8cs_source.html | 2 +- _i_server_control_8cs.html | 2 +- _i_server_control_8cs_source.html | 2 +- _i_server_factory_8cs.html | 2 +- _i_server_factory_8cs_source.html | 2 +- _i_server_port_provider_8cs.html | 2 +- _i_server_port_provider_8cs_source.html | 2 +- _i_session_controller_8cs.html | 2 +- _i_session_controller_8cs_source.html | 2 +- _i_session_controller_factory_8cs.html | 2 +- _i_session_controller_factory_8cs_source.html | 2 +- _i_session_persistor_8cs.html | 2 +- _i_session_persistor_8cs_source.html | 2 +- _i_symlink_factory_8cs.html | 2 +- _i_symlink_factory_8cs_source.html | 2 +- _i_synchronous_i_o_manager_8cs.html | 2 +- _i_synchronous_i_o_manager_8cs_source.html | 2 +- _i_system_identity_8cs.html | 2 +- _i_system_identity_8cs_source.html | 2 +- _i_system_identity_factory_8cs.html | 2 +- _i_system_identity_factory_8cs_source.html | 2 +- _i_token_factory_8cs.html | 2 +- _i_token_factory_8cs_source.html | 2 +- _i_topic_client_factory_8cs.html | 2 +- _i_topic_client_factory_8cs_source.html | 2 +- _i_users_client_8cs.html | 2 +- _i_users_client_8cs_source.html | 2 +- _identity_cache_8cs.html | 2 +- _identity_cache_8cs_source.html | 2 +- _identity_cache_object_8cs.html | 2 +- _identity_cache_object_8cs_source.html | 2 +- _instance_client_8cs.html | 2 +- _instance_client_8cs_source.html | 2 +- _instance_controller_8cs.html | 2 +- _instance_controller_8cs_source.html | 11 ++- _instance_factory_8cs.html | 2 +- _instance_factory_8cs_source.html | 2 +- _instance_manager_8cs.html | 2 +- _instance_manager_8cs_source.html | 14 +-- _instance_manager_client_8cs.html | 2 +- _instance_manager_client_8cs_source.html | 2 +- _instance_manager_rights_8cs.html | 2 +- _instance_manager_rights_8cs_source.html | 2 +- _instance_user_client_8cs.html | 2 +- _instance_user_client_8cs_source.html | 2 +- _instance_user_controller_8cs.html | 2 +- _instance_user_controller_8cs_source.html | 2 +- _instance_user_rights_8cs.html | 2 +- _instance_user_rights_8cs_source.html | 2 +- _insufficient_permissions_exception_8cs.html | 2 +- ...ient_permissions_exception_8cs_source.html | 2 +- _internal_2_server_information_8cs.html | 2 +- ...ernal_2_server_information_8cs_source.html | 2 +- _irc_connection_string_builder_8cs.html | 2 +- ..._connection_string_builder_8cs_source.html | 2 +- _irc_password_type_8cs.html | 2 +- _irc_password_type_8cs_source.html | 2 +- _irc_provider_8cs.html | 2 +- _irc_provider_8cs_source.html | 2 +- _job_controller_8cs.html | 2 +- _job_controller_8cs_source.html | 2 +- _job_exception_8cs.html | 2 +- _job_exception_8cs_source.html | 2 +- _job_handler_8cs.html | 2 +- _job_handler_8cs_source.html | 2 +- _job_manager_8cs.html | 2 +- _job_manager_8cs_source.html | 2 +- _jobs_client_8cs.html | 2 +- _jobs_client_8cs_source.html | 2 +- _kek_command_8cs.html | 2 +- _kek_command_8cs_source.html | 2 +- _launch_result_8cs.html | 2 +- _launch_result_8cs_source.html | 2 +- _lib_git2_commands_8cs.html | 2 +- _lib_git2_commands_8cs_source.html | 2 +- _lib_git2_repository_factory_8cs.html | 2 +- _lib_git2_repository_factory_8cs_source.html | 2 +- _limits_8cs.html | 2 +- _limits_8cs_source.html | 2 +- _log_file_8cs.html | 2 +- _log_file_8cs_source.html | 2 +- _message_8cs.html | 2 +- _message_8cs_source.html | 2 +- _method_not_supported_exception_8cs.html | 2 +- ...od_not_supported_exception_8cs_source.html | 2 +- _models_2_reattach_information_8cs.html | 2 +- ...els_2_reattach_information_8cs_source.html | 2 +- _monitor_action_8cs.html | 2 +- _monitor_action_8cs_source.html | 2 +- _monitor_activation_reason_8cs.html | 2 +- _monitor_activation_reason_8cs_source.html | 2 +- _my_sql_database_context_8cs.html | 2 +- _my_sql_database_context_8cs_source.html | 2 +- ...l_database_context_model_snapshot_8cs.html | 2 +- ...ase_context_model_snapshot_8cs_source.html | 2 +- ...ql_design_time_db_context_factory_8cs.html | 2 +- ...gn_time_db_context_factory_8cs_source.html | 2 +- _native_methods_8cs.html | 2 +- _native_methods_8cs_source.html | 2 +- _open_api_enum_var_names_extension_8cs.html | 2 +- ...i_enum_var_names_extension_8cs_source.html | 2 +- _platform_identifier_8cs.html | 2 +- _platform_identifier_8cs_source.html | 2 +- _posix_byond_installer_8cs.html | 2 +- _posix_byond_installer_8cs_source.html | 2 +- _posix_network_prompt_reaper_8cs.html | 2 +- _posix_network_prompt_reaper_8cs_source.html | 2 +- _posix_post_write_handler_8cs.html | 2 +- _posix_post_write_handler_8cs_source.html | 2 +- _posix_process_features_8cs.html | 2 +- _posix_process_features_8cs_source.html | 2 +- _posix_symlink_factory_8cs.html | 2 +- _posix_symlink_factory_8cs_source.html | 2 +- _posix_system_identity_8cs.html | 2 +- _posix_system_identity_8cs_source.html | 2 +- _posix_system_identity_factory_8cs.html | 2 +- ...ix_system_identity_factory_8cs_source.html | 2 +- _posix_watchdog_8cs.html | 2 +- _posix_watchdog_8cs_source.html | 2 +- _posix_watchdog_factory_8cs.html | 2 +- _posix_watchdog_factory_8cs_source.html | 9 +- _post_setup_services_8cs.html | 2 +- _post_setup_services_8cs_source.html | 2 +- _postgres_sql_database_context_8cs.html | 2 +- ...tgres_sql_database_context_8cs_source.html | 2 +- ...l_database_context_model_snapshot_8cs.html | 2 +- ...ase_context_model_snapshot_8cs_source.html | 2 +- ...ql_design_time_db_context_factory_8cs.html | 2 +- ...gn_time_db_context_factory_8cs_source.html | 2 +- _process_8cs.html | 2 +- _process_8cs_source.html | 2 +- _process_executor_8cs.html | 2 +- _process_executor_8cs_source.html | 2 +- _program_8cs.html | 2 +- _program_8cs_source.html | 2 +- _program_shutdown_token_source_8cs.html | 2 +- ...gram_shutdown_token_source_8cs_source.html | 2 +- _provider_8cs.html | 2 +- _provider_8cs_source.html | 2 +- _provider_factory_8cs.html | 2 +- _provider_factory_8cs_source.html | 2 +- _pull_requests_command_8cs.html | 2 +- _pull_requests_command_8cs_source.html | 2 +- _r_e_a_d_m_e_8md.html | 2 +- _r_e_a_d_m_e_8md_source.html | 2 +- _rate_limit_exception_8cs.html | 2 +- _rate_limit_exception_8cs_source.html | 2 +- _raw_data_8cs.html | 2 +- _raw_data_8cs_source.html | 2 +- _reattach_information_base_8cs.html | 2 +- _reattach_information_base_8cs_source.html | 2 +- _reboot_state_8cs.html | 2 +- _reboot_state_8cs_source.html | 2 +- _repository_client_8cs.html | 2 +- _repository_client_8cs_source.html | 2 +- _repository_controller_8cs.html | 2 +- _repository_controller_8cs_source.html | 2 +- _repository_manager_8cs.html | 2 +- _repository_manager_8cs_source.html | 2 +- _repository_rights_8cs.html | 2 +- _repository_rights_8cs_source.html | 2 +- _request_timeout_exception_8cs.html | 2 +- _request_timeout_exception_8cs_source.html | 2 +- _resolving_i_o_manager_8cs.html | 2 +- _resolving_i_o_manager_8cs_source.html | 2 +- _restart_registration_8cs.html | 2 +- _restart_registration_8cs_source.html | 2 +- _rev_info_test_merge_8cs.html | 2 +- _rev_info_test_merge_8cs_source.html | 2 +- _revision_command_8cs.html | 2 +- _revision_command_8cs_source.html | 2 +- _rights_helper_8cs.html | 2 +- _rights_helper_8cs_source.html | 2 +- _rights_type_8cs.html | 2 +- _rights_type_8cs_source.html | 2 +- _routes_8cs.html | 2 +- _routes_8cs_source.html | 2 +- _runtime_information_8cs.html | 2 +- _runtime_information_8cs_source.html | 2 +- _semaphore_slim_context_8cs.html | 2 +- _semaphore_slim_context_8cs_source.html | 2 +- _server_8cs.html | 2 +- _server_8cs_source.html | 4 +- _server_client_8cs.html | 2 +- _server_client_8cs_source.html | 2 +- _server_client_factory_8cs.html | 2 +- _server_client_factory_8cs_source.html | 2 +- _server_error_exception_8cs.html | 2 +- _server_error_exception_8cs_source.html | 2 +- _server_factory_8cs.html | 2 +- _server_factory_8cs_source.html | 2 +- _server_information_8cs.html | 2 +- _server_information_8cs_source.html | 2 +- _server_port_proivder_8cs.html | 2 +- _server_port_proivder_8cs_source.html | 2 +- _server_service_8cs.html | 2 +- _server_service_8cs_source.html | 2 +- _server_side_modifications_8cs.html | 2 +- _server_side_modifications_8cs_source.html | 2 +- _service_2_program_8cs.html | 2 +- _service_2_program_8cs_source.html | 2 +- _service_collection_extensions_8cs.html | 2 +- ...vice_collection_extensions_8cs_source.html | 2 +- _service_unavailable_exception_8cs.html | 2 +- ...vice_unavailable_exception_8cs_source.html | 2 +- _session_controller_8cs.html | 2 +- _session_controller_8cs_source.html | 2 +- _session_controller_factory_8cs.html | 2 +- _session_controller_factory_8cs_source.html | 2 +- _session_persistor_8cs.html | 2 +- _session_persistor_8cs_source.html | 4 +- _setup_application_8cs.html | 2 +- _setup_application_8cs_source.html | 2 +- _setup_wizard_8cs.html | 2 +- _setup_wizard_8cs_source.html | 2 +- _setup_wizard_mode_8cs.html | 2 +- _setup_wizard_mode_8cs_source.html | 2 +- _sql_server_database_context_8cs.html | 2 +- _sql_server_database_context_8cs_source.html | 2 +- ...r_database_context_model_snapshot_8cs.html | 2 +- ...ase_context_model_snapshot_8cs_source.html | 2 +- ...er_design_time_db_context_factory_8cs.html | 2 +- ...gn_time_db_context_factory_8cs_source.html | 2 +- _sqlite_database_context_8cs.html | 2 +- _sqlite_database_context_8cs_source.html | 2 +- ...e_database_context_model_snapshot_8cs.html | 2 +- ...ase_context_model_snapshot_8cs_source.html | 2 +- ...te_design_time_db_context_factory_8cs.html | 2 +- ...gn_time_db_context_factory_8cs_source.html | 2 +- _swagger_configuration_8cs.html | 2 +- _swagger_configuration_8cs_source.html | 2 +- _swappable_dmb_provider_8cs.html | 2 +- _swappable_dmb_provider_8cs_source.html | 2 +- _synchronous_i_o_manager_8cs.html | 2 +- _synchronous_i_o_manager_8cs_source.html | 2 +- _task_extensions_8cs.html | 2 +- _task_extensions_8cs_source.html | 2 +- _temporary_dmb_provider_8cs.html | 2 +- _temporary_dmb_provider_8cs_source.html | 2 +- _test_merge_base_8cs.html | 2 +- _test_merge_base_8cs_source.html | 2 +- _test_merge_information_8cs.html | 2 +- _test_merge_information_8cs_source.html | 2 +- _test_merge_parameters_8cs.html | 2 +- _test_merge_parameters_8cs_source.html | 2 +- _tgs_authorize_attribute_8cs.html | 2 +- _tgs_authorize_attribute_8cs_source.html | 2 +- ..._server_8_api_2_models_2_chat_bot_8cs.html | 2 +- ..._8_api_2_models_2_chat_bot_8cs_source.html | 2 +- ...ver_8_api_2_models_2_chat_channel_8cs.html | 2 +- ...pi_2_models_2_chat_channel_8cs_source.html | 2 +- ...rver_8_api_2_models_2_compile_job_8cs.html | 2 +- ...api_2_models_2_compile_job_8cs_source.html | 2 +- ...rver_8_api_2_models_2_dream_maker_8cs.html | 2 +- ...api_2_models_2_dream_maker_8cs_source.html | 2 +- ..._server_8_api_2_models_2_instance_8cs.html | 2 +- ..._8_api_2_models_2_instance_8cs_source.html | 2 +- ...er_8_api_2_models_2_instance_user_8cs.html | 2 +- ...i_2_models_2_instance_user_8cs_source.html | 2 +- ...pi_2_models_2_internal_2_chat_bot_8cs.html | 2 +- ...dels_2_internal_2_chat_bot_8cs_source.html | 2 +- ...2_models_2_internal_2_compile_job_8cs.html | 2 +- ...s_2_internal_2_compile_job_8cs_source.html | 2 +- ..._internal_2_dream_daemon_settings_8cs.html | 2 +- ...al_2_dream_daemon_settings_8cs_source.html | 2 +- ...r_8_api_2_models_2_internal_2_job_8cs.html | 2 +- ..._2_models_2_internal_2_job_8cs_source.html | 2 +- ..._2_internal_2_repository_settings_8cs.html | 2 +- ...rnal_2_repository_settings_8cs_source.html | 2 +- ...2_internal_2_revision_information_8cs.html | 2 +- ...nal_2_revision_information_8cs_source.html | 2 +- ..._2_models_2_internal_2_test_merge_8cs.html | 2 +- ...ls_2_internal_2_test_merge_8cs_source.html | 2 +- ..._8_api_2_models_2_internal_2_user_8cs.html | 2 +- ...2_models_2_internal_2_user_8cs_source.html | 2 +- ...ion_8_server_8_api_2_models_2_job_8cs.html | 2 +- ...erver_8_api_2_models_2_job_8cs_source.html | 2 +- ...erver_8_api_2_models_2_repository_8cs.html | 2 +- ..._api_2_models_2_repository_8cs_source.html | 2 +- ...i_2_models_2_revision_information_8cs.html | 2 +- ...els_2_revision_information_8cs_source.html | 2 +- ...erver_8_api_2_models_2_test_merge_8cs.html | 2 +- ..._api_2_models_2_test_merge_8cs_source.html | 2 +- ...on_8_server_8_api_2_models_2_user_8cs.html | 2 +- ...rver_8_api_2_models_2_user_8cs_source.html | 2 +- ...8_server_8_client_2_assembly_info_8cs.html | 2 +- ...r_8_client_2_assembly_info_8cs_source.html | 2 +- ...onents_2_deployment_2_dream_maker_8cs.html | 2 +- ...2_deployment_2_dream_maker_8cs_source.html | 2 +- ...er_8_host_2_components_2_instance_8cs.html | 2 +- ...st_2_components_2_instance_8cs_source.html | 2 +- ...ponents_2_repository_2_repository_8cs.html | 2 +- ..._2_repository_2_repository_8cs_source.html | 2 +- ...server_8_host_2_models_2_chat_bot_8cs.html | 2 +- ...8_host_2_models_2_chat_bot_8cs_source.html | 2 +- ...er_8_host_2_models_2_chat_channel_8cs.html | 2 +- ...st_2_models_2_chat_channel_8cs_source.html | 2 +- ...ver_8_host_2_models_2_compile_job_8cs.html | 2 +- ...ost_2_models_2_compile_job_8cs_source.html | 2 +- ..._2_models_2_dream_daemon_settings_8cs.html | 2 +- ...ls_2_dream_daemon_settings_8cs_source.html | 2 +- ...server_8_host_2_models_2_instance_8cs.html | 2 +- ...8_host_2_models_2_instance_8cs_source.html | 2 +- ...r_8_host_2_models_2_instance_user_8cs.html | 2 +- ...t_2_models_2_instance_user_8cs_source.html | 2 +- ...on_8_server_8_host_2_models_2_job_8cs.html | 2 +- ...rver_8_host_2_models_2_job_8cs_source.html | 2 +- ...st_2_models_2_repository_settings_8cs.html | 2 +- ...dels_2_repository_settings_8cs_source.html | 2 +- ...t_2_models_2_revision_information_8cs.html | 2 +- ...els_2_revision_information_8cs_source.html | 2 +- ...rver_8_host_2_models_2_test_merge_8cs.html | 2 +- ...host_2_models_2_test_merge_8cs_source.html | 2 +- ...n_8_server_8_host_2_models_2_user_8cs.html | 2 +- ...ver_8_host_2_models_2_user_8cs_source.html | 2 +- ...host_2_properties_2_assembly_info_8cs.html | 2 +- ...properties_2_assembly_info_8cs_source.html | 2 +- ..._8_host_8_console_2_assembly_info_8cs.html | 2 +- ..._8_console_2_assembly_info_8cs_source.html | 2 +- ...vice_2_properties_2_assembly_info_8cs.html | 2 +- ...properties_2_assembly_info_8cs_source.html | 2 +- ...8_host_8_watchdog_2_assembly_info_8cs.html | 2 +- ...8_watchdog_2_assembly_info_8cs_source.html | 2 +- _token_8cs.html | 2 +- _token_8cs_source.html | 2 +- _token_factory_8cs.html | 2 +- _token_factory_8cs_source.html | 2 +- _topic_client_factory_8cs.html | 2 +- _topic_client_factory_8cs_source.html | 2 +- _topic_command_type_8cs.html | 2 +- _topic_command_type_8cs_source.html | 2 +- _topic_parameters_8cs.html | 2 +- _topic_parameters_8cs_source.html | 2 +- _topic_response_8cs.html | 2 +- _topic_response_8cs_source.html | 2 +- _unauthorized_exception_8cs.html | 2 +- _unauthorized_exception_8cs_source.html | 2 +- _unrecognized_response_exception_8cs.html | 2 +- ...ognized_response_exception_8cs_source.html | 2 +- _updates_configuration_8cs.html | 2 +- _updates_configuration_8cs_source.html | 2 +- _user_controller_8cs.html | 2 +- _user_controller_8cs_source.html | 2 +- _user_update_8cs.html | 2 +- _user_update_8cs_source.html | 2 +- _users_client_8cs.html | 2 +- _users_client_8cs_source.html | 2 +- _version_command_8cs.html | 2 +- _version_command_8cs_source.html | 2 +- _version_converter_8cs.html | 2 +- _version_converter_8cs_source.html | 2 +- _version_extensions_8cs.html | 2 +- _version_extensions_8cs_source.html | 2 +- _version_mismatch_exception_8cs.html | 2 +- _version_mismatch_exception_8cs_source.html | 2 +- _watchdog_2_i_watchdog_8cs.html | 2 +- _watchdog_2_i_watchdog_8cs_source.html | 2 +- _watchdog_2_i_watchdog_factory_8cs.html | 2 +- ...chdog_2_i_watchdog_factory_8cs_source.html | 2 +- _watchdog_2_watchdog_factory_8cs.html | 2 +- _watchdog_2_watchdog_factory_8cs_source.html | 2 +- _watchdog_8cs.html | 2 +- _watchdog_8cs_source.html | 2 +- _watchdog_base_8cs.html | 2 +- _watchdog_base_8cs_source.html | 2 +- _watchdog_status_8cs.html | 2 +- _watchdog_status_8cs_source.html | 2 +- _web_host_builder_extensions_8cs.html | 2 +- _web_host_builder_extensions_8cs_source.html | 2 +- _windows_byond_installer_8cs.html | 2 +- _windows_byond_installer_8cs_source.html | 2 +- _windows_network_prompt_reaper_8cs.html | 2 +- ...dows_network_prompt_reaper_8cs_source.html | 2 +- _windows_post_write_handler_8cs.html | 2 +- _windows_post_write_handler_8cs_source.html | 2 +- _windows_process_features_8cs.html | 2 +- _windows_process_features_8cs_source.html | 2 +- _windows_symlink_factory_8cs.html | 2 +- _windows_symlink_factory_8cs_source.html | 2 +- _windows_system_identity_8cs.html | 2 +- _windows_system_identity_8cs_source.html | 2 +- _windows_system_identity_factory_8cs.html | 2 +- ...ws_system_identity_factory_8cs_source.html | 2 +- _windows_watchdog_8cs.html | 2 +- _windows_watchdog_8cs_source.html | 2 +- _windows_watchdog_factory_8cs.html | 2 +- _windows_watchdog_factory_8cs_source.html | 4 +- annotated.html | 2 +- api.html | 2 +- architecture.html | 2 +- class_attribute.html | 2 +- class_authorize_attribute.html | 2 +- class_controller.html | 2 +- class_db_context.html | 2 +- class_i_async_enumerable.html | 2 +- class_i_design_time_db_context_factory.html | 2 +- class_i_disposable.html | 2 +- class_i_document_filter.html | 2 +- class_i_hosted_service.html | 2 +- class_i_open_api_extension.html | 2 +- class_i_operation_filter.html | 2 +- class_i_queryable.html | 2 +- class_i_schema_filter.html | 2 +- class_json_converter.html | 2 +- class_migration.html | 2 +- class_model_snapshot.html | 2 +- class_service_base.html | 2 +- ...erver_1_1_api_1_1_api_headers-members.html | 2 +- ...on_1_1_server_1_1_api_1_1_api_headers.html | 2 +- ...1_1_api_1_1_headers_exception-members.html | 2 +- ..._server_1_1_api_1_1_headers_exception.html | 2 +- ...1_1_models_1_1_administration-members.html | 2 +- ...1_1_api_1_1_models_1_1_administration.html | 2 +- ..._1_1_api_1_1_models_1_1_byond-members.html | 2 +- ...1_server_1_1_api_1_1_models_1_1_byond.html | 2 +- ...1_api_1_1_models_1_1_chat_bot-members.html | 2 +- ...erver_1_1_api_1_1_models_1_1_chat_bot.html | 2 +- ...i_1_1_models_1_1_chat_channel-members.html | 2 +- ...r_1_1_api_1_1_models_1_1_chat_channel.html | 2 +- ...pi_1_1_models_1_1_compile_job-members.html | 2 +- ...er_1_1_api_1_1_models_1_1_compile_job.html | 2 +- ...models_1_1_configuration_file-members.html | 2 +- ...api_1_1_models_1_1_configuration_file.html | 2 +- ...ord_connection_string_builder-members.html | 2 +- ...1_1_discord_connection_string_builder.html | 2 +- ...i_1_1_models_1_1_dream_daemon-members.html | 2 +- ...r_1_1_api_1_1_models_1_1_dream_daemon.html | 2 +- ...pi_1_1_models_1_1_dream_maker-members.html | 2 +- ...er_1_1_api_1_1_models_1_1_dream_maker.html | 2 +- ..._api_1_1_models_1_1_entity_id-members.html | 2 +- ...rver_1_1_api_1_1_models_1_1_entity_id.html | 2 +- ...els_1_1_error_code_extensions-members.html | 2 +- ..._1_1_models_1_1_error_code_extensions.html | 2 +- ..._1_1_models_1_1_error_message-members.html | 2 +- ..._1_1_api_1_1_models_1_1_error_message.html | 2 +- ...1_api_1_1_models_1_1_instance-members.html | 2 +- ...erver_1_1_api_1_1_models_1_1_instance.html | 2 +- ..._1_1_models_1_1_instance_user-members.html | 2 +- ..._1_1_api_1_1_models_1_1_instance_user.html | 2 +- ...els_1_1_internal_1_1_chat_bot-members.html | 2 +- ..._1_1_models_1_1_internal_1_1_chat_bot.html | 2 +- ...hat_connection_string_builder-members.html | 2 +- ...al_1_1_chat_connection_string_builder.html | 2 +- ..._1_1_internal_1_1_compile_job-members.html | 2 +- ...1_models_1_1_internal_1_1_compile_job.html | 2 +- ...ream_daemon_launch_parameters-members.html | 2 +- ...al_1_1_dream_daemon_launch_parameters.html | 4 +- ...nal_1_1_dream_daemon_settings-members.html | 2 +- ..._1_internal_1_1_dream_daemon_settings.html | 4 +- ...1_models_1_1_internal_1_1_job-members.html | 2 +- ...1_api_1_1_models_1_1_internal_1_1_job.html | 2 +- ...els_1_1_internal_1_1_raw_data-members.html | 2 +- ..._1_1_models_1_1_internal_1_1_raw_data.html | 2 +- ...ernal_1_1_repository_settings-members.html | 2 +- ..._1_1_internal_1_1_repository_settings.html | 2 +- ...rnal_1_1_revision_information-members.html | 2 +- ...1_1_internal_1_1_revision_information.html | 2 +- ...ternal_1_1_server_information-members.html | 2 +- ...s_1_1_internal_1_1_server_information.html | 2 +- ...s_1_1_internal_1_1_test_merge-members.html | 2 +- ..._1_models_1_1_internal_1_1_test_merge.html | 2 +- ..._internal_1_1_test_merge_base-members.html | 2 +- ...dels_1_1_internal_1_1_test_merge_base.html | 2 +- ..._models_1_1_internal_1_1_user-members.html | 2 +- ..._api_1_1_models_1_1_internal_1_1_user.html | 6 +- ...irc_connection_string_builder-members.html | 2 +- ...els_1_1_irc_connection_string_builder.html | 2 +- ...er_1_1_api_1_1_models_1_1_job-members.html | 2 +- ...1_1_server_1_1_api_1_1_models_1_1_job.html | 2 +- ...1_1_api_1_1_models_1_1_limits-members.html | 2 +- ..._server_1_1_api_1_1_models_1_1_limits.html | 2 +- ...1_api_1_1_models_1_1_log_file-members.html | 2 +- ...erver_1_1_api_1_1_models_1_1_log_file.html | 2 +- ...api_1_1_models_1_1_repository-members.html | 2 +- ...ver_1_1_api_1_1_models_1_1_repository.html | 2 +- ...dels_1_1_revision_information-members.html | 2 +- ...i_1_1_models_1_1_revision_information.html | 2 +- ...models_1_1_server_information-members.html | 2 +- ...api_1_1_models_1_1_server_information.html | 2 +- ...api_1_1_models_1_1_test_merge-members.html | 2 +- ...ver_1_1_api_1_1_models_1_1_test_merge.html | 2 +- ...els_1_1_test_merge_parameters-members.html | 2 +- ..._1_1_models_1_1_test_merge_parameters.html | 2 +- ..._1_1_api_1_1_models_1_1_token-members.html | 2 +- ...1_server_1_1_api_1_1_models_1_1_token.html | 2 +- ...r_1_1_api_1_1_models_1_1_user-members.html | 2 +- ..._1_server_1_1_api_1_1_models_1_1_user.html | 2 +- ...pi_1_1_models_1_1_user_update-members.html | 2 +- ...er_1_1_api_1_1_models_1_1_user_update.html | 2 +- ..._1_1_rights_1_1_rights_helper-members.html | 2 +- ..._1_1_api_1_1_rights_1_1_rights_helper.html | 2 +- ...1_1_server_1_1_api_1_1_routes-members.html | 2 +- ...station_1_1_server_1_1_api_1_1_routes.html | 2 +- ..._1_api_1_1_version_extensions-members.html | 2 +- ...server_1_1_api_1_1_version_extensions.html | 2 +- ...ent_1_1_administration_client-members.html | 2 +- ..._1_1_client_1_1_administration_client.html | 2 +- ...ver_1_1_client_1_1_api_client-members.html | 2 +- ..._1_1_server_1_1_client_1_1_api_client.html | 2 +- ...client_1_1_api_client_factory-members.html | 2 +- ...ver_1_1_client_1_1_api_client_factory.html | 2 +- ...nt_1_1_api_conflict_exception-members.html | 2 +- ...1_1_client_1_1_api_conflict_exception.html | 2 +- ..._1_1_client_1_1_api_exception-members.html | 2 +- ...1_server_1_1_client_1_1_api_exception.html | 2 +- ...1_client_1_1_client_exception-members.html | 2 +- ...erver_1_1_client_1_1_client_exception.html | 2 +- ...1_components_1_1_byond_client-members.html | 2 +- ...lient_1_1_components_1_1_byond_client.html | 2 +- ...mponents_1_1_chat_bots_client-members.html | 2 +- ...t_1_1_components_1_1_chat_bots_client.html | 2 +- ...ents_1_1_configuration_client-members.html | 2 +- ...1_components_1_1_configuration_client.html | 2 +- ...nents_1_1_dream_daemon_client-members.html | 2 +- ..._1_components_1_1_dream_daemon_client.html | 2 +- ...onents_1_1_dream_maker_client-members.html | 2 +- ...1_1_components_1_1_dream_maker_client.html | 2 +- ...omponents_1_1_instance_client-members.html | 2 +- ...nt_1_1_components_1_1_instance_client.html | 2 +- ...ents_1_1_instance_user_client-members.html | 2 +- ...1_components_1_1_instance_user_client.html | 2 +- ..._1_components_1_1_jobs_client-members.html | 2 +- ...client_1_1_components_1_1_jobs_client.html | 2 +- ...ponents_1_1_repository_client-members.html | 2 +- ..._1_1_components_1_1_repository_client.html | 2 +- ...client_1_1_conflict_exception-members.html | 2 +- ...ver_1_1_client_1_1_conflict_exception.html | 2 +- ...er_1_1_client_1_1_http_client-members.html | 2 +- ...1_1_server_1_1_client_1_1_http_client.html | 2 +- ...t_1_1_instance_manager_client-members.html | 2 +- ..._1_client_1_1_instance_manager_client.html | 2 +- ...ficient_permissions_exception-members.html | 2 +- ..._1_insufficient_permissions_exception.html | 2 +- ...ethod_not_supported_exception-members.html | 2 +- ...nt_1_1_method_not_supported_exception.html | 2 +- ...ient_1_1_rate_limit_exception-members.html | 2 +- ...r_1_1_client_1_1_rate_limit_exception.html | 2 +- ...1_1_request_timeout_exception-members.html | 2 +- ..._client_1_1_request_timeout_exception.html | 2 +- ..._1_1_client_1_1_server_client-members.html | 2 +- ...1_server_1_1_client_1_1_server_client.html | 2 +- ...ent_1_1_server_client_factory-members.html | 2 +- ..._1_1_client_1_1_server_client_factory.html | 2 +- ...nt_1_1_server_error_exception-members.html | 2 +- ...1_1_client_1_1_server_error_exception.html | 2 +- ...service_unavailable_exception-members.html | 2 +- ...ent_1_1_service_unavailable_exception.html | 2 +- ...nt_1_1_unauthorized_exception-members.html | 2 +- ...1_1_client_1_1_unauthorized_exception.html | 2 +- ...recognized_response_exception-members.html | 2 +- ...t_1_1_unrecognized_response_exception.html | 2 +- ...r_1_1_client_1_1_users_client-members.html | 2 +- ..._1_server_1_1_client_1_1_users_client.html | 2 +- ..._1_version_mismatch_exception-members.html | 2 +- ...client_1_1_version_mismatch_exception.html | 2 +- ...ond_1_1_byond_executable_lock-members.html | 2 +- ...s_1_1_byond_1_1_byond_executable_lock.html | 2 +- ...yond_1_1_byond_installer_base-members.html | 2 +- ...ts_1_1_byond_1_1_byond_installer_base.html | 2 +- ...s_1_1_byond_1_1_byond_manager-members.html | 2 +- ...omponents_1_1_byond_1_1_byond_manager.html | 2 +- ...ond_1_1_posix_byond_installer-members.html | 2 +- ...s_1_1_byond_1_1_posix_byond_installer.html | 2 +- ...d_1_1_windows_byond_installer-members.html | 2 +- ...1_1_byond_1_1_windows_byond_installer.html | 2 +- ..._1_1_chat_1_1_channel_mapping-members.html | 2 +- ...mponents_1_1_chat_1_1_channel_mapping.html | 2 +- ...at_1_1_channel_representation-members.html | 2 +- ...s_1_1_chat_1_1_channel_representation.html | 2 +- ...nts_1_1_chat_1_1_chat_manager-members.html | 2 +- ..._components_1_1_chat_1_1_chat_manager.html | 2 +- ...chat_1_1_chat_manager_factory-members.html | 2 +- ...nts_1_1_chat_1_1_chat_manager_factory.html | 2 +- ...hat_1_1_chat_tracking_context-members.html | 2 +- ...ts_1_1_chat_1_1_chat_tracking_context.html | 2 +- ...onents_1_1_chat_1_1_chat_user-members.html | 2 +- ...1_1_components_1_1_chat_1_1_chat_user.html | 2 +- ..._1_commands_1_1_byond_command-members.html | 2 +- ...1_chat_1_1_commands_1_1_byond_command.html | 2 +- ..._commands_1_1_command_factory-members.html | 2 +- ...chat_1_1_commands_1_1_command_factory.html | 2 +- ...1_commands_1_1_custom_command-members.html | 2 +- ..._chat_1_1_commands_1_1_custom_command.html | 2 +- ..._1_1_commands_1_1_kek_command-members.html | 2 +- ...1_1_chat_1_1_commands_1_1_kek_command.html | 2 +- ...nds_1_1_pull_requests_command-members.html | 2 +- ..._1_commands_1_1_pull_requests_command.html | 2 +- ...commands_1_1_revision_command-members.html | 2 +- ...hat_1_1_commands_1_1_revision_command.html | 2 +- ..._commands_1_1_version_command-members.html | 2 +- ...chat_1_1_commands_1_1_version_command.html | 2 +- ...roviders_1_1_discord_provider-members.html | 2 +- ...at_1_1_providers_1_1_discord_provider.html | 2 +- ..._1_providers_1_1_irc_provider-members.html | 2 +- ...1_chat_1_1_providers_1_1_irc_provider.html | 2 +- ...hat_1_1_providers_1_1_message-members.html | 2 +- ...ts_1_1_chat_1_1_providers_1_1_message.html | 2 +- ...at_1_1_providers_1_1_provider-members.html | 2 +- ...s_1_1_chat_1_1_providers_1_1_provider.html | 2 +- ...roviders_1_1_provider_factory-members.html | 2 +- ...at_1_1_providers_1_1_provider_factory.html | 2 +- ..._1_deployment_1_1_dmb_factory-members.html | 2 +- ...onents_1_1_deployment_1_1_dmb_factory.html | 12 +-- ...1_deployment_1_1_dmb_provider-members.html | 2 +- ...nents_1_1_deployment_1_1_dmb_provider.html | 2 +- ..._1_deployment_1_1_dream_maker-members.html | 2 +- ...onents_1_1_deployment_1_1_dream_maker.html | 2 +- ...nt_1_1_swappable_dmb_provider-members.html | 2 +- ...deployment_1_1_swappable_dmb_provider.html | 4 +- ...nt_1_1_temporary_dmb_provider-members.html | 2 +- ...deployment_1_1_temporary_dmb_provider.html | 2 +- ...1_1_events_1_1_event_consumer-members.html | 2 +- ...ponents_1_1_events_1_1_event_consumer.html | 2 +- ...ts_1_1_event_script_attribute-members.html | 2 +- ...1_1_events_1_1_event_script_attribute.html | 2 +- ...t_1_1_components_1_1_instance-members.html | 2 +- ..._1_1_host_1_1_components_1_1_instance.html | 2 +- ...mponents_1_1_instance_factory-members.html | 2 +- ...t_1_1_components_1_1_instance_factory.html | 2 +- ...mponents_1_1_instance_manager-members.html | 2 +- ...t_1_1_components_1_1_instance_manager.html | 24 ++--- ..._bridge_1_1_bridge_parameters-members.html | 2 +- ...erop_1_1_bridge_1_1_bridge_parameters.html | 2 +- ...ridge_1_1_bridge_registration-members.html | 2 +- ...op_1_1_bridge_1_1_bridge_registration.html | 2 +- ..._1_bridge_1_1_bridge_response-members.html | 2 +- ...nterop_1_1_bridge_1_1_bridge_response.html | 2 +- ...ridge_1_1_runtime_information-members.html | 2 +- ...op_1_1_bridge_1_1_runtime_information.html | 2 +- ...ge_1_1_test_merge_information-members.html | 2 +- ...1_1_bridge_1_1_test_merge_information.html | 2 +- ..._1_1_interop_1_1_chat_message-members.html | 2 +- ...mponents_1_1_interop_1_1_chat_message.html | 2 +- ...s_1_1_interop_1_1_chat_update-members.html | 2 +- ...omponents_1_1_interop_1_1_chat_update.html | 2 +- ...converters_1_1_bool_converter-members.html | 2 +- ...rop_1_1_converters_1_1_bool_converter.html | 2 +- ...verters_1_1_version_converter-members.html | 2 +- ..._1_1_converters_1_1_version_converter.html | 2 +- ...interop_1_1_d_m_api_constants-members.html | 2 +- ...nts_1_1_interop_1_1_d_m_api_constants.html | 2 +- ...nterop_1_1_d_m_api_parameters-members.html | 2 +- ...ts_1_1_interop_1_1_d_m_api_parameters.html | 4 +- ..._interop_1_1_d_m_api_response-members.html | 2 +- ...ents_1_1_interop_1_1_d_m_api_response.html | 2 +- ...op_1_1_topic_1_1_chat_command-members.html | 2 +- ..._1_interop_1_1_topic_1_1_chat_command.html | 2 +- ..._topic_1_1_event_notification-members.html | 2 +- ...erop_1_1_topic_1_1_event_notification.html | 2 +- ..._1_topic_1_1_topic_parameters-members.html | 2 +- ...nterop_1_1_topic_1_1_topic_parameters.html | 2 +- ..._1_1_topic_1_1_topic_response-members.html | 2 +- ..._interop_1_1_topic_1_1_topic_response.html | 2 +- ...ository_1_1_lib_git2_commands-members.html | 2 +- ..._1_1_repository_1_1_lib_git2_commands.html | 2 +- ...1_lib_git2_repository_factory-members.html | 2 +- ...itory_1_1_lib_git2_repository_factory.html | 2 +- ...1_1_repository_1_1_repository-members.html | 2 +- ...ponents_1_1_repository_1_1_repository.html | 2 +- ...sitory_1_1_repository_manager-members.html | 2 +- ...1_1_repository_1_1_repository_manager.html | 2 +- ...n_1_1_combined_topic_response-members.html | 2 +- ...1_session_1_1_combined_topic_response.html | 2 +- ...1_1_session_1_1_launch_result-members.html | 2 +- ...ponents_1_1_session_1_1_launch_result.html | 2 +- ...sion_1_1_reattach_information-members.html | 2 +- ..._1_1_session_1_1_reattach_information.html | 2 +- ...ession_1_1_session_controller-members.html | 2 +- ...ts_1_1_session_1_1_session_controller.html | 2 +- ..._1_session_controller_factory-members.html | 2 +- ...ession_1_1_session_controller_factory.html | 2 +- ...session_1_1_session_persistor-members.html | 2 +- ...nts_1_1_session_1_1_session_persistor.html | 4 +- ...sion_1_1_topic_client_factory-members.html | 2 +- ..._1_1_session_1_1_topic_client_factory.html | 2 +- ...tatic_files_1_1_configuration-members.html | 2 +- ...ts_1_1_static_files_1_1_configuration.html | 2 +- ...1_1_server_side_modifications-members.html | 2 +- ...c_files_1_1_server_side_modifications.html | 2 +- ...1_watchdog_1_1_basic_watchdog-members.html | 2 +- ...nents_1_1_watchdog_1_1_basic_watchdog.html | 2 +- ...1_watchdog_1_1_posix_watchdog-members.html | 2 +- ...nents_1_1_watchdog_1_1_posix_watchdog.html | 2 +- ...og_1_1_posix_watchdog_factory-members.html | 2 +- ...1_watchdog_1_1_posix_watchdog_factory.html | 8 +- ..._1_watchdog_1_1_watchdog_base-members.html | 2 +- ...onents_1_1_watchdog_1_1_watchdog_base.html | 2 +- ...watchdog_1_1_watchdog_factory-members.html | 2 +- ...nts_1_1_watchdog_1_1_watchdog_factory.html | 2 +- ...watchdog_1_1_windows_watchdog-members.html | 2 +- ...nts_1_1_watchdog_1_1_windows_watchdog.html | 2 +- ..._1_1_windows_watchdog_factory-members.html | 2 +- ...watchdog_1_1_windows_watchdog_factory.html | 2 +- ...1_control_panel_configuration-members.html | 2 +- ...ation_1_1_control_panel_configuration.html | 2 +- ...on_1_1_database_configuration-members.html | 2 +- ...figuration_1_1_database_configuration.html | 2 +- ..._1_file_logging_configuration-members.html | 2 +- ...ration_1_1_file_logging_configuration.html | 2 +- ...ion_1_1_general_configuration-members.html | 2 +- ...nfiguration_1_1_general_configuration.html | 2 +- ...ion_1_1_updates_configuration-members.html | 2 +- ...nfiguration_1_1_updates_configuration.html | 2 +- ..._host_1_1_console_1_1_program-members.html | 2 +- ...rver_1_1_host_1_1_console_1_1_program.html | 2 +- ...1_1_administration_controller-members.html | 2 +- ...rollers_1_1_administration_controller.html | 2 +- ...ontrollers_1_1_api_controller-members.html | 2 +- ...st_1_1_controllers_1_1_api_controller.html | 2 +- ...rollers_1_1_bridge_controller-members.html | 2 +- ...1_1_controllers_1_1_bridge_controller.html | 2 +- ...trollers_1_1_byond_controller-members.html | 2 +- ..._1_1_controllers_1_1_byond_controller.html | 2 +- ...ntrollers_1_1_chat_controller-members.html | 2 +- ...t_1_1_controllers_1_1_chat_controller.html | 2 +- ..._1_1_configuration_controller-members.html | 2 +- ...trollers_1_1_configuration_controller.html | 2 +- ...s_1_1_dream_daemon_controller-members.html | 2 +- ...ntrollers_1_1_dream_daemon_controller.html | 2 +- ...rs_1_1_dream_maker_controller-members.html | 2 +- ...ontrollers_1_1_dream_maker_controller.html | 2 +- ...ntrollers_1_1_home_controller-members.html | 2 +- ...t_1_1_controllers_1_1_home_controller.html | 2 +- ...llers_1_1_instance_controller-members.html | 3 +- ...1_controllers_1_1_instance_controller.html | 88 +++++++++++++++--- ...9e19a7f501fca2dd5d707f34edb4c79_cgraph.map | 3 + ...9e19a7f501fca2dd5d707f34edb4c79_cgraph.md5 | 1 + ...9e19a7f501fca2dd5d707f34edb4c79_cgraph.png | Bin 0 -> 6017 bytes ...1974818becc34b9aa12a67f272016d2_cgraph.map | 3 + ...1974818becc34b9aa12a67f272016d2_cgraph.md5 | 1 + ...1974818becc34b9aa12a67f272016d2_cgraph.png | Bin 0 -> 5395 bytes ..._1_1_instance_user_controller-members.html | 2 +- ...trollers_1_1_instance_user_controller.html | 2 +- ...ontrollers_1_1_job_controller-members.html | 2 +- ...st_1_1_controllers_1_1_job_controller.html | 2 +- ...ers_1_1_repository_controller-members.html | 2 +- ...controllers_1_1_repository_controller.html | 2 +- ...s_1_1_tgs_authorize_attribute-members.html | 2 +- ...ntrollers_1_1_tgs_authorize_attribute.html | 2 +- ...ntrollers_1_1_user_controller-members.html | 2 +- ...t_1_1_controllers_1_1_user_controller.html | 2 +- ...host_1_1_core_1_1_application-members.html | 2 +- ...ver_1_1_host_1_1_core_1_1_application.html | 2 +- ...st_1_1_core_1_1_async_delayer-members.html | 2 +- ...r_1_1_host_1_1_core_1_1_async_delayer.html | 2 +- ...re_1_1_git_hub_client_factory-members.html | 2 +- ...t_1_1_core_1_1_git_hub_client_factory.html | 2 +- ..._api_enum_var_names_extension-members.html | 2 +- ...1_1_open_api_enum_var_names_extension.html | 2 +- ...core_1_1_restart_registration-members.html | 2 +- ...ost_1_1_core_1_1_restart_registration.html | 2 +- ...re_1_1_semaphore_slim_context-members.html | 2 +- ...t_1_1_core_1_1_semaphore_slim_context.html | 2 +- ...core_1_1_server_port_proivder-members.html | 2 +- ...ost_1_1_core_1_1_server_port_proivder.html | 2 +- ...ore_1_1_swagger_configuration-members.html | 2 +- ...st_1_1_core_1_1_swagger_configuration.html | 2 +- ...abase_1_1_database_collection-members.html | 2 +- ..._1_1_database_1_1_database_collection.html | 2 +- ...1_database_connection_factory-members.html | 2 +- ...abase_1_1_database_connection_factory.html | 2 +- ...database_1_1_database_context-members.html | 2 +- ...ost_1_1_database_1_1_database_context.html | 26 +++--- ...e88d53bf1b6ac87d175d83ed39da7c_icgraph.map | 18 ++-- ...e88d53bf1b6ac87d175d83ed39da7c_icgraph.md5 | 2 +- ...e88d53bf1b6ac87d175d83ed39da7c_icgraph.png | Bin 100546 -> 104168 bytes ..._1_1_database_context_factory-members.html | 2 +- ...database_1_1_database_context_factory.html | 2 +- ..._database_1_1_database_seeder-members.html | 2 +- ...host_1_1_database_1_1_database_seeder.html | 39 +++++--- ...ed443f053ba4e1098f0e4099d23b774_cgraph.map | 3 +- ...ed443f053ba4e1098f0e4099d23b774_cgraph.md5 | 2 +- ...ed443f053ba4e1098f0e4099d23b774_cgraph.png | Bin 5194 -> 8825 bytes ...me_db_context_factory_helpers-members.html | 2 +- ...esign_time_db_context_factory_helpers.html | 2 +- ...esign_time_db_context_factory-members.html | 2 +- ...my_sql_design_time_db_context_factory.html | 2 +- ...esign_time_db_context_factory-members.html | 2 +- ...es_sql_design_time_db_context_factory.html | 2 +- ...esign_time_db_context_factory-members.html | 2 +- ...server_design_time_db_context_factory.html | 2 +- ...esign_time_db_context_factory-members.html | 2 +- ...sqlite_design_time_db_context_factory.html | 2 +- ...hat_bot_reconnection_interval-members.html | 2 +- ..._s_add_chat_bot_reconnection_interval.html | 2 +- ...d_compile_job_d_m_api_version-members.html | 2 +- ...1_m_s_add_compile_job_d_m_api_version.html | 2 +- ...rations_1_1_m_s_add_heartbeat-members.html | 2 +- ..._1_1_migrations_1_1_m_s_add_heartbeat.html | 2 +- ...s_1_1_m_s_add_job_error_codes-members.html | 2 +- ...igrations_1_1_m_s_add_job_error_codes.html | 2 +- ..._1_1_m_s_add_minimum_security-members.html | 2 +- ...grations_1_1_m_s_add_minimum_security.html | 2 +- ...ns_1_1_m_s_allow_null_d_m_api-members.html | 2 +- ...migrations_1_1_m_s_allow_null_d_m_api.html | 2 +- ...ns_1_1_m_s_checkpoint_rebuild-members.html | 2 +- ...migrations_1_1_m_s_checkpoint_rebuild.html | 2 +- ..._1_1_m_s_fix_cascading_delete-members.html | 2 +- ...grations_1_1_m_s_fix_cascading_delete.html | 2 +- ...ns_1_1_m_s_fix_rev_info_index-members.html | 2 +- ...migrations_1_1_m_s_fix_rev_info_index.html | 2 +- ...ations_1_1_m_s_initial_create-members.html | 2 +- ...1_1_migrations_1_1_m_s_initial_create.html | 2 +- ...ill_jsons_add_d_m_api_version-members.html | 2 +- ..._1_m_s_kill_jsons_add_d_m_api_version.html | 2 +- ...ations_1_1_m_s_limits_on_chat-members.html | 2 +- ...1_1_migrations_1_1_m_s_limits_on_chat.html | 2 +- ...lable_and_foreign_key_cleanup-members.html | 2 +- ..._m_s_nullable_and_foreign_key_cleanup.html | 2 +- ...reattach_compile_job_required-members.html | 2 +- ...1_1_m_s_reattach_compile_job_required.html | 2 +- ..._remove_experimental_watchdog-members.html | 2 +- ..._1_1_m_s_remove_experimental_watchdog.html | 2 +- ...s_1_1_m_s_remove_soft_columns-members.html | 2 +- ...igrations_1_1_m_s_remove_soft_columns.html | 2 +- ...m_s_toggle_testmerge_comments-members.html | 2 +- ...ons_1_1_m_s_toggle_testmerge_comments.html | 2 +- ...ns_1_1_m_s_tons_of_validation-members.html | 2 +- ...migrations_1_1_m_s_tons_of_validation.html | 2 +- ...rations_1_1_m_s_topic_timeout-members.html | 2 +- ..._1_1_migrations_1_1_m_s_topic_timeout.html | 2 +- ...hat_bot_reconnection_interval-members.html | 2 +- ..._y_add_chat_bot_reconnection_interval.html | 2 +- ...d_compile_job_d_m_api_version-members.html | 2 +- ...1_m_y_add_compile_job_d_m_api_version.html | 2 +- ...rations_1_1_m_y_add_heartbeat-members.html | 2 +- ..._1_1_migrations_1_1_m_y_add_heartbeat.html | 2 +- ...s_1_1_m_y_add_job_error_codes-members.html | 2 +- ...igrations_1_1_m_y_add_job_error_codes.html | 2 +- ..._1_1_m_y_add_minimum_security-members.html | 2 +- ...grations_1_1_m_y_add_minimum_security.html | 2 +- ...ns_1_1_m_y_allow_null_d_m_api-members.html | 2 +- ...migrations_1_1_m_y_allow_null_d_m_api.html | 2 +- ...ns_1_1_m_y_checkpoint_rebuild-members.html | 2 +- ...migrations_1_1_m_y_checkpoint_rebuild.html | 2 +- ..._1_1_m_y_fix_cascading_delete-members.html | 2 +- ...grations_1_1_m_y_fix_cascading_delete.html | 2 +- ...tions_1_1_m_y_fix_foreign_key-members.html | 2 +- ..._1_migrations_1_1_m_y_fix_foreign_key.html | 2 +- ...ns_1_1_m_y_fix_rev_info_index-members.html | 2 +- ...migrations_1_1_m_y_fix_rev_info_index.html | 2 +- ...ations_1_1_m_y_initial_create-members.html | 2 +- ...1_1_migrations_1_1_m_y_initial_create.html | 2 +- ...ill_jsons_add_d_m_api_version-members.html | 2 +- ..._1_m_y_kill_jsons_add_d_m_api_version.html | 2 +- ...ations_1_1_m_y_limits_on_chat-members.html | 2 +- ...1_1_migrations_1_1_m_y_limits_on_chat.html | 2 +- ...lable_and_foreign_key_cleanup-members.html | 2 +- ..._m_y_nullable_and_foreign_key_cleanup.html | 2 +- ...reattach_compile_job_required-members.html | 2 +- ...1_1_m_y_reattach_compile_job_required.html | 2 +- ..._remove_experimental_watchdog-members.html | 2 +- ..._1_1_m_y_remove_experimental_watchdog.html | 2 +- ...s_1_1_m_y_remove_soft_columns-members.html | 2 +- ...igrations_1_1_m_y_remove_soft_columns.html | 2 +- ...m_y_toggle_testmerge_comments-members.html | 2 +- ...ons_1_1_m_y_toggle_testmerge_comments.html | 2 +- ...ns_1_1_m_y_tons_of_validation-members.html | 2 +- ...migrations_1_1_m_y_tons_of_validation.html | 2 +- ...rations_1_1_m_y_topic_timeout-members.html | 2 +- ..._1_1_migrations_1_1_m_y_topic_timeout.html | 2 +- ...tabase_context_model_snapshot-members.html | 2 +- ...y_sql_database_context_model_snapshot.html | 2 +- ...ns_1_1_p_g_allow_null_d_m_api-members.html | 2 +- ...migrations_1_1_p_g_allow_null_d_m_api.html | 2 +- ...1_1_migrations_1_1_p_g_create-members.html | 2 +- ...atabase_1_1_migrations_1_1_p_g_create.html | 2 +- ..._remove_experimental_watchdog-members.html | 2 +- ..._1_1_p_g_remove_experimental_watchdog.html | 2 +- ...rations_1_1_p_g_topic_timeout-members.html | 2 +- ..._1_1_migrations_1_1_p_g_topic_timeout.html | 2 +- ...tabase_context_model_snapshot-members.html | 2 +- ...s_sql_database_context_model_snapshot.html | 2 +- ...rations_1_1_s_l_add_heartbeat-members.html | 2 +- ..._1_1_migrations_1_1_s_l_add_heartbeat.html | 2 +- ...ns_1_1_s_l_allow_null_d_m_api-members.html | 2 +- ...migrations_1_1_s_l_allow_null_d_m_api.html | 2 +- ..._1_migrations_1_1_s_l_rebuild-members.html | 2 +- ...tabase_1_1_migrations_1_1_s_l_rebuild.html | 2 +- ..._remove_experimental_watchdog-members.html | 2 +- ..._1_1_s_l_remove_experimental_watchdog.html | 2 +- ...s_1_1_s_l_remove_soft_columns-members.html | 2 +- ...igrations_1_1_s_l_remove_soft_columns.html | 2 +- ...rations_1_1_s_l_topic_timeout-members.html | 2 +- ..._1_1_migrations_1_1_s_l_topic_timeout.html | 2 +- ...tabase_context_model_snapshot-members.html | 2 +- ...erver_database_context_model_snapshot.html | 2 +- ...tabase_context_model_snapshot-members.html | 2 +- ...qlite_database_context_model_snapshot.html | 2 +- ...e_1_1_my_sql_database_context-members.html | 2 +- ..._database_1_1_my_sql_database_context.html | 2 +- ...postgres_sql_database_context-members.html | 2 +- ...ase_1_1_postgres_sql_database_context.html | 2 +- ...1_sql_server_database_context-members.html | 2 +- ...abase_1_1_sql_server_database_context.html | 2 +- ...e_1_1_sqlite_database_context-members.html | 2 +- ..._database_1_1_sqlite_database_context.html | 2 +- ...pplication_builder_extensions-members.html | 2 +- ...ns_1_1_application_builder_extensions.html | 2 +- ...s_1_1_chat_channel_extensions-members.html | 2 +- ...xtensions_1_1_chat_channel_extensions.html | 2 +- ...1_date_time_offset_extensions-members.html | 2 +- ...sions_1_1_date_time_offset_extensions.html | 2 +- ...s_1_1_host_builder_extensions-members.html | 2 +- ...xtensions_1_1_host_builder_extensions.html | 2 +- ...service_collection_extensions-members.html | 2 +- ...ons_1_1_service_collection_extensions.html | 2 +- ...xtensions_1_1_task_extensions-members.html | 2 +- ...st_1_1_extensions_1_1_task_extensions.html | 2 +- ...1_web_host_builder_extensions-members.html | 2 +- ...sions_1_1_web_host_builder_extensions.html | 2 +- ..._1_1_host_1_1_i_o_1_1_console-members.html | 2 +- ...1_server_1_1_host_1_1_i_o_1_1_console.html | 2 +- ...1_i_o_1_1_default_i_o_manager-members.html | 2 +- ..._host_1_1_i_o_1_1_default_i_o_manager.html | 2 +- ..._1_1_posix_post_write_handler-members.html | 2 +- ..._1_1_i_o_1_1_posix_post_write_handler.html | 2 +- ...i_o_1_1_posix_symlink_factory-members.html | 2 +- ...ost_1_1_i_o_1_1_posix_symlink_factory.html | 2 +- ...i_o_1_1_resolving_i_o_manager-members.html | 2 +- ...ost_1_1_i_o_1_1_resolving_i_o_manager.html | 2 +- ...o_1_1_synchronous_i_o_manager-members.html | 2 +- ...t_1_1_i_o_1_1_synchronous_i_o_manager.html | 2 +- ..._1_windows_post_write_handler-members.html | 2 +- ..._1_i_o_1_1_windows_post_write_handler.html | 2 +- ...o_1_1_windows_symlink_factory-members.html | 2 +- ...t_1_1_i_o_1_1_windows_symlink_factory.html | 2 +- ...st_1_1_jobs_1_1_job_exception-members.html | 2 +- ...r_1_1_host_1_1_jobs_1_1_job_exception.html | 2 +- ...host_1_1_jobs_1_1_job_handler-members.html | 2 +- ...ver_1_1_host_1_1_jobs_1_1_job_handler.html | 2 +- ...host_1_1_jobs_1_1_job_manager-members.html | 2 +- ...ver_1_1_host_1_1_jobs_1_1_job_manager.html | 2 +- ..._host_1_1_models_1_1_chat_bot-members.html | 2 +- ...rver_1_1_host_1_1_models_1_1_chat_bot.html | 2 +- ...t_1_1_models_1_1_chat_channel-members.html | 2 +- ..._1_1_host_1_1_models_1_1_chat_channel.html | 2 +- ...st_1_1_models_1_1_compile_job-members.html | 2 +- ...r_1_1_host_1_1_models_1_1_compile_job.html | 2 +- ...els_1_1_dream_daemon_settings-members.html | 2 +- ..._1_1_models_1_1_dream_daemon_settings.html | 2 +- ...dels_1_1_dream_maker_settings-members.html | 2 +- ...t_1_1_models_1_1_dream_maker_settings.html | 2 +- ..._host_1_1_models_1_1_instance-members.html | 2 +- ...rver_1_1_host_1_1_models_1_1_instance.html | 2 +- ..._1_1_models_1_1_instance_user-members.html | 2 +- ...1_1_host_1_1_models_1_1_instance_user.html | 2 +- ...r_1_1_host_1_1_models_1_1_job-members.html | 2 +- ..._1_server_1_1_host_1_1_models_1_1_job.html | 2 +- ...dels_1_1_reattach_information-members.html | 2 +- ...t_1_1_models_1_1_reattach_information.html | 2 +- ...1_1_reattach_information_base-members.html | 2 +- ..._models_1_1_reattach_information_base.html | 2 +- ...odels_1_1_repository_settings-members.html | 2 +- ...st_1_1_models_1_1_repository_settings.html | 2 +- ...odels_1_1_rev_info_test_merge-members.html | 2 +- ...st_1_1_models_1_1_rev_info_test_merge.html | 2 +- ...dels_1_1_revision_information-members.html | 2 +- ...t_1_1_models_1_1_revision_information.html | 2 +- ...ost_1_1_models_1_1_test_merge-members.html | 2 +- ...er_1_1_host_1_1_models_1_1_test_merge.html | 2 +- ..._1_1_host_1_1_models_1_1_user-members.html | 2 +- ...1_server_1_1_host_1_1_models_1_1_user.html | 4 +- ...r_1_1_host_1_1_native_methods-members.html | 2 +- ..._1_server_1_1_host_1_1_native_methods.html | 2 +- ...1_server_1_1_host_1_1_program-members.html | 2 +- ...ation_1_1_server_1_1_host_1_1_program.html | 2 +- ...ty_1_1_authentication_context-members.html | 2 +- ...1_security_1_1_authentication_context.html | 4 +- ...uthentication_context_factory-members.html | 2 +- ...ty_1_1_authentication_context_factory.html | 2 +- ..._security_1_1_claims_injector-members.html | 2 +- ...host_1_1_security_1_1_claims_injector.html | 2 +- ...curity_1_1_cryptography_suite-members.html | 2 +- ...t_1_1_security_1_1_cryptography_suite.html | 2 +- ...1_security_1_1_identity_cache-members.html | 2 +- ..._host_1_1_security_1_1_identity_cache.html | 2 +- ...ity_1_1_identity_cache_object-members.html | 2 +- ..._1_security_1_1_identity_cache_object.html | 2 +- ...ity_1_1_posix_system_identity-members.html | 2 +- ..._1_security_1_1_posix_system_identity.html | 2 +- ...posix_system_identity_factory-members.html | 2 +- ...ity_1_1_posix_system_identity_factory.html | 2 +- ..._1_security_1_1_token_factory-members.html | 2 +- ...1_host_1_1_security_1_1_token_factory.html | 2 +- ...y_1_1_windows_system_identity-members.html | 2 +- ..._security_1_1_windows_system_identity.html | 2 +- ...ndows_system_identity_factory-members.html | 2 +- ...y_1_1_windows_system_identity_factory.html | 2 +- ..._1_server_1_1_host_1_1_server-members.html | 2 +- ...tation_1_1_server_1_1_host_1_1_server.html | 4 +- ...r_1_1_host_1_1_server_factory-members.html | 2 +- ..._1_server_1_1_host_1_1_server_factory.html | 2 +- ..._host_1_1_service_1_1_program-members.html | 2 +- ...rver_1_1_host_1_1_service_1_1_program.html | 2 +- ..._1_service_1_1_server_service-members.html | 2 +- ...1_host_1_1_service_1_1_server_service.html | 2 +- ...setup_1_1_post_setup_services-members.html | 2 +- ...ost_1_1_setup_1_1_post_setup_services.html | 2 +- ...1_setup_1_1_setup_application-members.html | 2 +- ..._host_1_1_setup_1_1_setup_application.html | 2 +- ...st_1_1_setup_1_1_setup_wizard-members.html | 2 +- ...r_1_1_host_1_1_setup_1_1_setup_wizard.html | 2 +- ...assembly_information_provider-members.html | 2 +- ...tem_1_1_assembly_information_provider.html | 2 +- ...ystem_1_1_platform_identifier-members.html | 2 +- ...st_1_1_system_1_1_platform_identifier.html | 2 +- ...1_posix_network_prompt_reaper-members.html | 2 +- ...ystem_1_1_posix_network_prompt_reaper.html | 2 +- ...em_1_1_posix_process_features-members.html | 2 +- ...1_1_system_1_1_posix_process_features.html | 2 +- ...1_host_1_1_system_1_1_process-members.html | 2 +- ...erver_1_1_host_1_1_system_1_1_process.html | 2 +- ...1_system_1_1_process_executor-members.html | 2 +- ..._host_1_1_system_1_1_process_executor.html | 2 +- ...program_shutdown_token_source-members.html | 2 +- ...tem_1_1_program_shutdown_token_source.html | 2 +- ...windows_network_prompt_reaper-members.html | 2 +- ...tem_1_1_windows_network_prompt_reaper.html | 2 +- ..._1_1_windows_process_features-members.html | 2 +- ...1_system_1_1_windows_process_features.html | 2 +- ...ost_1_1_watchdog_1_1_watchdog-members.html | 2 +- ...er_1_1_host_1_1_watchdog_1_1_watchdog.html | 2 +- ...watchdog_1_1_watchdog_factory-members.html | 2 +- ...ost_1_1_watchdog_1_1_watchdog_factory.html | 2 +- classes.html | 2 +- dir_02f69155ced6ccca99a24744a5273903.html | 2 +- dir_08963d262fa9e27215dce7b7c6e97f1b.html | 2 +- dir_0de875c2ee7edd4009e892c5045f7b3a.html | 2 +- dir_0f5073360b9ba6d1522457c65eebe36a.html | 2 +- dir_1cebbc1bce26b60bfb2ee26c80f86b02.html | 2 +- dir_222f69c34ae6290dff005cdc719e0a43.html | 2 +- dir_27a421f75b087b80bd0b7a1dbec733b4.html | 2 +- dir_2ea2465064f3ff030c6dd6700a328d91.html | 2 +- dir_34761767c1c3cd212f9d2f80ea0828a8.html | 2 +- dir_38487948bcdbeb4423997feb7b8adec0.html | 2 +- dir_38cec1532eaed7aa1de0b599a76e3e80.html | 2 +- dir_3a3ab2f663730d5bed7026cf41734e8a.html | 2 +- dir_3d220027e29e19c608b6d51ce3029c32.html | 2 +- dir_4ddbd20a555bd1f3bf9569744c8989cc.html | 2 +- dir_5ae0a4770cfe9bc511dad7df7deabb23.html | 2 +- dir_5d46d0c3fd1cac5ce1ea23751ad25792.html | 2 +- dir_5e0b464d3b4be546c63c5188ffeb96e4.html | 2 +- dir_61d7974a657c30011f457b376d274ee7.html | 2 +- dir_68267d1309a1af8e8297ef4c3efbcdba.html | 2 +- dir_6a8d19239e99965ecc1391ebd049009a.html | 2 +- dir_6c60df807dd2523776d391746c262b4d.html | 2 +- dir_6d5d151b7baf54e07e6b0a3941fbad55.html | 2 +- dir_7a3fd032a1362a6005a1fc9227a8dd86.html | 2 +- dir_7cd79c49f3850abc2141fa4adfdd1950.html | 2 +- dir_860acef72838dce8d3d54c8f98bc464b.html | 2 +- dir_935188fa6520fafdbdb4920911a885bd.html | 2 +- dir_9826fb2d31585a830723e6d7089b5d0e.html | 2 +- dir_a01d946a2e1b048dc542232ffcdcf572.html | 2 +- dir_a44a562b5a12ef1c8495ac1a63e915ea.html | 2 +- dir_a536e49cdf631f66733cf2c9791144ce.html | 2 +- dir_af336dd70489e812a924e1a8fba73854.html | 2 +- dir_b6324197f7ac56e30d6189c3a45eec56.html | 2 +- dir_be6161819238d55fa660c07ade960e53.html | 2 +- dir_c2c4d4ee47e55233c6ea5db8b96422c6.html | 2 +- dir_c5451d9d233744a5b09a29938f0cda9a.html | 2 +- dir_d822dd0b4e53d3dc95c9c470fa54d3d2.html | 2 +- dir_e2f0549e5ba528b36fd9348e214a8e4f.html | 2 +- dir_f0d41009ce252337feb2b68822c4cfba.html | 2 +- dir_f2a82faa4c4beef364292694cefca86d.html | 2 +- dir_f5938f3ae6ef69fa99e4683082cea79c.html | 2 +- dir_f90d62caf45952f011371f45080cf0bd.html | 2 +- features.html | 2 +- files.html | 2 +- functions.html | 2 +- functions_0x7e.html | 2 +- functions_b.html | 2 +- functions_c.html | 2 +- functions_d.html | 2 +- functions_e.html | 2 +- functions_enum.html | 2 +- functions_f.html | 2 +- functions_func.html | 2 +- functions_func_0x7e.html | 2 +- functions_func_b.html | 2 +- functions_func_c.html | 2 +- functions_func_d.html | 2 +- functions_func_e.html | 2 +- functions_func_f.html | 2 +- functions_func_g.html | 2 +- functions_func_h.html | 2 +- functions_func_i.html | 2 +- functions_func_j.html | 2 +- functions_func_k.html | 2 +- functions_func_l.html | 2 +- functions_func_m.html | 2 +- functions_func_n.html | 2 +- functions_func_o.html | 2 +- functions_func_p.html | 2 +- functions_func_r.html | 2 +- functions_func_s.html | 2 +- functions_func_t.html | 2 +- functions_func_u.html | 2 +- functions_func_v.html | 5 +- functions_func_w.html | 2 +- functions_func_z.html | 2 +- functions_g.html | 2 +- functions_h.html | 2 +- functions_i.html | 4 +- functions_j.html | 4 +- functions_k.html | 2 +- functions_l.html | 2 +- functions_m.html | 2 +- functions_n.html | 2 +- functions_o.html | 2 +- functions_p.html | 2 +- functions_prop.html | 2 +- functions_prop_b.html | 2 +- functions_prop_c.html | 2 +- functions_prop_d.html | 2 +- functions_prop_e.html | 2 +- functions_prop_f.html | 2 +- functions_prop_g.html | 2 +- functions_prop_h.html | 2 +- functions_prop_i.html | 2 +- functions_prop_j.html | 2 +- functions_prop_l.html | 2 +- functions_prop_m.html | 2 +- functions_prop_n.html | 2 +- functions_prop_o.html | 2 +- functions_prop_p.html | 2 +- functions_prop_r.html | 2 +- functions_prop_s.html | 2 +- functions_prop_t.html | 2 +- functions_prop_u.html | 2 +- functions_prop_v.html | 2 +- functions_prop_w.html | 2 +- functions_q.html | 2 +- functions_r.html | 2 +- functions_s.html | 2 +- functions_t.html | 6 +- functions_u.html | 2 +- functions_v.html | 5 +- functions_vars.html | 2 +- functions_vars_b.html | 2 +- functions_vars_c.html | 2 +- functions_vars_d.html | 2 +- functions_vars_e.html | 2 +- functions_vars_f.html | 2 +- functions_vars_g.html | 2 +- functions_vars_h.html | 2 +- functions_vars_i.html | 2 +- functions_vars_j.html | 2 +- functions_vars_k.html | 2 +- functions_vars_l.html | 2 +- functions_vars_m.html | 2 +- functions_vars_n.html | 2 +- functions_vars_o.html | 2 +- functions_vars_p.html | 2 +- functions_vars_q.html | 2 +- functions_vars_r.html | 2 +- functions_vars_s.html | 2 +- functions_vars_t.html | 2 +- functions_vars_u.html | 2 +- functions_vars_v.html | 2 +- functions_vars_w.html | 2 +- functions_w.html | 2 +- functions_z.html | 2 +- graph_legend.html | 2 +- hierarchy.html | 2 +- index.html | 2 +- inherits.html | 2 +- ...components_1_1_i_byond_client-members.html | 2 +- ...ent_1_1_components_1_1_i_byond_client.html | 2 +- ...onents_1_1_i_chat_bots_client-members.html | 2 +- ...1_1_components_1_1_i_chat_bots_client.html | 2 +- ...ts_1_1_i_configuration_client-members.html | 2 +- ...components_1_1_i_configuration_client.html | 2 +- ...nts_1_1_i_dream_daemon_client-members.html | 2 +- ..._components_1_1_i_dream_daemon_client.html | 2 +- ...ents_1_1_i_dream_maker_client-members.html | 2 +- ...1_components_1_1_i_dream_maker_client.html | 2 +- ...ponents_1_1_i_instance_client-members.html | 2 +- ..._1_1_components_1_1_i_instance_client.html | 2 +- ...ts_1_1_i_instance_user_client-members.html | 2 +- ...components_1_1_i_instance_user_client.html | 2 +- ..._components_1_1_i_jobs_client-members.html | 2 +- ...ient_1_1_components_1_1_i_jobs_client.html | 2 +- ...nents_1_1_i_repository_client-members.html | 2 +- ..._1_components_1_1_i_repository_client.html | 2 +- ...t_1_1_i_administration_client-members.html | 2 +- ..._1_client_1_1_i_administration_client.html | 2 +- ...r_1_1_client_1_1_i_api_client-members.html | 2 +- ..._1_server_1_1_client_1_1_i_api_client.html | 2 +- ...ient_1_1_i_api_client_factory-members.html | 2 +- ...r_1_1_client_1_1_i_api_client_factory.html | 2 +- ..._1_1_client_1_1_i_http_client-members.html | 2 +- ...1_server_1_1_client_1_1_i_http_client.html | 2 +- ...1_1_i_instance_manager_client-members.html | 2 +- ..._client_1_1_i_instance_manager_client.html | 2 +- ...1_client_1_1_i_request_logger-members.html | 2 +- ...erver_1_1_client_1_1_i_request_logger.html | 2 +- ..._1_client_1_1_i_server_client-members.html | 2 +- ...server_1_1_client_1_1_i_server_client.html | 2 +- ...t_1_1_i_server_client_factory-members.html | 2 +- ..._1_client_1_1_i_server_client_factory.html | 2 +- ...1_1_client_1_1_i_users_client-members.html | 2 +- ..._server_1_1_client_1_1_i_users_client.html | 2 +- ...d_1_1_i_byond_executable_lock-members.html | 2 +- ...1_1_byond_1_1_i_byond_executable_lock.html | 2 +- ...1_byond_1_1_i_byond_installer-members.html | 2 +- ...nents_1_1_byond_1_1_i_byond_installer.html | 2 +- ...1_1_byond_1_1_i_byond_manager-members.html | 2 +- ...ponents_1_1_byond_1_1_i_byond_manager.html | 2 +- ...at_1_1_commands_1_1_i_command-members.html | 2 +- ...s_1_1_chat_1_1_commands_1_1_i_command.html | 2 +- ...ommands_1_1_i_command_factory-members.html | 2 +- ...at_1_1_commands_1_1_i_command_factory.html | 2 +- ...s_1_1_chat_1_1_i_channel_sink-members.html | 2 +- ...omponents_1_1_chat_1_1_i_channel_sink.html | 2 +- ...s_1_1_chat_1_1_i_chat_manager-members.html | 2 +- ...omponents_1_1_chat_1_1_i_chat_manager.html | 2 +- ...at_1_1_i_chat_manager_factory-members.html | 2 +- ...s_1_1_chat_1_1_i_chat_manager_factory.html | 2 +- ...t_1_1_i_chat_tracking_context-members.html | 2 +- ..._1_1_chat_1_1_i_chat_tracking_context.html | 2 +- ..._1_1_i_custom_command_handler-members.html | 2 +- ...1_1_chat_1_1_i_custom_command_handler.html | 2 +- ..._1_1_providers_1_1_i_provider-members.html | 2 +- ...1_1_chat_1_1_providers_1_1_i_provider.html | 2 +- ...viders_1_1_i_provider_factory-members.html | 2 +- ..._1_1_providers_1_1_i_provider_factory.html | 2 +- ...oyment_1_1_i_compile_job_sink-members.html | 2 +- ...1_1_deployment_1_1_i_compile_job_sink.html | 2 +- ..._deployment_1_1_i_dmb_factory-members.html | 2 +- ...ents_1_1_deployment_1_1_i_dmb_factory.html | 2 +- ...deployment_1_1_i_dmb_provider-members.html | 2 +- ...nts_1_1_deployment_1_1_i_dmb_provider.html | 2 +- ..._deployment_1_1_i_dream_maker-members.html | 2 +- ...ents_1_1_deployment_1_1_i_dream_maker.html | 2 +- ...i_latest_compile_job_provider-members.html | 2 +- ...ent_1_1_i_latest_compile_job_provider.html | 2 +- ...1_events_1_1_i_event_consumer-members.html | 2 +- ...nents_1_1_events_1_1_i_event_consumer.html | 2 +- ...1_1_components_1_1_i_instance-members.html | 2 +- ..._1_host_1_1_components_1_1_i_instance.html | 2 +- ...onents_1_1_i_instance_factory-members.html | 2 +- ...1_1_components_1_1_i_instance_factory.html | 2 +- ...onents_1_1_i_instance_manager-members.html | 2 +- ...1_1_components_1_1_i_instance_manager.html | 2 +- ...ponents_1_1_i_rename_notifyee-members.html | 2 +- ..._1_1_components_1_1_i_rename_notifyee.html | 2 +- ...ridge_1_1_i_bridge_dispatcher-members.html | 2 +- ...op_1_1_bridge_1_1_i_bridge_dispatcher.html | 4 +- ...1_bridge_1_1_i_bridge_handler-members.html | 2 +- ...terop_1_1_bridge_1_1_i_bridge_handler.html | 4 +- ...bridge_1_1_i_bridge_registrar-members.html | 2 +- ...rop_1_1_bridge_1_1_i_bridge_registrar.html | 2 +- ..._1_1_bridge_1_1_i_bridge_registration.html | 2 +- ...ry_1_1_i_credentials_provider-members.html | 2 +- ...repository_1_1_i_credentials_provider.html | 2 +- ...itory_1_1_i_lib_git2_commands-members.html | 2 +- ..._1_repository_1_1_i_lib_git2_commands.html | 2 +- ...i_lib_git2_repository_factory-members.html | 2 +- ...ory_1_1_i_lib_git2_repository_factory.html | 2 +- ...1_repository_1_1_i_repository-members.html | 2 +- ...nents_1_1_repository_1_1_i_repository.html | 2 +- ...tory_1_1_i_repository_manager-members.html | 2 +- ...1_repository_1_1_i_repository_manager.html | 2 +- ...sion_1_1_i_session_controller-members.html | 2 +- ..._1_1_session_1_1_i_session_controller.html | 2 +- ..._i_session_controller_factory-members.html | 2 +- ...sion_1_1_i_session_controller_factory.html | 2 +- ...ssion_1_1_i_session_persistor-members.html | 2 +- ...s_1_1_session_1_1_i_session_persistor.html | 2 +- ...on_1_1_i_topic_client_factory-members.html | 2 +- ..._1_session_1_1_i_topic_client_factory.html | 2 +- ...tic_files_1_1_i_configuration-members.html | 2 +- ..._1_1_static_files_1_1_i_configuration.html | 2 +- ...s_1_1_watchdog_1_1_i_watchdog-members.html | 2 +- ...omponents_1_1_watchdog_1_1_i_watchdog.html | 2 +- ...tchdog_1_1_i_watchdog_factory-members.html | 2 +- ...s_1_1_watchdog_1_1_i_watchdog_factory.html | 2 +- ..._1_1_core_1_1_i_async_delayer-members.html | 2 +- ...1_1_host_1_1_core_1_1_i_async_delayer.html | 2 +- ..._1_1_i_git_hub_client_factory-members.html | 2 +- ...1_1_core_1_1_i_git_hub_client_factory.html | 2 +- ..._1_core_1_1_i_restart_handler-members.html | 2 +- ...1_host_1_1_core_1_1_i_restart_handler.html | 2 +- ...t_1_1_core_1_1_i_restart_registration.html | 2 +- ...1_1_core_1_1_i_server_control-members.html | 2 +- ..._1_host_1_1_core_1_1_i_server_control.html | 2 +- ...re_1_1_i_server_port_provider-members.html | 2 +- ...t_1_1_core_1_1_i_server_port_provider.html | 2 +- ...ase_1_1_i_database_collection-members.html | 2 +- ..._1_database_1_1_i_database_collection.html | 14 ++- ...e77420e74de1e7739eadcd7c9c8070_icgraph.map | 7 +- ...e77420e74de1e7739eadcd7c9c8070_icgraph.md5 | 2 +- ...e77420e74de1e7739eadcd7c9c8070_icgraph.png | Bin 7800 -> 5491 bytes ...i_database_connection_factory-members.html | 2 +- ...ase_1_1_i_database_connection_factory.html | 2 +- ...tabase_1_1_i_database_context-members.html | 2 +- ...t_1_1_database_1_1_i_database_context.html | 15 +-- ...e123c6393ad813f997c882a22b228e_icgraph.map | 3 +- ...e123c6393ad813f997c882a22b228e_icgraph.md5 | 2 +- ...e123c6393ad813f997c882a22b228e_icgraph.png | Bin 9105 -> 16396 bytes ..._1_i_database_context_factory-members.html | 2 +- ...tabase_1_1_i_database_context_factory.html | 2 +- ...atabase_1_1_i_database_seeder-members.html | 2 +- ...st_1_1_database_1_1_i_database_seeder.html | 2 +- ..._1_host_1_1_i_o_1_1_i_console-members.html | 2 +- ...server_1_1_host_1_1_i_o_1_1_i_console.html | 2 +- ...ost_1_1_i_o_1_1_i_i_o_manager-members.html | 2 +- ...er_1_1_host_1_1_i_o_1_1_i_i_o_manager.html | 2 +- ..._i_o_1_1_i_post_write_handler-members.html | 2 +- ...host_1_1_i_o_1_1_i_post_write_handler.html | 2 +- ...1_1_i_o_1_1_i_symlink_factory-members.html | 2 +- ..._1_host_1_1_i_o_1_1_i_symlink_factory.html | 2 +- ...1_1_i_synchronous_i_o_manager-members.html | 2 +- ...1_1_i_o_1_1_i_synchronous_i_o_manager.html | 2 +- ..._server_1_1_host_1_1_i_server-members.html | 2 +- ...tion_1_1_server_1_1_host_1_1_i_server.html | 2 +- ...1_1_host_1_1_i_server_factory-members.html | 2 +- ..._server_1_1_host_1_1_i_server_factory.html | 2 +- ...st_1_1_jobs_1_1_i_job_manager-members.html | 2 +- ...r_1_1_host_1_1_jobs_1_1_i_job_manager.html | 2 +- ..._1_1_i_authentication_context-members.html | 2 +- ...security_1_1_i_authentication_context.html | 2 +- ...uthentication_context_factory-members.html | 2 +- ..._1_1_i_authentication_context_factory.html | 2 +- ...ecurity_1_1_i_claims_injector-members.html | 2 +- ...st_1_1_security_1_1_i_claims_injector.html | 2 +- ...rity_1_1_i_cryptography_suite-members.html | 2 +- ...1_1_security_1_1_i_cryptography_suite.html | 2 +- ...security_1_1_i_identity_cache-members.html | 2 +- ...ost_1_1_security_1_1_i_identity_cache.html | 2 +- ...ecurity_1_1_i_system_identity-members.html | 2 +- ...st_1_1_security_1_1_i_system_identity.html | 2 +- ...1_1_i_system_identity_factory-members.html | 2 +- ...ecurity_1_1_i_system_identity_factory.html | 2 +- ..._security_1_1_i_token_factory-members.html | 2 +- ...host_1_1_security_1_1_i_token_factory.html | 2 +- ...tup_1_1_i_post_setup_services-members.html | 2 +- ...t_1_1_setup_1_1_i_post_setup_services.html | 2 +- ...assembly_information_provider-members.html | 2 +- ...m_1_1_i_assembly_information_provider.html | 2 +- ...m_1_1_i_network_prompt_reaper-members.html | 2 +- ..._1_system_1_1_i_network_prompt_reaper.html | 2 +- ...tem_1_1_i_platform_identifier-members.html | 2 +- ..._1_1_system_1_1_i_platform_identifier.html | 2 +- ...host_1_1_system_1_1_i_process-members.html | 2 +- ...ver_1_1_host_1_1_system_1_1_i_process.html | 2 +- ...1_1_system_1_1_i_process_base-members.html | 2 +- ..._1_host_1_1_system_1_1_i_process_base.html | 2 +- ...system_1_1_i_process_executor-members.html | 2 +- ...ost_1_1_system_1_1_i_process_executor.html | 2 +- ...system_1_1_i_process_features-members.html | 2 +- ...ost_1_1_system_1_1_i_process_features.html | 2 +- ...t_1_1_watchdog_1_1_i_watchdog-members.html | 2 +- ..._1_1_host_1_1_watchdog_1_1_i_watchdog.html | 2 +- ...tchdog_1_1_i_watchdog_factory-members.html | 2 +- ...t_1_1_watchdog_1_1_i_watchdog_factory.html | 2 +- namespace_tgstation.html | 2 +- namespace_tgstation_1_1_server.html | 2 +- namespace_tgstation_1_1_server_1_1_api.html | 2 +- ...station_1_1_server_1_1_api_1_1_models.html | 2 +- ...erver_1_1_api_1_1_models_1_1_internal.html | 2 +- ...station_1_1_server_1_1_api_1_1_rights.html | 2 +- ...space_tgstation_1_1_server_1_1_client.html | 2 +- ..._1_1_server_1_1_client_1_1_components.html | 2 +- namespace_tgstation_1_1_server_1_1_host.html | 2 +- ...on_1_1_server_1_1_host_1_1_components.html | 2 +- ...ver_1_1_host_1_1_components_1_1_byond.html | 2 +- ...rver_1_1_host_1_1_components_1_1_chat.html | 2 +- ..._1_1_components_1_1_chat_1_1_commands.html | 2 +- ...1_1_components_1_1_chat_1_1_providers.html | 2 +- ..._1_host_1_1_components_1_1_deployment.html | 2 +- ...er_1_1_host_1_1_components_1_1_events.html | 2 +- ...r_1_1_host_1_1_components_1_1_interop.html | 2 +- ...1_1_components_1_1_interop_1_1_bridge.html | 2 +- ...components_1_1_interop_1_1_converters.html | 2 +- ..._1_1_components_1_1_interop_1_1_topic.html | 2 +- ..._1_host_1_1_components_1_1_repository.html | 2 +- ...r_1_1_host_1_1_components_1_1_session.html | 2 +- ..._host_1_1_components_1_1_static_files.html | 2 +- ..._1_1_host_1_1_components_1_1_watchdog.html | 2 +- ...1_1_server_1_1_host_1_1_configuration.html | 2 +- ...ation_1_1_server_1_1_host_1_1_console.html | 2 +- ...n_1_1_server_1_1_host_1_1_controllers.html | 2 +- ...gstation_1_1_server_1_1_host_1_1_core.html | 2 +- ...tion_1_1_server_1_1_host_1_1_database.html | 2 +- ...rver_1_1_host_1_1_database_1_1_design.html | 2 +- ..._1_1_host_1_1_database_1_1_migrations.html | 2 +- ...on_1_1_server_1_1_host_1_1_extensions.html | 2 +- ...tgstation_1_1_server_1_1_host_1_1_i_o.html | 2 +- ...gstation_1_1_server_1_1_host_1_1_jobs.html | 2 +- ...tation_1_1_server_1_1_host_1_1_models.html | 2 +- ...tion_1_1_server_1_1_host_1_1_security.html | 2 +- ...ation_1_1_server_1_1_host_1_1_service.html | 2 +- ...station_1_1_server_1_1_host_1_1_setup.html | 2 +- ...tation_1_1_server_1_1_host_1_1_system.html | 2 +- ...tion_1_1_server_1_1_host_1_1_watchdog.html | 2 +- namespacemembers.html | 2 +- namespacemembers_enum.html | 2 +- namespaces.html | 2 +- search/all_10.js | 6 +- search/all_12.js | 4 +- search/all_13.js | 4 +- search/all_14.js | 6 +- search/all_16.js | 1 + search/all_9.js | 2 +- search/all_a.js | 2 +- search/all_c.js | 2 +- search/functions_14.js | 1 + search/variables_13.js | 2 +- search/variables_9.js | 2 +- src_2_d_m_a_p_i_2tgs_2_r_e_a_d_m_e_8md.html | 2 +- ...m_a_p_i_2tgs_2_r_e_a_d_m_e_8md_source.html | 2 +- ..._m_a_p_i_2tgs_2core_2_r_e_a_d_m_e_8md.html | 2 +- ...i_2tgs_2core_2_r_e_a_d_m_e_8md_source.html | 2 +- ...m_a_p_i_2tgs_2v3210_2_r_e_a_d_m_e_8md.html | 2 +- ..._2tgs_2v3210_2_r_e_a_d_m_e_8md_source.html | 2 +- ..._d_m_a_p_i_2tgs_2v4_2_r_e_a_d_m_e_8md.html | 2 +- ...p_i_2tgs_2v4_2_r_e_a_d_m_e_8md_source.html | 2 +- src_2_r_e_a_d_m_e_8md.html | 2 +- src_2_r_e_a_d_m_e_8md_source.html | 2 +- ...tion_8_server_8_api_2_r_e_a_d_m_e_8md.html | 2 +- ...server_8_api_2_r_e_a_d_m_e_8md_source.html | 2 +- ...8_host_2_client_app_2_r_e_a_d_m_e_8md.html | 2 +- ...2_client_app_2_r_e_a_d_m_e_8md_source.html | 2 +- ...components_2_events_2_r_e_a_d_m_e_8md.html | 2 +- ...nts_2_events_2_r_e_a_d_m_e_8md_source.html | 2 +- ...8_host_2_components_2_r_e_a_d_m_e_8md.html | 2 +- ...2_components_2_r_e_a_d_m_e_8md_source.html | 2 +- ...omponents_2_session_2_r_e_a_d_m_e_8md.html | 2 +- ...ts_2_session_2_r_e_a_d_m_e_8md_source.html | 2 +- ...mponents_2_watchdog_2_r_e_a_d_m_e_8md.html | 2 +- ...s_2_watchdog_2_r_e_a_d_m_e_8md_source.html | 2 +- ...ost_2_configuration_2_r_e_a_d_m_e_8md.html | 2 +- ...onfiguration_2_r_e_a_d_m_e_8md_source.html | 2 +- ..._host_2_controllers_2_r_e_a_d_m_e_8md.html | 2 +- ..._controllers_2_r_e_a_d_m_e_8md_source.html | 2 +- ...erver_8_host_2_core_2_r_e_a_d_m_e_8md.html | 2 +- ..._host_2_core_2_r_e_a_d_m_e_8md_source.html | 2 +- ...r_8_host_2_database_2_r_e_a_d_m_e_8md.html | 2 +- ...t_2_database_2_r_e_a_d_m_e_8md_source.html | 2 +- ...server_8_host_2_i_o_2_r_e_a_d_m_e_8md.html | 2 +- ...8_host_2_i_o_2_r_e_a_d_m_e_8md_source.html | 2 +- ...erver_8_host_2_jobs_2_r_e_a_d_m_e_8md.html | 2 +- ..._host_2_jobs_2_r_e_a_d_m_e_8md_source.html | 2 +- ...ion_8_server_8_host_2_r_e_a_d_m_e_8md.html | 2 +- ...erver_8_host_2_r_e_a_d_m_e_8md_source.html | 2 +- ...r_8_host_2_security_2_r_e_a_d_m_e_8md.html | 2 +- ...t_2_security_2_r_e_a_d_m_e_8md_source.html | 2 +- ...rver_8_host_2_setup_2_r_e_a_d_m_e_8md.html | 2 +- ...host_2_setup_2_r_e_a_d_m_e_8md_source.html | 2 +- ...ver_8_host_2_system_2_r_e_a_d_m_e_8md.html | 2 +- ...ost_2_system_2_r_e_a_d_m_e_8md_source.html | 2 +- 2025 files changed, 2242 insertions(+), 2132 deletions(-) create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.png create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.map create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.md5 create mode 100644 class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.png diff --git a/20180906135553___m_s_initial_create_8_designer_8cs.html b/20180906135553___m_s_initial_create_8_designer_8cs.html index 765e7f02da..59a1895075 100644 --- a/20180906135553___m_s_initial_create_8_designer_8cs.html +++ b/20180906135553___m_s_initial_create_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180906135553___m_s_initial_create_8_designer_8cs_source.html b/20180906135553___m_s_initial_create_8_designer_8cs_source.html index 910e155faa..bcfc0a450c 100644 --- a/20180906135553___m_s_initial_create_8_designer_8cs_source.html +++ b/20180906135553___m_s_initial_create_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180906135553___m_s_initial_create_8cs.html b/20180906135553___m_s_initial_create_8cs.html index b0de9e6e17..ec157d006b 100644 --- a/20180906135553___m_s_initial_create_8cs.html +++ b/20180906135553___m_s_initial_create_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180906135553___m_s_initial_create_8cs_source.html b/20180906135553___m_s_initial_create_8cs_source.html index 4e15b9fa4e..a723c8709b 100644 --- a/20180906135553___m_s_initial_create_8cs_source.html +++ b/20180906135553___m_s_initial_create_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180906143029___m_y_initial_create_8_designer_8cs.html b/20180906143029___m_y_initial_create_8_designer_8cs.html index 69bdd6ceea..1764949063 100644 --- a/20180906143029___m_y_initial_create_8_designer_8cs.html +++ b/20180906143029___m_y_initial_create_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180906143029___m_y_initial_create_8_designer_8cs_source.html b/20180906143029___m_y_initial_create_8_designer_8cs_source.html index 45e54074ee..c1bc51b23b 100644 --- a/20180906143029___m_y_initial_create_8_designer_8cs_source.html +++ b/20180906143029___m_y_initial_create_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180906143029___m_y_initial_create_8cs.html b/20180906143029___m_y_initial_create_8cs.html index ba430436b0..7920d771a2 100644 --- a/20180906143029___m_y_initial_create_8cs.html +++ b/20180906143029___m_y_initial_create_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180906143029___m_y_initial_create_8cs_source.html b/20180906143029___m_y_initial_create_8cs_source.html index 1fcc7d01a6..c307768894 100644 --- a/20180906143029___m_y_initial_create_8cs_source.html +++ b/20180906143029___m_y_initial_create_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918020726___m_y_add_minimum_security_8_designer_8cs.html b/20180918020726___m_y_add_minimum_security_8_designer_8cs.html index ee90d71c11..49a18188a6 100644 --- a/20180918020726___m_y_add_minimum_security_8_designer_8cs.html +++ b/20180918020726___m_y_add_minimum_security_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918020726___m_y_add_minimum_security_8_designer_8cs_source.html b/20180918020726___m_y_add_minimum_security_8_designer_8cs_source.html index 35c1be28e8..6586189ad8 100644 --- a/20180918020726___m_y_add_minimum_security_8_designer_8cs_source.html +++ b/20180918020726___m_y_add_minimum_security_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918020726___m_y_add_minimum_security_8cs.html b/20180918020726___m_y_add_minimum_security_8cs.html index 9b844839a7..f98aab897f 100644 --- a/20180918020726___m_y_add_minimum_security_8cs.html +++ b/20180918020726___m_y_add_minimum_security_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918020726___m_y_add_minimum_security_8cs_source.html b/20180918020726___m_y_add_minimum_security_8cs_source.html index c6456ab24d..687f758a3f 100644 --- a/20180918020726___m_y_add_minimum_security_8cs_source.html +++ b/20180918020726___m_y_add_minimum_security_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918021228___m_s_add_minimum_security_8_designer_8cs.html b/20180918021228___m_s_add_minimum_security_8_designer_8cs.html index 48c63f131c..00b6ef9509 100644 --- a/20180918021228___m_s_add_minimum_security_8_designer_8cs.html +++ b/20180918021228___m_s_add_minimum_security_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918021228___m_s_add_minimum_security_8_designer_8cs_source.html b/20180918021228___m_s_add_minimum_security_8_designer_8cs_source.html index 94efea36c3..07137e3145 100644 --- a/20180918021228___m_s_add_minimum_security_8_designer_8cs_source.html +++ b/20180918021228___m_s_add_minimum_security_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918021228___m_s_add_minimum_security_8cs.html b/20180918021228___m_s_add_minimum_security_8cs.html index 628bdcd5ae..d4414289e0 100644 --- a/20180918021228___m_s_add_minimum_security_8cs.html +++ b/20180918021228___m_s_add_minimum_security_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918021228___m_s_add_minimum_security_8cs_source.html b/20180918021228___m_s_add_minimum_security_8cs_source.html index 33bd1ead03..961a9f3bcf 100644 --- a/20180918021228___m_s_add_minimum_security_8cs_source.html +++ b/20180918021228___m_s_add_minimum_security_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs.html b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs.html index 0d6a2b28c3..71a15b33ed 100644 --- a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs.html +++ b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html index bba2255a72..788cd203cf 100644 --- a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html +++ b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs.html b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs.html index 0081642bb2..6ec23e9220 100644 --- a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs.html +++ b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs_source.html b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs_source.html index 8e94dff5bd..8f0d01cf96 100644 --- a/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs_source.html +++ b/20180918204520___m_y_nullable_and_foreign_key_cleanup_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs.html b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs.html index bea3c1d2bb..244026da63 100644 --- a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs.html +++ b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html index f52dbbccc4..ec737af6e9 100644 --- a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html +++ b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs.html b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs.html index ccb5d61f5f..b56f0e0e77 100644 --- a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs.html +++ b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs_source.html b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs_source.html index e57e2c5ed5..4992f50e11 100644 --- a/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs_source.html +++ b/20180918205224___m_s_nullable_and_foreign_key_cleanup_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs.html b/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs.html index 561d20395a..8e5bc55794 100644 --- a/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs.html +++ b/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs_source.html b/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs_source.html index a4be414e08..d9616c2453 100644 --- a/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs_source.html +++ b/20180926033145___m_s_reattach_compile_job_required_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180926033145___m_s_reattach_compile_job_required_8cs.html b/20180926033145___m_s_reattach_compile_job_required_8cs.html index 1c846b99ba..4f69ecb157 100644 --- a/20180926033145___m_s_reattach_compile_job_required_8cs.html +++ b/20180926033145___m_s_reattach_compile_job_required_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180926033145___m_s_reattach_compile_job_required_8cs_source.html b/20180926033145___m_s_reattach_compile_job_required_8cs_source.html index 3455d428df..ef6520c2a8 100644 --- a/20180926033145___m_s_reattach_compile_job_required_8cs_source.html +++ b/20180926033145___m_s_reattach_compile_job_required_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs.html b/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs.html index 0342c80107..dd0a7d6847 100644 --- a/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs.html +++ b/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs_source.html b/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs_source.html index ea0972be19..80106ebbdf 100644 --- a/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs_source.html +++ b/20180926034014___m_y_reattach_compile_job_required_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180926034014___m_y_reattach_compile_job_required_8cs.html b/20180926034014___m_y_reattach_compile_job_required_8cs.html index ab62fae861..455ffcc028 100644 --- a/20180926034014___m_y_reattach_compile_job_required_8cs.html +++ b/20180926034014___m_y_reattach_compile_job_required_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20180926034014___m_y_reattach_compile_job_required_8cs_source.html b/20180926034014___m_y_reattach_compile_job_required_8cs_source.html index a0b8d56538..b4a832244a 100644 --- a/20180926034014___m_y_reattach_compile_job_required_8cs_source.html +++ b/20180926034014___m_y_reattach_compile_job_required_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs.html b/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs.html index 028f7b20c3..4300a47334 100644 --- a/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs.html +++ b/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs_source.html b/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs_source.html index 2fe898e4d1..04253f66b3 100644 --- a/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs_source.html +++ b/20181124231534___m_s_toggle_testmerge_comments_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20181124231534___m_s_toggle_testmerge_comments_8cs.html b/20181124231534___m_s_toggle_testmerge_comments_8cs.html index f4a12a73d1..bf66c6e10f 100644 --- a/20181124231534___m_s_toggle_testmerge_comments_8cs.html +++ b/20181124231534___m_s_toggle_testmerge_comments_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20181124231534___m_s_toggle_testmerge_comments_8cs_source.html b/20181124231534___m_s_toggle_testmerge_comments_8cs_source.html index a6ee243004..00c4688ae3 100644 --- a/20181124231534___m_s_toggle_testmerge_comments_8cs_source.html +++ b/20181124231534___m_s_toggle_testmerge_comments_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs.html b/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs.html index 6e4992cb12..6951bc9530 100644 --- a/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs.html +++ b/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs_source.html b/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs_source.html index 6542b63d3f..95fa92b25a 100644 --- a/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs_source.html +++ b/20181124231549___m_y_toggle_testmerge_comments_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20181124231549___m_y_toggle_testmerge_comments_8cs.html b/20181124231549___m_y_toggle_testmerge_comments_8cs.html index f28bca09d8..1c981fcf6b 100644 --- a/20181124231549___m_y_toggle_testmerge_comments_8cs.html +++ b/20181124231549___m_y_toggle_testmerge_comments_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20181124231549___m_y_toggle_testmerge_comments_8cs_source.html b/20181124231549___m_y_toggle_testmerge_comments_8cs_source.html index dc318234c3..c9d3cd24b4 100644 --- a/20181124231549___m_y_toggle_testmerge_comments_8cs_source.html +++ b/20181124231549___m_y_toggle_testmerge_comments_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20190219041825___m_s_fix_rev_info_index_8_designer_8cs.html b/20190219041825___m_s_fix_rev_info_index_8_designer_8cs.html index aaf91212c2..683e4f15e4 100644 --- a/20190219041825___m_s_fix_rev_info_index_8_designer_8cs.html +++ b/20190219041825___m_s_fix_rev_info_index_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20190219041825___m_s_fix_rev_info_index_8_designer_8cs_source.html b/20190219041825___m_s_fix_rev_info_index_8_designer_8cs_source.html index 47911b24be..e8abe018c7 100644 --- a/20190219041825___m_s_fix_rev_info_index_8_designer_8cs_source.html +++ b/20190219041825___m_s_fix_rev_info_index_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20190219041825___m_s_fix_rev_info_index_8cs.html b/20190219041825___m_s_fix_rev_info_index_8cs.html index 93fa34bbce..d5aa659715 100644 --- a/20190219041825___m_s_fix_rev_info_index_8cs.html +++ b/20190219041825___m_s_fix_rev_info_index_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20190219041825___m_s_fix_rev_info_index_8cs_source.html b/20190219041825___m_s_fix_rev_info_index_8cs_source.html index 4d16823caf..9bbad83bec 100644 --- a/20190219041825___m_s_fix_rev_info_index_8cs_source.html +++ b/20190219041825___m_s_fix_rev_info_index_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20190219042440___m_y_fix_rev_info_index_8_designer_8cs.html b/20190219042440___m_y_fix_rev_info_index_8_designer_8cs.html index d5d784d000..c5f5cdb0d2 100644 --- a/20190219042440___m_y_fix_rev_info_index_8_designer_8cs.html +++ b/20190219042440___m_y_fix_rev_info_index_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20190219042440___m_y_fix_rev_info_index_8_designer_8cs_source.html b/20190219042440___m_y_fix_rev_info_index_8_designer_8cs_source.html index 8db247b009..be929fcac4 100644 --- a/20190219042440___m_y_fix_rev_info_index_8_designer_8cs_source.html +++ b/20190219042440___m_y_fix_rev_info_index_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20190219042440___m_y_fix_rev_info_index_8cs.html b/20190219042440___m_y_fix_rev_info_index_8cs.html index 64e6578ae0..d36421e085 100644 --- a/20190219042440___m_y_fix_rev_info_index_8cs.html +++ b/20190219042440___m_y_fix_rev_info_index_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20190219042440___m_y_fix_rev_info_index_8cs_source.html b/20190219042440___m_y_fix_rev_info_index_8cs_source.html index cbffae8c97..d965478c70 100644 --- a/20190219042440___m_y_fix_rev_info_index_8cs_source.html +++ b/20190219042440___m_y_fix_rev_info_index_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs.html b/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs.html index 1243a6c75d..0aeeffb9dc 100644 --- a/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs.html +++ b/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs_source.html b/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs_source.html index dc3aa70b0d..daa0d7666d 100644 --- a/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs_source.html +++ b/20200121170252___m_s_add_chat_bot_reconnection_interval_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs.html b/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs.html index 51ab732906..8f8793ba93 100644 --- a/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs.html +++ b/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs_source.html b/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs_source.html index 628ff62bf9..85a10df7db 100644 --- a/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs_source.html +++ b/20200121170252___m_s_add_chat_bot_reconnection_interval_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs.html b/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs.html index 16e27d25ae..f7a8cded8d 100644 --- a/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs.html +++ b/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs_source.html b/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs_source.html index b2900ebcf5..61ca32c095 100644 --- a/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs_source.html +++ b/20200121171159___m_y_add_chat_bot_reconnection_interval_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs.html b/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs.html index dd0f99040d..79774b0fef 100644 --- a/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs.html +++ b/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs_source.html b/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs_source.html index d86a36fa51..00ea44cb96 100644 --- a/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs_source.html +++ b/20200121171159___m_y_add_chat_bot_reconnection_interval_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200411164808___m_s_tons_of_validation_8_designer_8cs.html b/20200411164808___m_s_tons_of_validation_8_designer_8cs.html index e2bae7ede0..b840b44d57 100644 --- a/20200411164808___m_s_tons_of_validation_8_designer_8cs.html +++ b/20200411164808___m_s_tons_of_validation_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200411164808___m_s_tons_of_validation_8_designer_8cs_source.html b/20200411164808___m_s_tons_of_validation_8_designer_8cs_source.html index 246d57cfea..ad44cb2c99 100644 --- a/20200411164808___m_s_tons_of_validation_8_designer_8cs_source.html +++ b/20200411164808___m_s_tons_of_validation_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200411164808___m_s_tons_of_validation_8cs.html b/20200411164808___m_s_tons_of_validation_8cs.html index cdfbfabb3c..a00a3c867b 100644 --- a/20200411164808___m_s_tons_of_validation_8cs.html +++ b/20200411164808___m_s_tons_of_validation_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200411164808___m_s_tons_of_validation_8cs_source.html b/20200411164808___m_s_tons_of_validation_8cs_source.html index 43fda4c374..1cee1fa999 100644 --- a/20200411164808___m_s_tons_of_validation_8cs_source.html +++ b/20200411164808___m_s_tons_of_validation_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200411170010___m_y_tons_of_validation_8_designer_8cs.html b/20200411170010___m_y_tons_of_validation_8_designer_8cs.html index 7f5e034da2..2b6e27afe9 100644 --- a/20200411170010___m_y_tons_of_validation_8_designer_8cs.html +++ b/20200411170010___m_y_tons_of_validation_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200411170010___m_y_tons_of_validation_8_designer_8cs_source.html b/20200411170010___m_y_tons_of_validation_8_designer_8cs_source.html index df684c2d1c..09fcbf1488 100644 --- a/20200411170010___m_y_tons_of_validation_8_designer_8cs_source.html +++ b/20200411170010___m_y_tons_of_validation_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200411170010___m_y_tons_of_validation_8cs.html b/20200411170010___m_y_tons_of_validation_8cs.html index 92d9cc7050..6ec6244722 100644 --- a/20200411170010___m_y_tons_of_validation_8cs.html +++ b/20200411170010___m_y_tons_of_validation_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200411170010___m_y_tons_of_validation_8cs_source.html b/20200411170010___m_y_tons_of_validation_8cs_source.html index 36b33e72a0..00d2aa36de 100644 --- a/20200411170010___m_y_tons_of_validation_8cs_source.html +++ b/20200411170010___m_y_tons_of_validation_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200420175359___m_s_limits_on_chat_8_designer_8cs.html b/20200420175359___m_s_limits_on_chat_8_designer_8cs.html index d44b5efb56..0972f4132a 100644 --- a/20200420175359___m_s_limits_on_chat_8_designer_8cs.html +++ b/20200420175359___m_s_limits_on_chat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200420175359___m_s_limits_on_chat_8_designer_8cs_source.html b/20200420175359___m_s_limits_on_chat_8_designer_8cs_source.html index 6718d20ac5..a626fc9d88 100644 --- a/20200420175359___m_s_limits_on_chat_8_designer_8cs_source.html +++ b/20200420175359___m_s_limits_on_chat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200420175359___m_s_limits_on_chat_8cs.html b/20200420175359___m_s_limits_on_chat_8cs.html index e957f6f461..0801c6f6ee 100644 --- a/20200420175359___m_s_limits_on_chat_8cs.html +++ b/20200420175359___m_s_limits_on_chat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200420175359___m_s_limits_on_chat_8cs_source.html b/20200420175359___m_s_limits_on_chat_8cs_source.html index 627c2f10e7..8fe01286ce 100644 --- a/20200420175359___m_s_limits_on_chat_8cs_source.html +++ b/20200420175359___m_s_limits_on_chat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200420181015___m_y_limits_on_chat_8_designer_8cs.html b/20200420181015___m_y_limits_on_chat_8_designer_8cs.html index c3d5e41cb9..1677d327c6 100644 --- a/20200420181015___m_y_limits_on_chat_8_designer_8cs.html +++ b/20200420181015___m_y_limits_on_chat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200420181015___m_y_limits_on_chat_8_designer_8cs_source.html b/20200420181015___m_y_limits_on_chat_8_designer_8cs_source.html index 8b7b3c98e3..eef0c8d8a4 100644 --- a/20200420181015___m_y_limits_on_chat_8_designer_8cs_source.html +++ b/20200420181015___m_y_limits_on_chat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200420181015___m_y_limits_on_chat_8cs.html b/20200420181015___m_y_limits_on_chat_8cs.html index 3fa8952879..202671f094 100644 --- a/20200420181015___m_y_limits_on_chat_8cs.html +++ b/20200420181015___m_y_limits_on_chat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200420181015___m_y_limits_on_chat_8cs_source.html b/20200420181015___m_y_limits_on_chat_8cs_source.html index 589f37af55..f532251ec5 100644 --- a/20200420181015___m_y_limits_on_chat_8cs_source.html +++ b/20200420181015___m_y_limits_on_chat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs.html b/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs.html index 580deffdec..579802ba6d 100644 --- a/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs.html +++ b/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs_source.html b/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs_source.html index 86a1e03306..9e77885872 100644 --- a/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs_source.html +++ b/20200422001202___m_s_add_compile_job_d_m_api_version_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200422001202___m_s_add_compile_job_d_m_api_version_8cs.html b/20200422001202___m_s_add_compile_job_d_m_api_version_8cs.html index 96197f910c..be245057bd 100644 --- a/20200422001202___m_s_add_compile_job_d_m_api_version_8cs.html +++ b/20200422001202___m_s_add_compile_job_d_m_api_version_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200422001202___m_s_add_compile_job_d_m_api_version_8cs_source.html b/20200422001202___m_s_add_compile_job_d_m_api_version_8cs_source.html index 6c244ad146..dd42688493 100644 --- a/20200422001202___m_s_add_compile_job_d_m_api_version_8cs_source.html +++ b/20200422001202___m_s_add_compile_job_d_m_api_version_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs.html b/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs.html index 8c427e4915..ccd7ecd73d 100644 --- a/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs.html +++ b/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs_source.html b/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs_source.html index 017780fe43..a4aa5db3b5 100644 --- a/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs_source.html +++ b/20200422010115___m_y_add_compile_job_d_m_api_version_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200422010115___m_y_add_compile_job_d_m_api_version_8cs.html b/20200422010115___m_y_add_compile_job_d_m_api_version_8cs.html index 9eb4f0c4af..f2293e6d06 100644 --- a/20200422010115___m_y_add_compile_job_d_m_api_version_8cs.html +++ b/20200422010115___m_y_add_compile_job_d_m_api_version_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200422010115___m_y_add_compile_job_d_m_api_version_8cs_source.html b/20200422010115___m_y_add_compile_job_d_m_api_version_8cs_source.html index 80402f8a06..c6dbd8297c 100644 --- a/20200422010115___m_y_add_compile_job_d_m_api_version_8cs_source.html +++ b/20200422010115___m_y_add_compile_job_d_m_api_version_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs.html b/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs.html index a998ebf5fc..9f9b3db134 100644 --- a/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs.html +++ b/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs_source.html b/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs_source.html index 23b85ed712..665f8e3190 100644 --- a/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs_source.html +++ b/20200423003841___m_y_checkpoint_rebuild_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423003841___m_y_checkpoint_rebuild_8cs.html b/20200423003841___m_y_checkpoint_rebuild_8cs.html index 15887a74d6..8b5dde8d41 100644 --- a/20200423003841___m_y_checkpoint_rebuild_8cs.html +++ b/20200423003841___m_y_checkpoint_rebuild_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423003841___m_y_checkpoint_rebuild_8cs_source.html b/20200423003841___m_y_checkpoint_rebuild_8cs_source.html index b4c8a23f9a..a0c5cdaf0d 100644 --- a/20200423003841___m_y_checkpoint_rebuild_8cs_source.html +++ b/20200423003841___m_y_checkpoint_rebuild_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs.html b/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs.html index 59ec82de87..a9fd079ec3 100644 --- a/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs.html +++ b/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs_source.html b/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs_source.html index 4a94d386ef..784a2b9e30 100644 --- a/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs_source.html +++ b/20200423004015___m_s_checkpoint_rebuild_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423004015___m_s_checkpoint_rebuild_8cs.html b/20200423004015___m_s_checkpoint_rebuild_8cs.html index 5053064de8..ab089b1930 100644 --- a/20200423004015___m_s_checkpoint_rebuild_8cs.html +++ b/20200423004015___m_s_checkpoint_rebuild_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423004015___m_s_checkpoint_rebuild_8cs_source.html b/20200423004015___m_s_checkpoint_rebuild_8cs_source.html index cb0c48dd3e..5bcfa9b50e 100644 --- a/20200423004015___m_s_checkpoint_rebuild_8cs_source.html +++ b/20200423004015___m_s_checkpoint_rebuild_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs.html b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs.html index 97124c9bab..439fb82488 100644 --- a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs.html +++ b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html index 43a5267c63..8cc5ad79a6 100644 --- a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html +++ b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs.html b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs.html index 6e007ae173..7505b73170 100644 --- a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs.html +++ b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs_source.html b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs_source.html index 28a9527300..6ed8ad3fb6 100644 --- a/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs_source.html +++ b/20200423052142___m_s_kill_jsons_add_d_m_api_version_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs.html b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs.html index e04b61431b..53fad6f5c9 100644 --- a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs.html +++ b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html index 4084f8ecf6..6ee697741e 100644 --- a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html +++ b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs.html b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs.html index 47ca6e97e6..6ba0473830 100644 --- a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs.html +++ b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs_source.html b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs_source.html index bf7f121593..e5dcbc75aa 100644 --- a/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs_source.html +++ b/20200423052709___m_y_kill_jsons_add_d_m_api_version_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200425024433___m_s_add_job_error_codes_8_designer_8cs.html b/20200425024433___m_s_add_job_error_codes_8_designer_8cs.html index bc46ea0e15..71e47bd288 100644 --- a/20200425024433___m_s_add_job_error_codes_8_designer_8cs.html +++ b/20200425024433___m_s_add_job_error_codes_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200425024433___m_s_add_job_error_codes_8_designer_8cs_source.html b/20200425024433___m_s_add_job_error_codes_8_designer_8cs_source.html index 479fb27811..6a17829f20 100644 --- a/20200425024433___m_s_add_job_error_codes_8_designer_8cs_source.html +++ b/20200425024433___m_s_add_job_error_codes_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200425024433___m_s_add_job_error_codes_8cs.html b/20200425024433___m_s_add_job_error_codes_8cs.html index 2a6a1bcd23..78f8a73516 100644 --- a/20200425024433___m_s_add_job_error_codes_8cs.html +++ b/20200425024433___m_s_add_job_error_codes_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200425024433___m_s_add_job_error_codes_8cs_source.html b/20200425024433___m_s_add_job_error_codes_8cs_source.html index 4f652bf9d7..b434f0dcdd 100644 --- a/20200425024433___m_s_add_job_error_codes_8cs_source.html +++ b/20200425024433___m_s_add_job_error_codes_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200425024953___m_y_add_job_error_codes_8_designer_8cs.html b/20200425024953___m_y_add_job_error_codes_8_designer_8cs.html index 6e23f8a4f0..2ff1e9eace 100644 --- a/20200425024953___m_y_add_job_error_codes_8_designer_8cs.html +++ b/20200425024953___m_y_add_job_error_codes_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200425024953___m_y_add_job_error_codes_8_designer_8cs_source.html b/20200425024953___m_y_add_job_error_codes_8_designer_8cs_source.html index bb5f9fbb2e..bee488f012 100644 --- a/20200425024953___m_y_add_job_error_codes_8_designer_8cs_source.html +++ b/20200425024953___m_y_add_job_error_codes_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200425024953___m_y_add_job_error_codes_8cs.html b/20200425024953___m_y_add_job_error_codes_8cs.html index 3fc1be5cff..55b52e4b58 100644 --- a/20200425024953___m_y_add_job_error_codes_8cs.html +++ b/20200425024953___m_y_add_job_error_codes_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200425024953___m_y_add_job_error_codes_8cs_source.html b/20200425024953___m_y_add_job_error_codes_8cs_source.html index 2c7796aea7..35213ff898 100644 --- a/20200425024953___m_y_add_job_error_codes_8cs_source.html +++ b/20200425024953___m_y_add_job_error_codes_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427173852___m_s_fix_cascading_delete_8_designer_8cs.html b/20200427173852___m_s_fix_cascading_delete_8_designer_8cs.html index 55f71a1908..d22b30aeaa 100644 --- a/20200427173852___m_s_fix_cascading_delete_8_designer_8cs.html +++ b/20200427173852___m_s_fix_cascading_delete_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427173852___m_s_fix_cascading_delete_8_designer_8cs_source.html b/20200427173852___m_s_fix_cascading_delete_8_designer_8cs_source.html index 2d44aee996..50f2814142 100644 --- a/20200427173852___m_s_fix_cascading_delete_8_designer_8cs_source.html +++ b/20200427173852___m_s_fix_cascading_delete_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427173852___m_s_fix_cascading_delete_8cs.html b/20200427173852___m_s_fix_cascading_delete_8cs.html index cc4069156a..1741a904d6 100644 --- a/20200427173852___m_s_fix_cascading_delete_8cs.html +++ b/20200427173852___m_s_fix_cascading_delete_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427173852___m_s_fix_cascading_delete_8cs_source.html b/20200427173852___m_s_fix_cascading_delete_8cs_source.html index 2d705c3242..2728afe5d5 100644 --- a/20200427173852___m_s_fix_cascading_delete_8cs_source.html +++ b/20200427173852___m_s_fix_cascading_delete_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427180159___m_y_fix_cascading_delete_8_designer_8cs.html b/20200427180159___m_y_fix_cascading_delete_8_designer_8cs.html index f95f6f7b14..64da62994c 100644 --- a/20200427180159___m_y_fix_cascading_delete_8_designer_8cs.html +++ b/20200427180159___m_y_fix_cascading_delete_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427180159___m_y_fix_cascading_delete_8_designer_8cs_source.html b/20200427180159___m_y_fix_cascading_delete_8_designer_8cs_source.html index 4938d845a4..4090c65111 100644 --- a/20200427180159___m_y_fix_cascading_delete_8_designer_8cs_source.html +++ b/20200427180159___m_y_fix_cascading_delete_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427180159___m_y_fix_cascading_delete_8cs.html b/20200427180159___m_y_fix_cascading_delete_8cs.html index ad196990b8..ac4e9f87f1 100644 --- a/20200427180159___m_y_fix_cascading_delete_8cs.html +++ b/20200427180159___m_y_fix_cascading_delete_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427180159___m_y_fix_cascading_delete_8cs_source.html b/20200427180159___m_y_fix_cascading_delete_8cs_source.html index 89bf201c96..7676965b73 100644 --- a/20200427180159___m_y_fix_cascading_delete_8cs_source.html +++ b/20200427180159___m_y_fix_cascading_delete_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427180904___s_l_rebuild_8_designer_8cs.html b/20200427180904___s_l_rebuild_8_designer_8cs.html index 9b53428e13..15dbd37a72 100644 --- a/20200427180904___s_l_rebuild_8_designer_8cs.html +++ b/20200427180904___s_l_rebuild_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427180904___s_l_rebuild_8_designer_8cs_source.html b/20200427180904___s_l_rebuild_8_designer_8cs_source.html index 73a2cbf3f3..2f7987d760 100644 --- a/20200427180904___s_l_rebuild_8_designer_8cs_source.html +++ b/20200427180904___s_l_rebuild_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427180904___s_l_rebuild_8cs.html b/20200427180904___s_l_rebuild_8cs.html index 5c7e99de60..2905c4121a 100644 --- a/20200427180904___s_l_rebuild_8cs.html +++ b/20200427180904___s_l_rebuild_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200427180904___s_l_rebuild_8cs_source.html b/20200427180904___s_l_rebuild_8cs_source.html index 6be5609945..5834ba6bb4 100644 --- a/20200427180904___s_l_rebuild_8cs_source.html +++ b/20200427180904___s_l_rebuild_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511005957___m_s_add_heartbeat_8_designer_8cs.html b/20200511005957___m_s_add_heartbeat_8_designer_8cs.html index 5e08a46507..df11a28a29 100644 --- a/20200511005957___m_s_add_heartbeat_8_designer_8cs.html +++ b/20200511005957___m_s_add_heartbeat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511005957___m_s_add_heartbeat_8_designer_8cs_source.html b/20200511005957___m_s_add_heartbeat_8_designer_8cs_source.html index 1d6c493203..10d7c71e93 100644 --- a/20200511005957___m_s_add_heartbeat_8_designer_8cs_source.html +++ b/20200511005957___m_s_add_heartbeat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511005957___m_s_add_heartbeat_8cs.html b/20200511005957___m_s_add_heartbeat_8cs.html index f24dc28e9d..7f35d4bee2 100644 --- a/20200511005957___m_s_add_heartbeat_8cs.html +++ b/20200511005957___m_s_add_heartbeat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511005957___m_s_add_heartbeat_8cs_source.html b/20200511005957___m_s_add_heartbeat_8cs_source.html index cc86855fe3..0d515f2fdb 100644 --- a/20200511005957___m_s_add_heartbeat_8cs_source.html +++ b/20200511005957___m_s_add_heartbeat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511011048___m_y_add_heartbeat_8_designer_8cs.html b/20200511011048___m_y_add_heartbeat_8_designer_8cs.html index 82085150e6..2d29a8f1bf 100644 --- a/20200511011048___m_y_add_heartbeat_8_designer_8cs.html +++ b/20200511011048___m_y_add_heartbeat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511011048___m_y_add_heartbeat_8_designer_8cs_source.html b/20200511011048___m_y_add_heartbeat_8_designer_8cs_source.html index 00e5a4148b..d6022687fc 100644 --- a/20200511011048___m_y_add_heartbeat_8_designer_8cs_source.html +++ b/20200511011048___m_y_add_heartbeat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511011048___m_y_add_heartbeat_8cs.html b/20200511011048___m_y_add_heartbeat_8cs.html index 1080b7cbd9..f1c2758828 100644 --- a/20200511011048___m_y_add_heartbeat_8cs.html +++ b/20200511011048___m_y_add_heartbeat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511011048___m_y_add_heartbeat_8cs_source.html b/20200511011048___m_y_add_heartbeat_8cs_source.html index 814b51e788..42aa68305c 100644 --- a/20200511011048___m_y_add_heartbeat_8cs_source.html +++ b/20200511011048___m_y_add_heartbeat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511012117___s_l_add_heartbeat_8_designer_8cs.html b/20200511012117___s_l_add_heartbeat_8_designer_8cs.html index 2419189d66..72921f8226 100644 --- a/20200511012117___s_l_add_heartbeat_8_designer_8cs.html +++ b/20200511012117___s_l_add_heartbeat_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511012117___s_l_add_heartbeat_8_designer_8cs_source.html b/20200511012117___s_l_add_heartbeat_8_designer_8cs_source.html index 1824fa76cb..6fea46163a 100644 --- a/20200511012117___s_l_add_heartbeat_8_designer_8cs_source.html +++ b/20200511012117___s_l_add_heartbeat_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511012117___s_l_add_heartbeat_8cs.html b/20200511012117___s_l_add_heartbeat_8cs.html index a86076d251..c203fe195f 100644 --- a/20200511012117___s_l_add_heartbeat_8cs.html +++ b/20200511012117___s_l_add_heartbeat_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511012117___s_l_add_heartbeat_8cs_source.html b/20200511012117___s_l_add_heartbeat_8cs_source.html index 91c5aa05d9..359e691e75 100644 --- a/20200511012117___s_l_add_heartbeat_8cs_source.html +++ b/20200511012117___s_l_add_heartbeat_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511162912___s_l_remove_soft_columns_8_designer_8cs.html b/20200511162912___s_l_remove_soft_columns_8_designer_8cs.html index cff4f41cab..b0ee57b7b5 100644 --- a/20200511162912___s_l_remove_soft_columns_8_designer_8cs.html +++ b/20200511162912___s_l_remove_soft_columns_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511162912___s_l_remove_soft_columns_8_designer_8cs_source.html b/20200511162912___s_l_remove_soft_columns_8_designer_8cs_source.html index f144875d6a..03009a3b63 100644 --- a/20200511162912___s_l_remove_soft_columns_8_designer_8cs_source.html +++ b/20200511162912___s_l_remove_soft_columns_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511162912___s_l_remove_soft_columns_8cs.html b/20200511162912___s_l_remove_soft_columns_8cs.html index 240a7bcd41..049ab89db6 100644 --- a/20200511162912___s_l_remove_soft_columns_8cs.html +++ b/20200511162912___s_l_remove_soft_columns_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200511162912___s_l_remove_soft_columns_8cs_source.html b/20200511162912___s_l_remove_soft_columns_8cs_source.html index 4d472d74e1..c098f82769 100644 --- a/20200511162912___s_l_remove_soft_columns_8cs_source.html +++ b/20200511162912___s_l_remove_soft_columns_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200512181801___m_s_remove_soft_columns_8_designer_8cs.html b/20200512181801___m_s_remove_soft_columns_8_designer_8cs.html index 4fe1eec189..dab801448b 100644 --- a/20200512181801___m_s_remove_soft_columns_8_designer_8cs.html +++ b/20200512181801___m_s_remove_soft_columns_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200512181801___m_s_remove_soft_columns_8_designer_8cs_source.html b/20200512181801___m_s_remove_soft_columns_8_designer_8cs_source.html index e7d1db4909..787c4305ed 100644 --- a/20200512181801___m_s_remove_soft_columns_8_designer_8cs_source.html +++ b/20200512181801___m_s_remove_soft_columns_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200512181801___m_s_remove_soft_columns_8cs.html b/20200512181801___m_s_remove_soft_columns_8cs.html index fe34fac901..9416084b2f 100644 --- a/20200512181801___m_s_remove_soft_columns_8cs.html +++ b/20200512181801___m_s_remove_soft_columns_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200512181801___m_s_remove_soft_columns_8cs_source.html b/20200512181801___m_s_remove_soft_columns_8cs_source.html index 43676c0288..b5a5864813 100644 --- a/20200512181801___m_s_remove_soft_columns_8cs_source.html +++ b/20200512181801___m_s_remove_soft_columns_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200512182535___m_y_remove_soft_columns_8_designer_8cs.html b/20200512182535___m_y_remove_soft_columns_8_designer_8cs.html index bf3a62672e..575174bcc2 100644 --- a/20200512182535___m_y_remove_soft_columns_8_designer_8cs.html +++ b/20200512182535___m_y_remove_soft_columns_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200512182535___m_y_remove_soft_columns_8_designer_8cs_source.html b/20200512182535___m_y_remove_soft_columns_8_designer_8cs_source.html index aeef528a51..47d512119a 100644 --- a/20200512182535___m_y_remove_soft_columns_8_designer_8cs_source.html +++ b/20200512182535___m_y_remove_soft_columns_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200512182535___m_y_remove_soft_columns_8cs.html b/20200512182535___m_y_remove_soft_columns_8cs.html index 52a13cfd14..461386c480 100644 --- a/20200512182535___m_y_remove_soft_columns_8cs.html +++ b/20200512182535___m_y_remove_soft_columns_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200512182535___m_y_remove_soft_columns_8cs_source.html b/20200512182535___m_y_remove_soft_columns_8cs_source.html index 13b2c1489f..de5480afa4 100644 --- a/20200512182535___m_y_remove_soft_columns_8cs_source.html +++ b/20200512182535___m_y_remove_soft_columns_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200516111712___p_g_create_8_designer_8cs.html b/20200516111712___p_g_create_8_designer_8cs.html index 815c7fa0cc..16f10e639c 100644 --- a/20200516111712___p_g_create_8_designer_8cs.html +++ b/20200516111712___p_g_create_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200516111712___p_g_create_8_designer_8cs_source.html b/20200516111712___p_g_create_8_designer_8cs_source.html index 624ed70763..bbad940321 100644 --- a/20200516111712___p_g_create_8_designer_8cs_source.html +++ b/20200516111712___p_g_create_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200516111712___p_g_create_8cs.html b/20200516111712___p_g_create_8cs.html index 01fb303b83..aa3f151cdb 100644 --- a/20200516111712___p_g_create_8cs.html +++ b/20200516111712___p_g_create_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200516111712___p_g_create_8cs_source.html b/20200516111712___p_g_create_8cs_source.html index bad178e150..d5aad4ab12 100644 --- a/20200516111712___p_g_create_8cs_source.html +++ b/20200516111712___p_g_create_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200529171541___m_y_fix_foreign_key_8_designer_8cs.html b/20200529171541___m_y_fix_foreign_key_8_designer_8cs.html index a0c5666597..caed0efa34 100644 --- a/20200529171541___m_y_fix_foreign_key_8_designer_8cs.html +++ b/20200529171541___m_y_fix_foreign_key_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200529171541___m_y_fix_foreign_key_8_designer_8cs_source.html b/20200529171541___m_y_fix_foreign_key_8_designer_8cs_source.html index c26f8fd8e7..3ba568cfec 100644 --- a/20200529171541___m_y_fix_foreign_key_8_designer_8cs_source.html +++ b/20200529171541___m_y_fix_foreign_key_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200529171541___m_y_fix_foreign_key_8cs.html b/20200529171541___m_y_fix_foreign_key_8cs.html index dd8b5016a4..efcaf5a898 100644 --- a/20200529171541___m_y_fix_foreign_key_8cs.html +++ b/20200529171541___m_y_fix_foreign_key_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200529171541___m_y_fix_foreign_key_8cs_source.html b/20200529171541___m_y_fix_foreign_key_8cs_source.html index 98da2b63de..fc3cf58ea1 100644 --- a/20200529171541___m_y_fix_foreign_key_8cs_source.html +++ b/20200529171541___m_y_fix_foreign_key_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616175424___m_s_topic_timeout_8_designer_8cs.html b/20200616175424___m_s_topic_timeout_8_designer_8cs.html index 54cc715c36..86d27d4237 100644 --- a/20200616175424___m_s_topic_timeout_8_designer_8cs.html +++ b/20200616175424___m_s_topic_timeout_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616175424___m_s_topic_timeout_8_designer_8cs_source.html b/20200616175424___m_s_topic_timeout_8_designer_8cs_source.html index 5ddd72b734..ad0c82ac0f 100644 --- a/20200616175424___m_s_topic_timeout_8_designer_8cs_source.html +++ b/20200616175424___m_s_topic_timeout_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616175424___m_s_topic_timeout_8cs.html b/20200616175424___m_s_topic_timeout_8cs.html index 66b972f05f..581fac6754 100644 --- a/20200616175424___m_s_topic_timeout_8cs.html +++ b/20200616175424___m_s_topic_timeout_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616175424___m_s_topic_timeout_8cs_source.html b/20200616175424___m_s_topic_timeout_8cs_source.html index 624c33a118..cb1e5eb817 100644 --- a/20200616175424___m_s_topic_timeout_8cs_source.html +++ b/20200616175424___m_s_topic_timeout_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616175535___m_y_topic_timeout_8_designer_8cs.html b/20200616175535___m_y_topic_timeout_8_designer_8cs.html index 0e963f4975..a88425ed41 100644 --- a/20200616175535___m_y_topic_timeout_8_designer_8cs.html +++ b/20200616175535___m_y_topic_timeout_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616175535___m_y_topic_timeout_8_designer_8cs_source.html b/20200616175535___m_y_topic_timeout_8_designer_8cs_source.html index bf7b6abc40..c5dc1f9f28 100644 --- a/20200616175535___m_y_topic_timeout_8_designer_8cs_source.html +++ b/20200616175535___m_y_topic_timeout_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616175535___m_y_topic_timeout_8cs.html b/20200616175535___m_y_topic_timeout_8cs.html index 7b73dec049..fb7afc7c24 100644 --- a/20200616175535___m_y_topic_timeout_8cs.html +++ b/20200616175535___m_y_topic_timeout_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616175535___m_y_topic_timeout_8cs_source.html b/20200616175535___m_y_topic_timeout_8cs_source.html index c7fe779a96..295dda1d8c 100644 --- a/20200616175535___m_y_topic_timeout_8cs_source.html +++ b/20200616175535___m_y_topic_timeout_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616180742___s_l_topic_timeout_8_designer_8cs.html b/20200616180742___s_l_topic_timeout_8_designer_8cs.html index 2aeab6d812..7031a5a417 100644 --- a/20200616180742___s_l_topic_timeout_8_designer_8cs.html +++ b/20200616180742___s_l_topic_timeout_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616180742___s_l_topic_timeout_8_designer_8cs_source.html b/20200616180742___s_l_topic_timeout_8_designer_8cs_source.html index 1e6cd3d00d..60103f11eb 100644 --- a/20200616180742___s_l_topic_timeout_8_designer_8cs_source.html +++ b/20200616180742___s_l_topic_timeout_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616180742___s_l_topic_timeout_8cs.html b/20200616180742___s_l_topic_timeout_8cs.html index de5dceb2d1..51ade37176 100644 --- a/20200616180742___s_l_topic_timeout_8cs.html +++ b/20200616180742___s_l_topic_timeout_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616180742___s_l_topic_timeout_8cs_source.html b/20200616180742___s_l_topic_timeout_8cs_source.html index c704aa4c45..e53a5fee5e 100644 --- a/20200616180742___s_l_topic_timeout_8cs_source.html +++ b/20200616180742___s_l_topic_timeout_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616180842___p_g_topic_timeout_8_designer_8cs.html b/20200616180842___p_g_topic_timeout_8_designer_8cs.html index c5dd6e4151..c522b7337a 100644 --- a/20200616180842___p_g_topic_timeout_8_designer_8cs.html +++ b/20200616180842___p_g_topic_timeout_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616180842___p_g_topic_timeout_8_designer_8cs_source.html b/20200616180842___p_g_topic_timeout_8_designer_8cs_source.html index d36a2c8d96..379543d033 100644 --- a/20200616180842___p_g_topic_timeout_8_designer_8cs_source.html +++ b/20200616180842___p_g_topic_timeout_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616180842___p_g_topic_timeout_8cs.html b/20200616180842___p_g_topic_timeout_8cs.html index 9e32b6f98b..36faf36acc 100644 --- a/20200616180842___p_g_topic_timeout_8cs.html +++ b/20200616180842___p_g_topic_timeout_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200616180842___p_g_topic_timeout_8cs_source.html b/20200616180842___p_g_topic_timeout_8cs_source.html index 491c504e1a..1cefd30a2e 100644 --- a/20200616180842___p_g_topic_timeout_8cs_source.html +++ b/20200616180842___p_g_topic_timeout_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184803___m_s_remove_experimental_watchdog_8_designer_8cs.html b/20200629184803___m_s_remove_experimental_watchdog_8_designer_8cs.html index 46ae481234..4e9b3215d0 100644 --- a/20200629184803___m_s_remove_experimental_watchdog_8_designer_8cs.html +++ b/20200629184803___m_s_remove_experimental_watchdog_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184803___m_s_remove_experimental_watchdog_8_designer_8cs_source.html b/20200629184803___m_s_remove_experimental_watchdog_8_designer_8cs_source.html index 274a5a58a6..16a6953853 100644 --- a/20200629184803___m_s_remove_experimental_watchdog_8_designer_8cs_source.html +++ b/20200629184803___m_s_remove_experimental_watchdog_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184803___m_s_remove_experimental_watchdog_8cs.html b/20200629184803___m_s_remove_experimental_watchdog_8cs.html index 1d93191f84..b4cd4d44cc 100644 --- a/20200629184803___m_s_remove_experimental_watchdog_8cs.html +++ b/20200629184803___m_s_remove_experimental_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184803___m_s_remove_experimental_watchdog_8cs_source.html b/20200629184803___m_s_remove_experimental_watchdog_8cs_source.html index bfd42e92f0..2592e6dbcc 100644 --- a/20200629184803___m_s_remove_experimental_watchdog_8cs_source.html +++ b/20200629184803___m_s_remove_experimental_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184843___m_y_remove_experimental_watchdog_8_designer_8cs.html b/20200629184843___m_y_remove_experimental_watchdog_8_designer_8cs.html index 04632544a2..2049b63db0 100644 --- a/20200629184843___m_y_remove_experimental_watchdog_8_designer_8cs.html +++ b/20200629184843___m_y_remove_experimental_watchdog_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184843___m_y_remove_experimental_watchdog_8_designer_8cs_source.html b/20200629184843___m_y_remove_experimental_watchdog_8_designer_8cs_source.html index 7657273c34..440f49c10c 100644 --- a/20200629184843___m_y_remove_experimental_watchdog_8_designer_8cs_source.html +++ b/20200629184843___m_y_remove_experimental_watchdog_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184843___m_y_remove_experimental_watchdog_8cs.html b/20200629184843___m_y_remove_experimental_watchdog_8cs.html index 5037122b01..193a5aca5a 100644 --- a/20200629184843___m_y_remove_experimental_watchdog_8cs.html +++ b/20200629184843___m_y_remove_experimental_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184843___m_y_remove_experimental_watchdog_8cs_source.html b/20200629184843___m_y_remove_experimental_watchdog_8cs_source.html index 9468520f6a..4f0490d5cf 100644 --- a/20200629184843___m_y_remove_experimental_watchdog_8cs_source.html +++ b/20200629184843___m_y_remove_experimental_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184928___p_g_remove_experimental_watchdog_8_designer_8cs.html b/20200629184928___p_g_remove_experimental_watchdog_8_designer_8cs.html index fe87d2f615..cbd8054574 100644 --- a/20200629184928___p_g_remove_experimental_watchdog_8_designer_8cs.html +++ b/20200629184928___p_g_remove_experimental_watchdog_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184928___p_g_remove_experimental_watchdog_8_designer_8cs_source.html b/20200629184928___p_g_remove_experimental_watchdog_8_designer_8cs_source.html index da116ad749..b9e4b57e84 100644 --- a/20200629184928___p_g_remove_experimental_watchdog_8_designer_8cs_source.html +++ b/20200629184928___p_g_remove_experimental_watchdog_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184928___p_g_remove_experimental_watchdog_8cs.html b/20200629184928___p_g_remove_experimental_watchdog_8cs.html index 25a0871b30..3d0a563df8 100644 --- a/20200629184928___p_g_remove_experimental_watchdog_8cs.html +++ b/20200629184928___p_g_remove_experimental_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629184928___p_g_remove_experimental_watchdog_8cs_source.html b/20200629184928___p_g_remove_experimental_watchdog_8cs_source.html index 070d131e7c..e2f2ae135a 100644 --- a/20200629184928___p_g_remove_experimental_watchdog_8cs_source.html +++ b/20200629184928___p_g_remove_experimental_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629185014___s_l_remove_experimental_watchdog_8_designer_8cs.html b/20200629185014___s_l_remove_experimental_watchdog_8_designer_8cs.html index 36d0c704d2..715c97418e 100644 --- a/20200629185014___s_l_remove_experimental_watchdog_8_designer_8cs.html +++ b/20200629185014___s_l_remove_experimental_watchdog_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629185014___s_l_remove_experimental_watchdog_8_designer_8cs_source.html b/20200629185014___s_l_remove_experimental_watchdog_8_designer_8cs_source.html index adf5b17f28..b25c874d9a 100644 --- a/20200629185014___s_l_remove_experimental_watchdog_8_designer_8cs_source.html +++ b/20200629185014___s_l_remove_experimental_watchdog_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629185014___s_l_remove_experimental_watchdog_8cs.html b/20200629185014___s_l_remove_experimental_watchdog_8cs.html index 2e6275de87..22b6198fd2 100644 --- a/20200629185014___s_l_remove_experimental_watchdog_8cs.html +++ b/20200629185014___s_l_remove_experimental_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200629185014___s_l_remove_experimental_watchdog_8cs_source.html b/20200629185014___s_l_remove_experimental_watchdog_8cs_source.html index 5cc3277335..4bd3d1e86e 100644 --- a/20200629185014___s_l_remove_experimental_watchdog_8cs_source.html +++ b/20200629185014___s_l_remove_experimental_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163512___m_s_allow_null_d_m_api_8_designer_8cs.html b/20200705163512___m_s_allow_null_d_m_api_8_designer_8cs.html index b39fb6f84b..0e2cc01d2b 100644 --- a/20200705163512___m_s_allow_null_d_m_api_8_designer_8cs.html +++ b/20200705163512___m_s_allow_null_d_m_api_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163512___m_s_allow_null_d_m_api_8_designer_8cs_source.html b/20200705163512___m_s_allow_null_d_m_api_8_designer_8cs_source.html index c096f4f9e0..b788936729 100644 --- a/20200705163512___m_s_allow_null_d_m_api_8_designer_8cs_source.html +++ b/20200705163512___m_s_allow_null_d_m_api_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163512___m_s_allow_null_d_m_api_8cs.html b/20200705163512___m_s_allow_null_d_m_api_8cs.html index 29ddc7b70e..93ac2b087e 100644 --- a/20200705163512___m_s_allow_null_d_m_api_8cs.html +++ b/20200705163512___m_s_allow_null_d_m_api_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163512___m_s_allow_null_d_m_api_8cs_source.html b/20200705163512___m_s_allow_null_d_m_api_8cs_source.html index 991b180709..cf3bc3e1bb 100644 --- a/20200705163512___m_s_allow_null_d_m_api_8cs_source.html +++ b/20200705163512___m_s_allow_null_d_m_api_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163547___m_y_allow_null_d_m_api_8_designer_8cs.html b/20200705163547___m_y_allow_null_d_m_api_8_designer_8cs.html index 8c7dc9388c..1b90239f19 100644 --- a/20200705163547___m_y_allow_null_d_m_api_8_designer_8cs.html +++ b/20200705163547___m_y_allow_null_d_m_api_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163547___m_y_allow_null_d_m_api_8_designer_8cs_source.html b/20200705163547___m_y_allow_null_d_m_api_8_designer_8cs_source.html index d83e35a79c..3720c05a8a 100644 --- a/20200705163547___m_y_allow_null_d_m_api_8_designer_8cs_source.html +++ b/20200705163547___m_y_allow_null_d_m_api_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163547___m_y_allow_null_d_m_api_8cs.html b/20200705163547___m_y_allow_null_d_m_api_8cs.html index 18ad7100c3..1f655cb997 100644 --- a/20200705163547___m_y_allow_null_d_m_api_8cs.html +++ b/20200705163547___m_y_allow_null_d_m_api_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163547___m_y_allow_null_d_m_api_8cs_source.html b/20200705163547___m_y_allow_null_d_m_api_8cs_source.html index 65c866274a..4002da60ec 100644 --- a/20200705163547___m_y_allow_null_d_m_api_8cs_source.html +++ b/20200705163547___m_y_allow_null_d_m_api_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163624___p_g_allow_null_d_m_api_8_designer_8cs.html b/20200705163624___p_g_allow_null_d_m_api_8_designer_8cs.html index c7d36648b1..ce1265d850 100644 --- a/20200705163624___p_g_allow_null_d_m_api_8_designer_8cs.html +++ b/20200705163624___p_g_allow_null_d_m_api_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163624___p_g_allow_null_d_m_api_8_designer_8cs_source.html b/20200705163624___p_g_allow_null_d_m_api_8_designer_8cs_source.html index cabf9757a6..b89af12b93 100644 --- a/20200705163624___p_g_allow_null_d_m_api_8_designer_8cs_source.html +++ b/20200705163624___p_g_allow_null_d_m_api_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163624___p_g_allow_null_d_m_api_8cs.html b/20200705163624___p_g_allow_null_d_m_api_8cs.html index 6c20c0b57c..4f6feec533 100644 --- a/20200705163624___p_g_allow_null_d_m_api_8cs.html +++ b/20200705163624___p_g_allow_null_d_m_api_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163624___p_g_allow_null_d_m_api_8cs_source.html b/20200705163624___p_g_allow_null_d_m_api_8cs_source.html index 33b8b53339..3cf71f7eab 100644 --- a/20200705163624___p_g_allow_null_d_m_api_8cs_source.html +++ b/20200705163624___p_g_allow_null_d_m_api_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163700___s_l_allow_null_d_m_api_8_designer_8cs.html b/20200705163700___s_l_allow_null_d_m_api_8_designer_8cs.html index 42028053a2..fa6fd8a8b2 100644 --- a/20200705163700___s_l_allow_null_d_m_api_8_designer_8cs.html +++ b/20200705163700___s_l_allow_null_d_m_api_8_designer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163700___s_l_allow_null_d_m_api_8_designer_8cs_source.html b/20200705163700___s_l_allow_null_d_m_api_8_designer_8cs_source.html index 795977c61b..8427efe9c9 100644 --- a/20200705163700___s_l_allow_null_d_m_api_8_designer_8cs_source.html +++ b/20200705163700___s_l_allow_null_d_m_api_8_designer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163700___s_l_allow_null_d_m_api_8cs.html b/20200705163700___s_l_allow_null_d_m_api_8cs.html index df2b1a14ef..b37939d5da 100644 --- a/20200705163700___s_l_allow_null_d_m_api_8cs.html +++ b/20200705163700___s_l_allow_null_d_m_api_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/20200705163700___s_l_allow_null_d_m_api_8cs_source.html b/20200705163700___s_l_allow_null_d_m_api_8cs_source.html index c6d2311f4a..612bfac7dc 100644 --- a/20200705163700___s_l_allow_null_d_m_api_8cs_source.html +++ b/20200705163700___s_l_allow_null_d_m_api_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_a_p_i_8dox.html b/_a_p_i_8dox.html index 57ffd64eeb..c925d77c3a 100644 --- a/_a_p_i_8dox.html +++ b/_a_p_i_8dox.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_administration_8cs.html b/_administration_8cs.html index 23bf054df6..4e3098498b 100644 --- a/_administration_8cs.html +++ b/_administration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_administration_8cs_source.html b/_administration_8cs_source.html index 19c5cd1e27..24b9976380 100644 --- a/_administration_8cs_source.html +++ b/_administration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_administration_client_8cs.html b/_administration_client_8cs.html index 4af8f8bed0..81905cec54 100644 --- a/_administration_client_8cs.html +++ b/_administration_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_administration_client_8cs_source.html b/_administration_client_8cs_source.html index d78ed530b8..0515806863 100644 --- a/_administration_client_8cs_source.html +++ b/_administration_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_administration_controller_8cs.html b/_administration_controller_8cs.html index ac82fe3b69..9700468a5c 100644 --- a/_administration_controller_8cs.html +++ b/_administration_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_administration_controller_8cs_source.html b/_administration_controller_8cs_source.html index 399b885efa..03128ef5f2 100644 --- a/_administration_controller_8cs_source.html +++ b/_administration_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_administration_rights_8cs.html b/_administration_rights_8cs.html index 01a631f1f1..7271e4c7b7 100644 --- a/_administration_rights_8cs.html +++ b/_administration_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_administration_rights_8cs_source.html b/_administration_rights_8cs_source.html index e075175353..bcf08a0e01 100644 --- a/_administration_rights_8cs_source.html +++ b/_administration_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_client_8cs.html b/_api_client_8cs.html index e9e4b3f92c..3d951560e7 100644 --- a/_api_client_8cs.html +++ b/_api_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_client_8cs_source.html b/_api_client_8cs_source.html index 9366a45ee3..70069ae393 100644 --- a/_api_client_8cs_source.html +++ b/_api_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_client_factory_8cs.html b/_api_client_factory_8cs.html index 2a26ac950a..25d51ce0d1 100644 --- a/_api_client_factory_8cs.html +++ b/_api_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_client_factory_8cs_source.html b/_api_client_factory_8cs_source.html index 8aac9dc843..37360eed9f 100644 --- a/_api_client_factory_8cs_source.html +++ b/_api_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_conflict_exception_8cs.html b/_api_conflict_exception_8cs.html index 44be8671f9..6d56b7b9e1 100644 --- a/_api_conflict_exception_8cs.html +++ b/_api_conflict_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_conflict_exception_8cs_source.html b/_api_conflict_exception_8cs_source.html index 8858210926..cadc263e6a 100644 --- a/_api_conflict_exception_8cs_source.html +++ b/_api_conflict_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_controller_8cs.html b/_api_controller_8cs.html index ee2a4071de..4446d4290b 100644 --- a/_api_controller_8cs.html +++ b/_api_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_controller_8cs_source.html b/_api_controller_8cs_source.html index f7b3d06890..22ee219fd0 100644 --- a/_api_controller_8cs_source.html +++ b/_api_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_exception_8cs.html b/_api_exception_8cs.html index 72415444a5..49ee17ad6c 100644 --- a/_api_exception_8cs.html +++ b/_api_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_exception_8cs_source.html b/_api_exception_8cs_source.html index b08009a4f2..3a643d1045 100644 --- a/_api_exception_8cs_source.html +++ b/_api_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_headers_8cs.html b/_api_headers_8cs.html index 571588ecfc..9732a167e9 100644 --- a/_api_headers_8cs.html +++ b/_api_headers_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_headers_8cs_source.html b/_api_headers_8cs_source.html index 59e4db3186..85b151b9bc 100644 --- a/_api_headers_8cs_source.html +++ b/_api_headers_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_validation_status_8cs.html b/_api_validation_status_8cs.html index cd2d4726a3..a9fcf445a1 100644 --- a/_api_validation_status_8cs.html +++ b/_api_validation_status_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_api_validation_status_8cs_source.html b/_api_validation_status_8cs_source.html index 0da08e4c23..e18b0b201e 100644 --- a/_api_validation_status_8cs_source.html +++ b/_api_validation_status_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_application_8cs.html b/_application_8cs.html index 4b638ff416..d4779cfbf0 100644 --- a/_application_8cs.html +++ b/_application_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_application_8cs_source.html b/_application_8cs_source.html index d0655c468a..4b3d6f3c17 100644 --- a/_application_8cs_source.html +++ b/_application_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_application_builder_extensions_8cs.html b/_application_builder_extensions_8cs.html index 6722c01986..b6a1a92cba 100644 --- a/_application_builder_extensions_8cs.html +++ b/_application_builder_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_application_builder_extensions_8cs_source.html b/_application_builder_extensions_8cs_source.html index 1d46df5eda..1100d627ab 100644 --- a/_application_builder_extensions_8cs_source.html +++ b/_application_builder_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_architecture_8dox.html b/_architecture_8dox.html index 44302b5029..5f30f22abd 100644 --- a/_architecture_8dox.html +++ b/_architecture_8dox.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_assembly_information_provider_8cs.html b/_assembly_information_provider_8cs.html index b8e9275a91..3397cc9b83 100644 --- a/_assembly_information_provider_8cs.html +++ b/_assembly_information_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_assembly_information_provider_8cs_source.html b/_assembly_information_provider_8cs_source.html index 945febfc37..91dcc756ed 100644 --- a/_assembly_information_provider_8cs_source.html +++ b/_assembly_information_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_async_delayer_8cs.html b/_async_delayer_8cs.html index c71d108a71..778789d7e9 100644 --- a/_async_delayer_8cs.html +++ b/_async_delayer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_async_delayer_8cs_source.html b/_async_delayer_8cs_source.html index aba1f53cbe..05e3249c52 100644 --- a/_async_delayer_8cs_source.html +++ b/_async_delayer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_authentication_context_8cs.html b/_authentication_context_8cs.html index 461e4f014f..641b4dc9e3 100644 --- a/_authentication_context_8cs.html +++ b/_authentication_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_authentication_context_8cs_source.html b/_authentication_context_8cs_source.html index 5e011f5605..cb19ba325e 100644 --- a/_authentication_context_8cs_source.html +++ b/_authentication_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_authentication_context_factory_8cs.html b/_authentication_context_factory_8cs.html index 1fe349fcad..4e6a15e75a 100644 --- a/_authentication_context_factory_8cs.html +++ b/_authentication_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_authentication_context_factory_8cs_source.html b/_authentication_context_factory_8cs_source.html index acccfff6d6..b4b4708737 100644 --- a/_authentication_context_factory_8cs_source.html +++ b/_authentication_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_basic_watchdog_8cs.html b/_basic_watchdog_8cs.html index 77976f979c..7af6994d8a 100644 --- a/_basic_watchdog_8cs.html +++ b/_basic_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_basic_watchdog_8cs_source.html b/_basic_watchdog_8cs_source.html index a216145767..7c8a9d63ed 100644 --- a/_basic_watchdog_8cs_source.html +++ b/_basic_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bool_converter_8cs.html b/_bool_converter_8cs.html index 6bdf516b29..209692da5a 100644 --- a/_bool_converter_8cs.html +++ b/_bool_converter_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bool_converter_8cs_source.html b/_bool_converter_8cs_source.html index 346c5641fd..a451024cf1 100644 --- a/_bool_converter_8cs_source.html +++ b/_bool_converter_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_command_type_8cs.html b/_bridge_command_type_8cs.html index df5faa3297..590f5f1f21 100644 --- a/_bridge_command_type_8cs.html +++ b/_bridge_command_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_command_type_8cs_source.html b/_bridge_command_type_8cs_source.html index a425268ef3..a307b06868 100644 --- a/_bridge_command_type_8cs_source.html +++ b/_bridge_command_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_controller_8cs.html b/_bridge_controller_8cs.html index 4617c1db29..2a20ab370d 100644 --- a/_bridge_controller_8cs.html +++ b/_bridge_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_controller_8cs_source.html b/_bridge_controller_8cs_source.html index ec81241120..81ee6836f7 100644 --- a/_bridge_controller_8cs_source.html +++ b/_bridge_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_parameters_8cs.html b/_bridge_parameters_8cs.html index fd383cb315..5a36569b5d 100644 --- a/_bridge_parameters_8cs.html +++ b/_bridge_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_parameters_8cs_source.html b/_bridge_parameters_8cs_source.html index df9f7f65fe..d9b00481ee 100644 --- a/_bridge_parameters_8cs_source.html +++ b/_bridge_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_registration_8cs.html b/_bridge_registration_8cs.html index a0cfb1dfdb..a2bc6dc218 100644 --- a/_bridge_registration_8cs.html +++ b/_bridge_registration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_registration_8cs_source.html b/_bridge_registration_8cs_source.html index b1b2a1955f..ae1d83b659 100644 --- a/_bridge_registration_8cs_source.html +++ b/_bridge_registration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_response_8cs.html b/_bridge_response_8cs.html index a82b91f15b..e988f6078f 100644 --- a/_bridge_response_8cs.html +++ b/_bridge_response_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_bridge_response_8cs_source.html b/_bridge_response_8cs_source.html index bb218471b6..e3f8674e88 100644 --- a/_bridge_response_8cs_source.html +++ b/_bridge_response_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_8cs.html b/_byond_8cs.html index 07d367c1ae..7b1c4e0ae4 100644 --- a/_byond_8cs.html +++ b/_byond_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_8cs_source.html b/_byond_8cs_source.html index c55a597307..1bb7a557f2 100644 --- a/_byond_8cs_source.html +++ b/_byond_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_client_8cs.html b/_byond_client_8cs.html index eee61f40cf..3a69449d72 100644 --- a/_byond_client_8cs.html +++ b/_byond_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_client_8cs_source.html b/_byond_client_8cs_source.html index ada4801b6c..94a5f002bc 100644 --- a/_byond_client_8cs_source.html +++ b/_byond_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_command_8cs.html b/_byond_command_8cs.html index 605a7a752c..defc8dc5f8 100644 --- a/_byond_command_8cs.html +++ b/_byond_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_command_8cs_source.html b/_byond_command_8cs_source.html index 2baabd224d..9771c78593 100644 --- a/_byond_command_8cs_source.html +++ b/_byond_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_controller_8cs.html b/_byond_controller_8cs.html index ae5099aae6..06b922098e 100644 --- a/_byond_controller_8cs.html +++ b/_byond_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_controller_8cs_source.html b/_byond_controller_8cs_source.html index 7d8da58918..42d6a5713d 100644 --- a/_byond_controller_8cs_source.html +++ b/_byond_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_executable_lock_8cs.html b/_byond_executable_lock_8cs.html index b04230b417..6ea1f998c4 100644 --- a/_byond_executable_lock_8cs.html +++ b/_byond_executable_lock_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_executable_lock_8cs_source.html b/_byond_executable_lock_8cs_source.html index 1e49ac61d5..e40300df69 100644 --- a/_byond_executable_lock_8cs_source.html +++ b/_byond_executable_lock_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_installer_base_8cs.html b/_byond_installer_base_8cs.html index 7da2521fe7..2d107b8752 100644 --- a/_byond_installer_base_8cs.html +++ b/_byond_installer_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_installer_base_8cs_source.html b/_byond_installer_base_8cs_source.html index 754bdca515..78a8cf6b2c 100644 --- a/_byond_installer_base_8cs_source.html +++ b/_byond_installer_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_manager_8cs.html b/_byond_manager_8cs.html index 6cdf7346aa..776cebbfbd 100644 --- a/_byond_manager_8cs.html +++ b/_byond_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_manager_8cs_source.html b/_byond_manager_8cs_source.html index bed7c02e2a..28a3ae3154 100644 --- a/_byond_manager_8cs_source.html +++ b/_byond_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_rights_8cs.html b/_byond_rights_8cs.html index 756bcfffdd..d533bc7dca 100644 --- a/_byond_rights_8cs.html +++ b/_byond_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_byond_rights_8cs_source.html b/_byond_rights_8cs_source.html index a381d48881..7893ccc3ab 100644 --- a/_byond_rights_8cs_source.html +++ b/_byond_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_channel_mapping_8cs.html b/_channel_mapping_8cs.html index c599e856f4..4e4e1aa8d2 100644 --- a/_channel_mapping_8cs.html +++ b/_channel_mapping_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_channel_mapping_8cs_source.html b/_channel_mapping_8cs_source.html index c789d7c8af..640badc57a 100644 --- a/_channel_mapping_8cs_source.html +++ b/_channel_mapping_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_channel_representation_8cs.html b/_channel_representation_8cs.html index 32da8de89a..d9e60499a7 100644 --- a/_channel_representation_8cs.html +++ b/_channel_representation_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_channel_representation_8cs_source.html b/_channel_representation_8cs_source.html index 2778b28845..4684ff3b7b 100644 --- a/_channel_representation_8cs_source.html +++ b/_channel_representation_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_bot_rights_8cs.html b/_chat_bot_rights_8cs.html index 1866891d9d..030f4037a8 100644 --- a/_chat_bot_rights_8cs.html +++ b/_chat_bot_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_bot_rights_8cs_source.html b/_chat_bot_rights_8cs_source.html index a971e04927..2495084639 100644 --- a/_chat_bot_rights_8cs_source.html +++ b/_chat_bot_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_bots_client_8cs.html b/_chat_bots_client_8cs.html index ad100a3ee1..11302695a8 100644 --- a/_chat_bots_client_8cs.html +++ b/_chat_bots_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_bots_client_8cs_source.html b/_chat_bots_client_8cs_source.html index 95fdc6ba79..eb47563da7 100644 --- a/_chat_bots_client_8cs_source.html +++ b/_chat_bots_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_channel_extensions_8cs.html b/_chat_channel_extensions_8cs.html index e00cfbd8de..bb0f11fa49 100644 --- a/_chat_channel_extensions_8cs.html +++ b/_chat_channel_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_channel_extensions_8cs_source.html b/_chat_channel_extensions_8cs_source.html index 100dd4ba0e..e6d7e8ad8e 100644 --- a/_chat_channel_extensions_8cs_source.html +++ b/_chat_channel_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_command_8cs.html b/_chat_command_8cs.html index 95b7722837..9e022ed33c 100644 --- a/_chat_command_8cs.html +++ b/_chat_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_command_8cs_source.html b/_chat_command_8cs_source.html index a97abeadcd..733b2bb698 100644 --- a/_chat_command_8cs_source.html +++ b/_chat_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_connection_string_builder_8cs.html b/_chat_connection_string_builder_8cs.html index ad930c9739..14d7c259ee 100644 --- a/_chat_connection_string_builder_8cs.html +++ b/_chat_connection_string_builder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_connection_string_builder_8cs_source.html b/_chat_connection_string_builder_8cs_source.html index 2af2c90a40..002409e40e 100644 --- a/_chat_connection_string_builder_8cs_source.html +++ b/_chat_connection_string_builder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_controller_8cs.html b/_chat_controller_8cs.html index c5766b9aac..d62d636d03 100644 --- a/_chat_controller_8cs.html +++ b/_chat_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_controller_8cs_source.html b/_chat_controller_8cs_source.html index fec8f1d7ca..b1eefc1e81 100644 --- a/_chat_controller_8cs_source.html +++ b/_chat_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_manager_8cs.html b/_chat_manager_8cs.html index ce0d9ff36e..b695f81f39 100644 --- a/_chat_manager_8cs.html +++ b/_chat_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_manager_8cs_source.html b/_chat_manager_8cs_source.html index 0cbcdc38c3..45a3df3f15 100644 --- a/_chat_manager_8cs_source.html +++ b/_chat_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_manager_factory_8cs.html b/_chat_manager_factory_8cs.html index 669c2d7ce3..924ddfcb93 100644 --- a/_chat_manager_factory_8cs.html +++ b/_chat_manager_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_manager_factory_8cs_source.html b/_chat_manager_factory_8cs_source.html index 58d4a890d6..0235c58b9f 100644 --- a/_chat_manager_factory_8cs_source.html +++ b/_chat_manager_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_message_8cs.html b/_chat_message_8cs.html index 1363523d89..b3fc7b8719 100644 --- a/_chat_message_8cs.html +++ b/_chat_message_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_message_8cs_source.html b/_chat_message_8cs_source.html index 47034ff283..df4307f577 100644 --- a/_chat_message_8cs_source.html +++ b/_chat_message_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_provider_8cs.html b/_chat_provider_8cs.html index 26baa0a577..32f1f05b7a 100644 --- a/_chat_provider_8cs.html +++ b/_chat_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_provider_8cs_source.html b/_chat_provider_8cs_source.html index 0de2681fa9..095e650329 100644 --- a/_chat_provider_8cs_source.html +++ b/_chat_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_tracking_context_8cs.html b/_chat_tracking_context_8cs.html index 6fcb566739..c58588bbd8 100644 --- a/_chat_tracking_context_8cs.html +++ b/_chat_tracking_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_tracking_context_8cs_source.html b/_chat_tracking_context_8cs_source.html index 71e5429ff5..3d955cffba 100644 --- a/_chat_tracking_context_8cs_source.html +++ b/_chat_tracking_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_update_8cs.html b/_chat_update_8cs.html index b0396f9601..511f3099bf 100644 --- a/_chat_update_8cs.html +++ b/_chat_update_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_update_8cs_source.html b/_chat_update_8cs_source.html index 6be4684da3..8aa49fc2aa 100644 --- a/_chat_update_8cs_source.html +++ b/_chat_update_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_user_8cs.html b/_chat_user_8cs.html index d520f3fb34..763e5d70d4 100644 --- a/_chat_user_8cs.html +++ b/_chat_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_chat_user_8cs_source.html b/_chat_user_8cs_source.html index 6b1aa93363..b821b15062 100644 --- a/_chat_user_8cs_source.html +++ b/_chat_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_claims_injector_8cs.html b/_claims_injector_8cs.html index f9006e5526..d8183a9fcb 100644 --- a/_claims_injector_8cs.html +++ b/_claims_injector_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_claims_injector_8cs_source.html b/_claims_injector_8cs_source.html index 5a9cc7e0a9..a5665006c0 100644 --- a/_claims_injector_8cs_source.html +++ b/_claims_injector_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_client_exception_8cs.html b/_client_exception_8cs.html index 13651257f2..f6c84423a5 100644 --- a/_client_exception_8cs.html +++ b/_client_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_client_exception_8cs_source.html b/_client_exception_8cs_source.html index 3479d3ab06..aa31e41bba 100644 --- a/_client_exception_8cs_source.html +++ b/_client_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_combined_topic_response_8cs.html b/_combined_topic_response_8cs.html index 339375782a..f57fda97fc 100644 --- a/_combined_topic_response_8cs.html +++ b/_combined_topic_response_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_combined_topic_response_8cs_source.html b/_combined_topic_response_8cs_source.html index 4c7b473385..6e24f09e44 100644 --- a/_combined_topic_response_8cs_source.html +++ b/_combined_topic_response_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_command_factory_8cs.html b/_command_factory_8cs.html index e7b304431a..ae9d610bdd 100644 --- a/_command_factory_8cs.html +++ b/_command_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_command_factory_8cs_source.html b/_command_factory_8cs_source.html index e8469c7c39..1ccfc8f48b 100644 --- a/_command_factory_8cs_source.html +++ b/_command_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_components_2_session_2_reattach_information_8cs.html b/_components_2_session_2_reattach_information_8cs.html index 74e8574706..c67d2211fd 100644 --- a/_components_2_session_2_reattach_information_8cs.html +++ b/_components_2_session_2_reattach_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_components_2_session_2_reattach_information_8cs_source.html b/_components_2_session_2_reattach_information_8cs_source.html index 6e0400f0da..83d0d74f66 100644 --- a/_components_2_session_2_reattach_information_8cs_source.html +++ b/_components_2_session_2_reattach_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_i_watchdog_8cs.html b/_components_2_watchdog_2_i_watchdog_8cs.html index 1390c6e10e..54bc26bef4 100644 --- a/_components_2_watchdog_2_i_watchdog_8cs.html +++ b/_components_2_watchdog_2_i_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_i_watchdog_8cs_source.html b/_components_2_watchdog_2_i_watchdog_8cs_source.html index 2f6e3a49a5..b170956c3c 100644 --- a/_components_2_watchdog_2_i_watchdog_8cs_source.html +++ b/_components_2_watchdog_2_i_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_i_watchdog_factory_8cs.html b/_components_2_watchdog_2_i_watchdog_factory_8cs.html index c9968edfb2..2250c0619c 100644 --- a/_components_2_watchdog_2_i_watchdog_factory_8cs.html +++ b/_components_2_watchdog_2_i_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_i_watchdog_factory_8cs_source.html b/_components_2_watchdog_2_i_watchdog_factory_8cs_source.html index 564de66c9c..6434742a10 100644 --- a/_components_2_watchdog_2_i_watchdog_factory_8cs_source.html +++ b/_components_2_watchdog_2_i_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_watchdog_factory_8cs.html b/_components_2_watchdog_2_watchdog_factory_8cs.html index 0597c79b29..1f00d7c16f 100644 --- a/_components_2_watchdog_2_watchdog_factory_8cs.html +++ b/_components_2_watchdog_2_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_components_2_watchdog_2_watchdog_factory_8cs_source.html b/_components_2_watchdog_2_watchdog_factory_8cs_source.html index 17709f6756..84af8dba41 100644 --- a/_components_2_watchdog_2_watchdog_factory_8cs_source.html +++ b/_components_2_watchdog_2_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
WatchdogFactory.cs
-Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using Microsoft.Extensions.Options;
3 using System;
12 using Tgstation.Server.Host.IO;
14 
15 namespace Tgstation.Server.Host.Components.Watchdog
16 {
19  {
23  protected IServerControl ServerControl { get; }
24 
28  protected ILoggerFactory LoggerFactory { get; }
29 
34 
38  protected IJobManager JobManager { get; }
39 
43  protected IAsyncDelayer AsyncDelayer { get; }
44 
49 
60  IServerControl serverControl,
61  ILoggerFactory loggerFactory,
62  IDatabaseContextFactory databaseContextFactory,
63  IJobManager jobManager,
64  IAsyncDelayer asyncDelayer,
65  IOptions<GeneralConfiguration> generalConfigurationOptions)
66  {
67  ServerControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
68  LoggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
69  DatabaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
70  JobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
71  AsyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
72  GeneralConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
73  }
74 
76  public virtual IWatchdog CreateWatchdog(
77  IChatManager chat,
78  IDmbFactory dmbFactory,
79  ISessionPersistor sessionPersistor,
80  ISessionControllerFactory sessionControllerFactory,
81  IIOManager gameIOManager,
82  IIOManager diagnosticsIOManager,
83  IEventConsumer eventConsumer,
84  Api.Models.Instance instance,
85  DreamDaemonSettings settings)
86  => new BasicWatchdog(
87  chat,
88  sessionControllerFactory,
89  dmbFactory,
90  sessionPersistor,
92  JobManager,
93  ServerControl,
95  diagnosticsIOManager,
96  eventConsumer,
97  LoggerFactory.CreateLogger<BasicWatchdog>(),
98  settings,
99  instance,
100  settings.AutoStart.Value);
101  }
102 }
+Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using Microsoft.Extensions.Options;
3 using System;
12 using Tgstation.Server.Host.IO;
14 
15 namespace Tgstation.Server.Host.Components.Watchdog
16 {
19  {
23  protected IServerControl ServerControl { get; }
24 
28  protected ILoggerFactory LoggerFactory { get; }
29 
34 
38  protected IJobManager JobManager { get; }
39 
43  protected IAsyncDelayer AsyncDelayer { get; }
44 
49 
60  IServerControl serverControl,
61  ILoggerFactory loggerFactory,
62  IDatabaseContextFactory databaseContextFactory,
63  IJobManager jobManager,
64  IAsyncDelayer asyncDelayer,
65  IOptions<GeneralConfiguration> generalConfigurationOptions)
66  {
67  ServerControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
68  LoggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
69  DatabaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
70  JobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
71  AsyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
72  GeneralConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
73  }
74 
76  public virtual IWatchdog CreateWatchdog(
77  IChatManager chat,
78  IDmbFactory dmbFactory,
79  ISessionPersistor sessionPersistor,
80  ISessionControllerFactory sessionControllerFactory,
81  IIOManager gameIOManager,
82  IIOManager diagnosticsIOManager,
83  IEventConsumer eventConsumer,
84  Api.Models.Instance instance,
85  DreamDaemonSettings settings)
86  => new BasicWatchdog(
87  chat,
88  sessionControllerFactory,
89  dmbFactory,
90  sessionPersistor,
92  JobManager,
93  ServerControl,
95  diagnosticsIOManager,
96  eventConsumer,
97  LoggerFactory.CreateLogger<BasicWatchdog>(),
98  settings,
99  instance,
100  settings.AutoStart ?? throw new ArgumentNullException(nameof(settings)));
101  }
102 }
Handles saving and loading ReattachInformation.
diff --git a/_configuration_8cs.html b/_configuration_8cs.html index c8915a49b5..5dc76bca2c 100644 --- a/_configuration_8cs.html +++ b/_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_8cs_source.html b/_configuration_8cs_source.html index 39f3d4e676..f26972be9c 100644 --- a/_configuration_8cs_source.html +++ b/_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_client_8cs.html b/_configuration_client_8cs.html index 055e325df7..4153b3ab9f 100644 --- a/_configuration_client_8cs.html +++ b/_configuration_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_client_8cs_source.html b/_configuration_client_8cs_source.html index 127780f62d..8c49e0cc52 100644 --- a/_configuration_client_8cs_source.html +++ b/_configuration_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_controller_8cs.html b/_configuration_controller_8cs.html index c398d3b8f1..9281182eb6 100644 --- a/_configuration_controller_8cs.html +++ b/_configuration_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_controller_8cs_source.html b/_configuration_controller_8cs_source.html index 355ea91aa0..8f7cf818f9 100644 --- a/_configuration_controller_8cs_source.html +++ b/_configuration_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_file_8cs.html b/_configuration_file_8cs.html index 196474bf03..9efe6bfc42 100644 --- a/_configuration_file_8cs.html +++ b/_configuration_file_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_file_8cs_source.html b/_configuration_file_8cs_source.html index 685678018d..995afdb5cc 100644 --- a/_configuration_file_8cs_source.html +++ b/_configuration_file_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_rights_8cs.html b/_configuration_rights_8cs.html index 8f2c5691dc..c6bb6cb49c 100644 --- a/_configuration_rights_8cs.html +++ b/_configuration_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_rights_8cs_source.html b/_configuration_rights_8cs_source.html index 4d98b1f785..8e5995549a 100644 --- a/_configuration_rights_8cs_source.html +++ b/_configuration_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_type_8cs.html b/_configuration_type_8cs.html index 63859ba3e6..964cff6a51 100644 --- a/_configuration_type_8cs.html +++ b/_configuration_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_configuration_type_8cs_source.html b/_configuration_type_8cs_source.html index 771ece05e7..31dc24b8c3 100644 --- a/_configuration_type_8cs_source.html +++ b/_configuration_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_conflict_exception_8cs.html b/_conflict_exception_8cs.html index c51e77582e..fd0ef95958 100644 --- a/_conflict_exception_8cs.html +++ b/_conflict_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_conflict_exception_8cs_source.html b/_conflict_exception_8cs_source.html index 9a30ae1a22..aad3184046 100644 --- a/_conflict_exception_8cs_source.html +++ b/_conflict_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_console_2_program_8cs.html b/_console_2_program_8cs.html index a57d6face1..ad38dad838 100644 --- a/_console_2_program_8cs.html +++ b/_console_2_program_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_console_2_program_8cs_source.html b/_console_2_program_8cs_source.html index 9da8855528..6b45b0263b 100644 --- a/_console_2_program_8cs_source.html +++ b/_console_2_program_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_console_8cs.html b/_console_8cs.html index 563eb53f1a..1d0430b210 100644 --- a/_console_8cs.html +++ b/_console_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_console_8cs_source.html b/_console_8cs_source.html index 0d83f68dc2..abc381c763 100644 --- a/_console_8cs_source.html +++ b/_console_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_control_panel_configuration_8cs.html b/_control_panel_configuration_8cs.html index eb1252800f..606ef907bc 100644 --- a/_control_panel_configuration_8cs.html +++ b/_control_panel_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_control_panel_configuration_8cs_source.html b/_control_panel_configuration_8cs_source.html index 1112e9e22b..877a3a918a 100644 --- a/_control_panel_configuration_8cs_source.html +++ b/_control_panel_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_cryptography_suite_8cs.html b/_cryptography_suite_8cs.html index 933032a117..dbe6ac6720 100644 --- a/_cryptography_suite_8cs.html +++ b/_cryptography_suite_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_cryptography_suite_8cs_source.html b/_cryptography_suite_8cs_source.html index 98f06f1e6b..24afca14f8 100644 --- a/_cryptography_suite_8cs_source.html +++ b/_cryptography_suite_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_custom_command_8cs.html b/_custom_command_8cs.html index 58d671a3b8..794d705e07 100644 --- a/_custom_command_8cs.html +++ b/_custom_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_custom_command_8cs_source.html b/_custom_command_8cs_source.html index f4cfe4fd0c..335b3eef63 100644 --- a/_custom_command_8cs_source.html +++ b/_custom_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_d_m_api_constants_8cs.html b/_d_m_api_constants_8cs.html index 7ffe7b469b..f67023cc1f 100644 --- a/_d_m_api_constants_8cs.html +++ b/_d_m_api_constants_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_d_m_api_constants_8cs_source.html b/_d_m_api_constants_8cs_source.html index bb2632285c..0ab3009446 100644 --- a/_d_m_api_constants_8cs_source.html +++ b/_d_m_api_constants_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_d_m_api_parameters_8cs.html b/_d_m_api_parameters_8cs.html index 10b34def10..03c59dd594 100644 --- a/_d_m_api_parameters_8cs.html +++ b/_d_m_api_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_d_m_api_parameters_8cs_source.html b/_d_m_api_parameters_8cs_source.html index 8b080f596e..6ab967452e 100644 --- a/_d_m_api_parameters_8cs_source.html +++ b/_d_m_api_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_d_m_api_response_8cs.html b/_d_m_api_response_8cs.html index 459ea53e91..3442c73991 100644 --- a/_d_m_api_response_8cs.html +++ b/_d_m_api_response_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_d_m_api_response_8cs_source.html b/_d_m_api_response_8cs_source.html index c6a708d00d..4373eed6ab 100644 --- a/_d_m_api_response_8cs_source.html +++ b/_d_m_api_response_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_collection_8cs.html b/_database_collection_8cs.html index 1776ab6b9c..1edde15b39 100644 --- a/_database_collection_8cs.html +++ b/_database_collection_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_collection_8cs_source.html b/_database_collection_8cs_source.html index 9287e733e9..957f39e5a2 100644 --- a/_database_collection_8cs_source.html +++ b/_database_collection_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_configuration_8cs.html b/_database_configuration_8cs.html index a5e1e2a71f..8151507f53 100644 --- a/_database_configuration_8cs.html +++ b/_database_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_configuration_8cs_source.html b/_database_configuration_8cs_source.html index d8f6c563c1..cbae2bb1fd 100644 --- a/_database_configuration_8cs_source.html +++ b/_database_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_connection_factory_8cs.html b/_database_connection_factory_8cs.html index 81a431d7c9..670c9eaec6 100644 --- a/_database_connection_factory_8cs.html +++ b/_database_connection_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_connection_factory_8cs_source.html b/_database_connection_factory_8cs_source.html index 40cb1df226..380d1bcd65 100644 --- a/_database_connection_factory_8cs_source.html +++ b/_database_connection_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_context_8cs.html b/_database_context_8cs.html index 43f8f177a0..280ad12f86 100644 --- a/_database_context_8cs.html +++ b/_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_context_8cs_source.html b/_database_context_8cs_source.html index 779c48a0b2..329968c6d5 100644 --- a/_database_context_8cs_source.html +++ b/_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_context_factory_8cs.html b/_database_context_factory_8cs.html index 0ec793310c..8323f4727a 100644 --- a/_database_context_factory_8cs.html +++ b/_database_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_context_factory_8cs_source.html b/_database_context_factory_8cs_source.html index 40690b5512..15cb46293e 100644 --- a/_database_context_factory_8cs_source.html +++ b/_database_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_seeder_8cs.html b/_database_seeder_8cs.html index e70f42126b..6450d5e3d3 100644 --- a/_database_seeder_8cs.html +++ b/_database_seeder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_seeder_8cs_source.html b/_database_seeder_8cs_source.html index 775d6227a5..3db51b752c 100644 --- a/_database_seeder_8cs_source.html +++ b/_database_seeder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
DatabaseSeeder.cs
-Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using Microsoft.Extensions.Options;
4 using System;
5 using System.Linq;
6 using System.Threading;
7 using System.Threading.Tasks;
13 using Z.EntityFramework.Plus;
14 
15 namespace Tgstation.Server.Host.Database
16 {
19  {
24 
29 
33  readonly ILogger<DatabaseContext> databaseLogger;
34 
38  readonly ILogger<DatabaseSeeder> logger;
39 
44 
49 
60  ICryptographySuite cryptographySuite,
61  IPlatformIdentifier platformIdentifier,
62  IOptions<GeneralConfiguration> generalConfigurationOptions,
63  IOptions<DatabaseConfiguration> databaseConfigurationOptions,
64  ILogger<DatabaseContext> databaseLogger,
65  ILogger<DatabaseSeeder> logger)
66  {
67  this.cryptographySuite = cryptographySuite ?? throw new ArgumentNullException(nameof(cryptographySuite));
68  this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
69  databaseConfiguration = databaseConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(databaseConfigurationOptions));
70  generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
71  this.databaseLogger = databaseLogger ?? throw new ArgumentNullException(nameof(databaseLogger));
72  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
73  }
74 
79  void SeedAdminUser(IDatabaseContext databaseContext)
80  {
81  var admin = new User
82  {
84  CreatedAt = DateTimeOffset.Now,
86  Name = Api.Models.User.AdminName,
87  CanonicalName = User.CanonicalizeName(Api.Models.User.AdminName),
88  Enabled = true,
89  };
90  cryptographySuite.SetUserPassword(admin, Api.Models.User.DefaultAdminPassword, true);
91  databaseContext.Users.Add(admin);
92  }
93 
100  async Task SeedDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
101  {
102  SeedAdminUser(databaseContext);
103  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
104  }
105 
112  async Task SanitizeDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
113  {
114  var admin = await GetAdminUser(databaseContext, cancellationToken).ConfigureAwait(false);
115  if (admin != null)
116  {
117  // Fix the issue with ulong enums
118  // https://github.com/tgstation/tgstation-server/commit/db341d43b3dab74fe3681f5172ca9bfeaafa6b6d#diff-09f06ec4584665cf89bb77b97f5ccfb9R36-R39
119  // https://github.com/JamesNK/Newtonsoft.Json/issues/2301
120  admin.AdministrationRights &= RightsHelper.AllRights<AdministrationRights>();
121  admin.InstanceManagerRights &= RightsHelper.AllRights<InstanceManagerRights>();
122  }
123 
124  if (platformIdentifier.IsWindows)
125  {
126  // normalize backslashes to forward slashes
127  var allInstances = await databaseContext
128  .Instances
129  .AsQueryable()
130  .ToListAsync(cancellationToken)
131  .ConfigureAwait(false);
132  foreach (var instance in allInstances)
133  instance.Path = instance.Path.Replace('\\', '/');
134  }
135 
136  var ids = await databaseContext
138  .AsQueryable()
139  .Where(x => x.TopicRequestTimeout == 0)
140  .Select(x => x.Id)
141  .ToListAsync(cancellationToken)
142  .ConfigureAwait(false);
143 
144  var rowsUpdated = ids.Count;
145  foreach (var id in ids)
146  {
147  var newDDSettings = new DreamDaemonSettings
148  {
149  Id = id
150  };
151 
152  databaseContext.DreamDaemonSettings.Attach(newDDSettings);
153  newDDSettings.TopicRequestTimeout = generalConfiguration.ByondTopicTimeout;
154  }
155 
156  if (rowsUpdated > 0)
157  logger.LogInformation(
158  "Updated {0} instances to use database backed BYOND topic timeouts from configuration setting of {1}",
159  rowsUpdated,
160  generalConfiguration.ByondTopicTimeout);
161 
162  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
163  }
164 
171  async Task ResetAdminPassword(IDatabaseContext databaseContext, CancellationToken cancellationToken)
172  {
173  var admin = await GetAdminUser(databaseContext, cancellationToken).ConfigureAwait(false);
174  if (admin != null)
175  {
176  admin.Enabled = true;
177  cryptographySuite.SetUserPassword(admin, Api.Models.User.DefaultAdminPassword, false);
178  }
179 
180  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
181  }
182 
189  async Task<User> GetAdminUser(IDatabaseContext databaseContext, CancellationToken cancellationToken)
190  {
191  var admin = await databaseContext
192  .Users
193  .AsQueryable()
194  .Where(x => x.CanonicalName == User.CanonicalizeName(Api.Models.User.AdminName))
195  .FirstOrDefaultAsync(cancellationToken)
196  .ConfigureAwait(false);
197  if (admin == default)
198  SeedAdminUser(databaseContext);
199 
200  return admin;
201  }
202 
204  public async Task Initialize(IDatabaseContext databaseContext, CancellationToken cancellationToken)
205  {
206  if (databaseContext == null)
207  throw new ArgumentNullException(nameof(databaseContext));
208 
209  if (databaseConfiguration.DropDatabase)
210  {
211  logger.LogCritical("DropDatabase configuration option set! Dropping any existing database...");
212  await databaseContext.Drop(cancellationToken).ConfigureAwait(false);
213  }
214 
215  var wasEmpty = await databaseContext.Migrate(databaseLogger, cancellationToken).ConfigureAwait(false);
216  if (wasEmpty)
217  {
218  logger.LogInformation("Seeding database...");
219  await SeedDatabase(databaseContext, cancellationToken).ConfigureAwait(false);
220  }
221  else
222  {
223  if (databaseConfiguration.ResetAdminPassword)
224  {
225  logger.LogWarning("Enabling and resetting admin password due to configuration!");
226  await ResetAdminPassword(databaseContext, cancellationToken).ConfigureAwait(false);
227  }
228 
229  await SanitizeDatabase(databaseContext, cancellationToken).ConfigureAwait(false);
230  }
231  }
232 
234  public Task Downgrade(IDatabaseContext databaseContext, Version downgradeVersion, CancellationToken cancellationToken)
235  {
236  if (databaseContext == null)
237  throw new ArgumentNullException(nameof(databaseContext));
238  if (downgradeVersion == null)
239  throw new ArgumentNullException(nameof(downgradeVersion));
240 
241  return databaseContext.SchemaDowngradeForServerVersion(databaseLogger, downgradeVersion, databaseConfiguration.DatabaseType, cancellationToken);
242  }
243  }
244 }
Task SchemaDowngradeForServerVersion(ILogger< DatabaseContext > logger, Version version, DatabaseType currentDatabaseType, CancellationToken cancellationToken)
Attempt to downgrade the schema to the migration used for a given server version ...
+Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using Microsoft.Extensions.Options;
4 using System;
5 using System.Linq;
6 using System.Threading;
7 using System.Threading.Tasks;
13 using Z.EntityFramework.Plus;
14 
15 namespace Tgstation.Server.Host.Database
16 {
19  {
24 
29 
33  readonly ILogger<DatabaseContext> databaseLogger;
34 
38  readonly ILogger<DatabaseSeeder> logger;
39 
44 
49 
60  ICryptographySuite cryptographySuite,
61  IPlatformIdentifier platformIdentifier,
62  IOptions<GeneralConfiguration> generalConfigurationOptions,
63  IOptions<DatabaseConfiguration> databaseConfigurationOptions,
64  ILogger<DatabaseContext> databaseLogger,
65  ILogger<DatabaseSeeder> logger)
66  {
67  this.cryptographySuite = cryptographySuite ?? throw new ArgumentNullException(nameof(cryptographySuite));
68  this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
69  databaseConfiguration = databaseConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(databaseConfigurationOptions));
70  generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
71  this.databaseLogger = databaseLogger ?? throw new ArgumentNullException(nameof(databaseLogger));
72  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
73  }
74 
79  void SeedAdminUser(IDatabaseContext databaseContext)
80  {
81  var admin = new User
82  {
84  CreatedAt = DateTimeOffset.Now,
86  Name = Api.Models.User.AdminName,
87  CanonicalName = User.CanonicalizeName(Api.Models.User.AdminName),
88  Enabled = true,
89  };
90  cryptographySuite.SetUserPassword(admin, Api.Models.User.DefaultAdminPassword, true);
91  databaseContext.Users.Add(admin);
92  }
93 
100  async Task SeedDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
101  {
102  SeedAdminUser(databaseContext);
103  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
104  }
105 
112  async Task SanitizeDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
113  {
114  var admin = await GetAdminUser(databaseContext, cancellationToken).ConfigureAwait(false);
115  if (admin != null)
116  {
117  // Fix the issue with ulong enums
118  // https://github.com/tgstation/tgstation-server/commit/db341d43b3dab74fe3681f5172ca9bfeaafa6b6d#diff-09f06ec4584665cf89bb77b97f5ccfb9R36-R39
119  // https://github.com/JamesNK/Newtonsoft.Json/issues/2301
120  admin.AdministrationRights &= RightsHelper.AllRights<AdministrationRights>();
121  admin.InstanceManagerRights &= RightsHelper.AllRights<InstanceManagerRights>();
122  }
123 
124  if (platformIdentifier.IsWindows)
125  {
126  // normalize backslashes to forward slashes
127  var allInstances = await databaseContext
128  .Instances
129  .AsQueryable()
130  .ToListAsync(cancellationToken)
131  .ConfigureAwait(false);
132  foreach (var instance in allInstances)
133  instance.Path = instance.Path.Replace('\\', '/');
134  }
135 
136  if (generalConfiguration.ByondTopicTimeout != 0)
137  {
138  var ids = await databaseContext
140  .AsQueryable()
141  .Where(x => x.TopicRequestTimeout == 0)
142  .Select(x => x.Id)
143  .ToListAsync(cancellationToken)
144  .ConfigureAwait(false);
145 
146  var rowsUpdated = ids.Count;
147  foreach (var id in ids)
148  {
149  var newDDSettings = new DreamDaemonSettings
150  {
151  Id = id
152  };
153 
154  databaseContext.DreamDaemonSettings.Attach(newDDSettings);
155  newDDSettings.TopicRequestTimeout = generalConfiguration.ByondTopicTimeout;
156  }
157 
158  if (rowsUpdated > 0)
159  logger.LogInformation(
160  "Updated {0} instances to use database backed BYOND topic timeouts from configuration setting of {1}",
161  rowsUpdated,
162  generalConfiguration.ByondTopicTimeout);
163  }
164 
165  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
166  }
167 
174  async Task ResetAdminPassword(IDatabaseContext databaseContext, CancellationToken cancellationToken)
175  {
176  var admin = await GetAdminUser(databaseContext, cancellationToken).ConfigureAwait(false);
177  if (admin != null)
178  {
179  admin.Enabled = true;
180  cryptographySuite.SetUserPassword(admin, Api.Models.User.DefaultAdminPassword, false);
181  }
182 
183  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
184  }
185 
192  async Task<User> GetAdminUser(IDatabaseContext databaseContext, CancellationToken cancellationToken)
193  {
194  var admin = await databaseContext
195  .Users
196  .AsQueryable()
197  .Where(x => x.CanonicalName == User.CanonicalizeName(Api.Models.User.AdminName))
198  .FirstOrDefaultAsync(cancellationToken)
199  .ConfigureAwait(false);
200  if (admin == default)
201  SeedAdminUser(databaseContext);
202 
203  return admin;
204  }
205 
207  public async Task Initialize(IDatabaseContext databaseContext, CancellationToken cancellationToken)
208  {
209  if (databaseContext == null)
210  throw new ArgumentNullException(nameof(databaseContext));
211 
212  if (databaseConfiguration.DropDatabase)
213  {
214  logger.LogCritical("DropDatabase configuration option set! Dropping any existing database...");
215  await databaseContext.Drop(cancellationToken).ConfigureAwait(false);
216  }
217 
218  var wasEmpty = await databaseContext.Migrate(databaseLogger, cancellationToken).ConfigureAwait(false);
219  if (wasEmpty)
220  {
221  logger.LogInformation("Seeding database...");
222  await SeedDatabase(databaseContext, cancellationToken).ConfigureAwait(false);
223  }
224  else
225  {
226  if (databaseConfiguration.ResetAdminPassword)
227  {
228  logger.LogWarning("Enabling and resetting admin password due to configuration!");
229  await ResetAdminPassword(databaseContext, cancellationToken).ConfigureAwait(false);
230  }
231 
232  await SanitizeDatabase(databaseContext, cancellationToken).ConfigureAwait(false);
233  }
234  }
235 
237  public Task Downgrade(IDatabaseContext databaseContext, Version downgradeVersion, CancellationToken cancellationToken)
238  {
239  if (databaseContext == null)
240  throw new ArgumentNullException(nameof(databaseContext));
241  if (downgradeVersion == null)
242  throw new ArgumentNullException(nameof(downgradeVersion));
243 
244  return databaseContext.SchemaDowngradeForServerVersion(databaseLogger, downgradeVersion, databaseConfiguration.DatabaseType, cancellationToken);
245  }
246  }
247 }
Task SchemaDowngradeForServerVersion(ILogger< DatabaseContext > logger, Version version, DatabaseType currentDatabaseType, CancellationToken cancellationToken)
Attempt to downgrade the schema to the migration used for a given server version ...
readonly GeneralConfiguration generalConfiguration
The GeneralConfiguration for the DatabaseSeeder.
@@ -107,18 +107,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
For initially setting up a database.
+
void Attach(TModel model)
Attach a given model to the the working set.
async Task SanitizeDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Correct invalid database data caused by previous versions.
void Add(TModel model)
Add a given model to the the working set.
async Task SeedDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Initially seed a given databaseContext
AdministrationRights
Rights for Models.Administration
-
uint TopicRequestTimeout
The timeout for sending and receiving BYOND topics in milliseconds.
Contains various cryptographic functions
-
async Task Initialize(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Setup up a given databaseContext .
+
async Task Initialize(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Setup up a given databaseContext .
IDatabaseCollection< Instance > Instances
The Instances in the IDatabaseContext
-
async Task ResetAdminPassword(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Changes the admin password in IDatabaseContext back to it&#39;s default and enables the account ...
+
async Task ResetAdminPassword(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Changes the admin password in IDatabaseContext back to it&#39;s default and enables the account ...
InstanceManagerRights
Rights for managing Models.Instances
static string CanonicalizeName(string name)
Change a Api.Models.Internal.User.Name into a CanonicalName.
@@ -131,10 +131,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Task< bool > Migrate(ILogger< DatabaseContext > logger, CancellationToken cancellationToken)
Creates and migrates the IDatabaseContext
readonly ILogger< DatabaseSeeder > logger
The ILogger for the DatabaseSeeder.
-
Task Downgrade(IDatabaseContext databaseContext, Version downgradeVersion, CancellationToken cancellationToken)
Migrate a given databaseContext down.
+
Task Downgrade(IDatabaseContext databaseContext, Version downgradeVersion, CancellationToken cancellationToken)
Migrate a given databaseContext down.
Task Save(CancellationToken cancellationToken)
Saves changes made to the IDatabaseContext
-
async Task< User > GetAdminUser(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Get or create the admin User.
+
async Task< User > GetAdminUser(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Get or create the admin User.
IDatabaseCollection< DreamDaemonSettings > DreamDaemonSettings
The Models.DreamDaemonSettings in the IDatabaseContext
void SeedAdminUser(IDatabaseContext databaseContext)
Add a default admin User to a given databaseContext
IDatabaseCollection< User > Users
The Users in the IDatabaseContext
diff --git a/_database_type_8cs.html b/_database_type_8cs.html index 687a84cb61..a57b2fc3ef 100644 --- a/_database_type_8cs.html +++ b/_database_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_database_type_8cs_source.html b/_database_type_8cs_source.html index c63fd9102f..4d54851329 100644 --- a/_database_type_8cs_source.html +++ b/_database_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_date_time_offset_extensions_8cs.html b/_date_time_offset_extensions_8cs.html index 72799802d1..e3a405949c 100644 --- a/_date_time_offset_extensions_8cs.html +++ b/_date_time_offset_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_date_time_offset_extensions_8cs_source.html b/_date_time_offset_extensions_8cs_source.html index 3cc5d5a58e..1cc0c5255b 100644 --- a/_date_time_offset_extensions_8cs_source.html +++ b/_date_time_offset_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_default_i_o_manager_8cs.html b/_default_i_o_manager_8cs.html index 70bb835ae2..9e6c1dc0ce 100644 --- a/_default_i_o_manager_8cs.html +++ b/_default_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_default_i_o_manager_8cs_source.html b/_default_i_o_manager_8cs_source.html index adee89ec60..909de7f98e 100644 --- a/_default_i_o_manager_8cs_source.html +++ b/_default_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_design_time_db_context_factory_helpers_8cs.html b/_design_time_db_context_factory_helpers_8cs.html index 3f300ba1a0..586b7b9e58 100644 --- a/_design_time_db_context_factory_helpers_8cs.html +++ b/_design_time_db_context_factory_helpers_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_design_time_db_context_factory_helpers_8cs_source.html b/_design_time_db_context_factory_helpers_8cs_source.html index be0eadbeb9..1aa46374e1 100644 --- a/_design_time_db_context_factory_helpers_8cs_source.html +++ b/_design_time_db_context_factory_helpers_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_discord_connection_string_builder_8cs.html b/_discord_connection_string_builder_8cs.html index 145d386d42..1abcfd167b 100644 --- a/_discord_connection_string_builder_8cs.html +++ b/_discord_connection_string_builder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_discord_connection_string_builder_8cs_source.html b/_discord_connection_string_builder_8cs_source.html index 075cad022b..855cace566 100644 --- a/_discord_connection_string_builder_8cs_source.html +++ b/_discord_connection_string_builder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_discord_provider_8cs.html b/_discord_provider_8cs.html index 7b7b7f1e10..4f96230ef0 100644 --- a/_discord_provider_8cs.html +++ b/_discord_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_discord_provider_8cs_source.html b/_discord_provider_8cs_source.html index 25155a6552..41041f4652 100644 --- a/_discord_provider_8cs_source.html +++ b/_discord_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dmb_factory_8cs.html b/_dmb_factory_8cs.html index 39ec7d26b3..155d643163 100644 --- a/_dmb_factory_8cs.html +++ b/_dmb_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dmb_factory_8cs_source.html b/_dmb_factory_8cs_source.html index c96b67d1f6..1c3a7fa361 100644 --- a/_dmb_factory_8cs_source.html +++ b/_dmb_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
DmbFactory.cs
-Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using System;
4 using System.Collections.Generic;
5 using System.IO;
6 using System.Linq;
7 using System.Threading;
8 using System.Threading.Tasks;
10 using Tgstation.Server.Host.IO;
12 
13 namespace Tgstation.Server.Host.Components.Deployment
14 {
19  {
21  public Task OnNewerDmb
22  {
23  get
24  {
25  lock (jobLockCounts)
26  return newerDmbTcs.Task;
27  }
28  }
29 
31  public bool DmbAvailable => nextDmbProvider != null;
32 
37 
42 
46  readonly ILogger<DmbFactory> logger;
47 
51  readonly Api.Models.Instance instance;
52 
56  readonly CancellationTokenSource cleanupCts;
57 
61  readonly IDictionary<long, int> jobLockCounts;
62 
67 
71  TaskCompletionSource<object> newerDmbTcs;
72 
77 
85  public DmbFactory(IDatabaseContextFactory databaseContextFactory, IIOManager ioManager, ILogger<DmbFactory> logger, Api.Models.Instance instance)
86  {
87  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
88  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
89  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
90  this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
91 
92  cleanupTask = Task.CompletedTask;
93  newerDmbTcs = new TaskCompletionSource<object>();
94  cleanupCts = new CancellationTokenSource();
95  jobLockCounts = new Dictionary<long, int>();
96  }
97 
99  public void Dispose() => cleanupCts.Dispose(); // we don't dispose nextDmbProvider here, since it might be the only thing we have
100 
106  {
107  async Task HandleCleanup()
108  {
109  var deleteJob = ioManager.DeleteDirectory(job.DirectoryName.ToString(), cleanupCts.Token);
110  Task otherTask;
111 
112  // lock (this) //already locked below
113  otherTask = cleanupTask;
114  await Task.WhenAll(otherTask, deleteJob).ConfigureAwait(false);
115  }
116 
117  lock (jobLockCounts)
118  if (!jobLockCounts.TryGetValue(job.Id, out var currentVal) || currentVal == 1)
119  {
120  jobLockCounts.Remove(job.Id);
121  logger.LogDebug("Cleaning lock-free compile job {0} => {1}", job.Id, job.DirectoryName);
122  cleanupTask = HandleCleanup();
123  }
124  else
125  {
126  var decremented = --jobLockCounts[job.Id];
127  logger.LogTrace("Compile job {0} lock count now: {1}", job.Id, decremented);
128  }
129  }
130 
132  public async Task LoadCompileJob(CompileJob job, CancellationToken cancellationToken)
133  {
134  if (job == null)
135  throw new ArgumentNullException(nameof(job));
136 
137  var newProvider = await FromCompileJob(job, cancellationToken).ConfigureAwait(false);
138  if (newProvider == null)
139  return;
140  lock (jobLockCounts)
141  {
142  nextDmbProvider?.Dispose();
143  nextDmbProvider = newProvider;
144 
145  // Oh god dammit
146  var temp = newerDmbTcs;
147  newerDmbTcs = new TaskCompletionSource<object>();
148  temp.SetResult(nextDmbProvider);
149  }
150  }
151 
153  public IDmbProvider LockNextDmb(int lockCount)
154  {
155  if (!DmbAvailable)
156  throw new InvalidOperationException("No .dmb available!");
157  if (lockCount < 0)
158  throw new ArgumentOutOfRangeException(nameof(lockCount), lockCount, "lockCount must be greater than or equal to 0!");
159  lock (jobLockCounts)
160  {
161  var jobId = nextDmbProvider.CompileJob.Id;
162  var incremented = jobLockCounts[jobId] += lockCount;
163  logger.LogTrace("Compile job {0} lock count now: {1}", jobId, incremented);
164  return nextDmbProvider;
165  }
166  }
167 
169  public async Task StartAsync(CancellationToken cancellationToken)
170  {
171  CompileJob cj = null;
172  await databaseContextFactory.UseContext(async (db) =>
173  {
174  cj = await db
175  .CompileJobs
176  .AsQueryable()
177  .Where(x => x.Job.Instance.Id == instance.Id)
178  .OrderByDescending(x => x.Job.StoppedAt)
179  .FirstOrDefaultAsync(cancellationToken)
180  .ConfigureAwait(false);
181  })
182  .ConfigureAwait(false);
183 
184  if (cj == default(CompileJob))
185  return;
186  await LoadCompileJob(cj, cancellationToken).ConfigureAwait(false);
187 
188  // we dont do CleanUnusedCompileJobs here because the watchdog may have plans for them yet
189  }
190 
192  public async Task StopAsync(CancellationToken cancellationToken)
193  {
194  using (cancellationToken.Register(() => cleanupCts.Cancel()))
195  await cleanupTask.ConfigureAwait(false);
196  }
197 
199  #pragma warning disable CA1506 // TODO: Decomplexify
200  public async Task<IDmbProvider> FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
201  {
202  if (compileJob == null)
203  throw new ArgumentNullException(nameof(compileJob));
204 
205  // ensure we have the entire compile job tree
206  logger.LogTrace("Loading compile job {0}...", compileJob.Id);
207  await databaseContextFactory.UseContext(
208  async db => compileJob = await db
209  .CompileJobs
210  .AsQueryable()
211  .Where(x => x.Id == compileJob.Id)
212  .Include(x => x.Job).ThenInclude(x => x.StartedBy)
213  .Include(x => x.RevisionInformation).ThenInclude(x => x.PrimaryTestMerge).ThenInclude(x => x.MergedBy)
214  .Include(x => x.RevisionInformation).ThenInclude(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge).ThenInclude(x => x.MergedBy)
215  .FirstAsync(cancellationToken)
216  .ConfigureAwait(false))
217  .ConfigureAwait(false); // can't wait to see that query
218 
219  if (!compileJob.Job.StoppedAt.HasValue)
220  {
221  // This happens if we're told to load the compile job that is currently finished up
222  // It can constitute an API violation if it's returned by the DreamDaemonController so just set it here
223  // Bit of a hack, but it should work out to be the same value
224  logger.LogTrace("Setting missing StoppedAt for CompileJob job...");
225  compileJob.Job.StoppedAt = DateTimeOffset.Now;
226  }
227 
228  var providerSubmitted = false;
229 
230  void CleanupAction()
231  {
232  if (providerSubmitted)
233  CleanJob(compileJob);
234  }
235 
236  var newProvider = new DmbProvider(compileJob, ioManager, CleanupAction);
237  try
238  {
239  const string LegacyADirectoryName = "A";
240  const string LegacyBDirectoryName = "B";
241 
242  var dmbExistsAtRoot = await ioManager.FileExists(
243  ioManager.ConcatPath(
244  newProvider.Directory,
245  newProvider.DmbName),
246  cancellationToken)
247  .ConfigureAwait(false);
248 
249  if (!dmbExistsAtRoot)
250  {
251  var primaryCheckTask = ioManager.FileExists(
252  ioManager.ConcatPath(
253  newProvider.Directory,
254  LegacyADirectoryName,
255  newProvider.DmbName),
256  cancellationToken);
257  var secondaryCheckTask = ioManager.FileExists(
258  ioManager.ConcatPath(
259  newProvider.Directory,
260  LegacyBDirectoryName,
261  newProvider.DmbName),
262  cancellationToken);
263 
264  if (!(await primaryCheckTask.ConfigureAwait(false) && await secondaryCheckTask.ConfigureAwait(false)))
265  {
266  logger.LogWarning("Error loading compile job, .dmb missing!");
267  return null; // omae wa mou shinderu
268  }
269 
270  // rebuild the provider because it's using the legacy style directories
271  // Don't dispose it
272  logger.LogDebug("Creating legacy two folder .dmb provider targeting {0} directory...", LegacyADirectoryName);
273  newProvider = new DmbProvider(compileJob, ioManager, CleanupAction, Path.DirectorySeparatorChar + LegacyADirectoryName);
274  }
275 
276  lock (jobLockCounts)
277  {
278  if (!jobLockCounts.TryGetValue(compileJob.Id, out int value))
279  {
280  value = 1;
281  jobLockCounts.Add(compileJob.Id, 1);
282  }
283  else
284  jobLockCounts[compileJob.Id] = ++value;
285 
286  logger.LogTrace("Compile job {0} lock count now: {1}", compileJob.Id, value);
287 
288  providerSubmitted = true;
289  return newProvider;
290  }
291  }
292  finally
293  {
294  if (!providerSubmitted)
295  newProvider.Dispose();
296  }
297  }
298  #pragma warning restore CA1506
299 
301  #pragma warning disable CA1506 // TODO: Decomplexify
302  public async Task CleanUnusedCompileJobs(CancellationToken cancellationToken)
303  {
304  List<long> jobIdsToSkip;
305 
306  // don't clean locked directories
307  lock (jobLockCounts)
308  jobIdsToSkip = jobLockCounts.Select(x => x.Key).ToList();
309 
310  List<string> jobUidsToNotErase = null;
311 
312  // find the uids of locked directories
313  await databaseContextFactory.UseContext(async db =>
314  {
315  jobUidsToNotErase = (await db
316  .CompileJobs
317  .AsQueryable()
318  .Where(
319  x => x.Job.Instance.Id == instance.Id
320  && jobIdsToSkip.Contains(x.Id))
321  .Select(x => x.DirectoryName.Value)
322  .ToListAsync(cancellationToken)
323  .ConfigureAwait(false))
324  .Select(x => x.ToString())
325  .ToList();
326  }).ConfigureAwait(false);
327 
328  jobUidsToNotErase.Add(SwappableDmbProvider.LiveGameDirectory);
329 
330  logger.LogTrace("We will not clean the following directories: {0}", String.Join(", ", jobUidsToNotErase));
331 
332  // cleanup
333  var gameDirectory = ioManager.ResolvePath();
334  await ioManager.CreateDirectory(gameDirectory, cancellationToken).ConfigureAwait(false);
335  var directories = await ioManager.GetDirectories(gameDirectory, cancellationToken).ConfigureAwait(false);
336  int deleting = 0;
337  var tasks = directories.Select(async x =>
338  {
339  var nameOnly = ioManager.GetFileName(x);
340  if (jobUidsToNotErase.Contains(nameOnly))
341  return;
342  logger.LogDebug("Cleaning unused game folder: {0}...", nameOnly);
343  try
344  {
345  ++deleting;
346  await ioManager.DeleteDirectory(x, cancellationToken).ConfigureAwait(false);
347  }
348  catch (OperationCanceledException)
349  {
350  throw;
351  }
352  catch (Exception e)
353  {
354  logger.LogWarning("Error deleting directory {0}! Exception: {1}", x, e);
355  }
356  }).ToList();
357  if (deleting > 0)
358  await Task.WhenAll(tasks).ConfigureAwait(false);
359  }
360  #pragma warning restore CA1506
361 
364  {
365  if (!DmbAvailable)
366  return null;
367  return LockNextDmb(0)?.CompileJob;
368  }
369  }
370 }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:24
+Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using System;
4 using System.Collections.Generic;
5 using System.IO;
6 using System.Linq;
7 using System.Threading;
8 using System.Threading.Tasks;
10 using Tgstation.Server.Host.IO;
12 
13 namespace Tgstation.Server.Host.Components.Deployment
14 {
19  {
21  public Task OnNewerDmb
22  {
23  get
24  {
25  lock (jobLockCounts)
26  return newerDmbTcs.Task;
27  }
28  }
29 
31  public bool DmbAvailable => nextDmbProvider != null;
32 
37 
42 
46  readonly ILogger<DmbFactory> logger;
47 
51  readonly Api.Models.Instance instance;
52 
56  readonly CancellationTokenSource cleanupCts;
57 
61  readonly IDictionary<long, int> jobLockCounts;
62 
67 
71  TaskCompletionSource<object> newerDmbTcs;
72 
77 
85  public DmbFactory(IDatabaseContextFactory databaseContextFactory, IIOManager ioManager, ILogger<DmbFactory> logger, Api.Models.Instance instance)
86  {
87  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
88  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
89  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
90  this.instance = instance ?? throw new ArgumentNullException(nameof(instance));
91 
92  cleanupTask = Task.CompletedTask;
93  newerDmbTcs = new TaskCompletionSource<object>();
94  cleanupCts = new CancellationTokenSource();
95  jobLockCounts = new Dictionary<long, int>();
96  }
97 
99  public void Dispose() => cleanupCts.Dispose(); // we don't dispose nextDmbProvider here, since it might be the only thing we have
100 
106  {
107  async Task HandleCleanup()
108  {
109  var deleteJob = ioManager.DeleteDirectory(job.DirectoryName.ToString(), cleanupCts.Token);
110  Task otherTask;
111 
112  // lock (this) //already locked below
113  otherTask = cleanupTask;
114  await Task.WhenAll(otherTask, deleteJob).ConfigureAwait(false);
115  }
116 
117  lock (jobLockCounts)
118  if (!jobLockCounts.TryGetValue(job.Id, out var currentVal) || currentVal == 1)
119  {
120  jobLockCounts.Remove(job.Id);
121  logger.LogDebug("Cleaning lock-free compile job {0} => {1}", job.Id, job.DirectoryName);
122  cleanupTask = HandleCleanup();
123  }
124  else
125  {
126  var decremented = --jobLockCounts[job.Id];
127  logger.LogTrace("Compile job {0} lock count now: {1}", job.Id, decremented);
128  }
129  }
130 
132  public async Task LoadCompileJob(CompileJob job, CancellationToken cancellationToken)
133  {
134  if (job == null)
135  throw new ArgumentNullException(nameof(job));
136 
137  var newProvider = await FromCompileJob(job, cancellationToken).ConfigureAwait(false);
138  if (newProvider == null)
139  return;
140  lock (jobLockCounts)
141  {
142  nextDmbProvider?.Dispose();
143  nextDmbProvider = newProvider;
144 
145  // Oh god dammit
146  var temp = newerDmbTcs;
147  newerDmbTcs = new TaskCompletionSource<object>();
148  temp.SetResult(nextDmbProvider);
149  }
150  }
151 
153  public IDmbProvider LockNextDmb(int lockCount)
154  {
155  if (!DmbAvailable)
156  throw new InvalidOperationException("No .dmb available!");
157  if (lockCount < 0)
158  throw new ArgumentOutOfRangeException(nameof(lockCount), lockCount, "lockCount must be greater than or equal to 0!");
159  lock (jobLockCounts)
160  {
161  var jobId = nextDmbProvider.CompileJob.Id;
162  var incremented = jobLockCounts[jobId] += lockCount;
163  logger.LogTrace("Compile job {0} lock count now: {1}", jobId, incremented);
164  return nextDmbProvider;
165  }
166  }
167 
169  public async Task StartAsync(CancellationToken cancellationToken)
170  {
171  CompileJob cj = null;
172  await databaseContextFactory.UseContext(async (db) =>
173  {
174  cj = await db
175  .CompileJobs
176  .AsQueryable()
177  .Where(x => x.Job.Instance.Id == instance.Id)
178  .OrderByDescending(x => x.Job.StoppedAt)
179  .FirstOrDefaultAsync(cancellationToken)
180  .ConfigureAwait(false);
181  })
182  .ConfigureAwait(false);
183 
184  if (cj == default(CompileJob))
185  return;
186  await LoadCompileJob(cj, cancellationToken).ConfigureAwait(false);
187 
188  // we dont do CleanUnusedCompileJobs here because the watchdog may have plans for them yet
189  }
190 
192  public async Task StopAsync(CancellationToken cancellationToken)
193  {
194  using (cancellationToken.Register(() => cleanupCts.Cancel()))
195  await cleanupTask.ConfigureAwait(false);
196  }
197 
199  #pragma warning disable CA1506 // TODO: Decomplexify
200  public async Task<IDmbProvider> FromCompileJob(CompileJob compileJob, CancellationToken cancellationToken)
201  {
202  if (compileJob == null)
203  throw new ArgumentNullException(nameof(compileJob));
204 
205  // ensure we have the entire compile job tree
206  logger.LogTrace("Loading compile job {0}...", compileJob.Id);
207  await databaseContextFactory.UseContext(
208  async db => compileJob = await db
209  .CompileJobs
210  .AsQueryable()
211  .Where(x => x.Id == compileJob.Id)
212  .Include(x => x.Job).ThenInclude(x => x.StartedBy)
213  .Include(x => x.RevisionInformation).ThenInclude(x => x.PrimaryTestMerge).ThenInclude(x => x.MergedBy)
214  .Include(x => x.RevisionInformation).ThenInclude(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge).ThenInclude(x => x.MergedBy)
215  .FirstAsync(cancellationToken)
216  .ConfigureAwait(false))
217  .ConfigureAwait(false); // can't wait to see that query
218 
219  if (!compileJob.Job.StoppedAt.HasValue)
220  {
221  // This happens if we're told to load the compile job that is currently finished up
222  // It can constitute an API violation if it's returned by the DreamDaemonController so just set it here
223  // Bit of a hack, but it should work out to be the same value
224  logger.LogTrace("Setting missing StoppedAt for CompileJob job...");
225  compileJob.Job.StoppedAt = DateTimeOffset.Now;
226  }
227 
228  var providerSubmitted = false;
229 
230  void CleanupAction()
231  {
232  if (providerSubmitted)
233  CleanJob(compileJob);
234  }
235 
236  var newProvider = new DmbProvider(compileJob, ioManager, CleanupAction);
237  try
238  {
239  const string LegacyADirectoryName = "A";
240  const string LegacyBDirectoryName = "B";
241 
242  var dmbExistsAtRoot = await ioManager.FileExists(
243  ioManager.ConcatPath(
244  newProvider.Directory,
245  newProvider.DmbName),
246  cancellationToken)
247  .ConfigureAwait(false);
248 
249  if (!dmbExistsAtRoot)
250  {
251  logger.LogTrace("Didn't find .dmb at game directory root, checking A/B dirs...");
252  var primaryCheckTask = ioManager.FileExists(
253  ioManager.ConcatPath(
254  newProvider.Directory,
255  LegacyADirectoryName,
256  newProvider.DmbName),
257  cancellationToken);
258  var secondaryCheckTask = ioManager.FileExists(
259  ioManager.ConcatPath(
260  newProvider.Directory,
261  LegacyBDirectoryName,
262  newProvider.DmbName),
263  cancellationToken);
264 
265  if (!(await primaryCheckTask.ConfigureAwait(false) && await secondaryCheckTask.ConfigureAwait(false)))
266  {
267  logger.LogWarning("Error loading compile job, .dmb missing!");
268  return null; // omae wa mou shinderu
269  }
270 
271  // rebuild the provider because it's using the legacy style directories
272  // Don't dispose it
273  logger.LogDebug("Creating legacy two folder .dmb provider targeting {0} directory...", LegacyADirectoryName);
274  newProvider = new DmbProvider(compileJob, ioManager, CleanupAction, Path.DirectorySeparatorChar + LegacyADirectoryName);
275  }
276 
277  lock (jobLockCounts)
278  {
279  if (!jobLockCounts.TryGetValue(compileJob.Id, out int value))
280  {
281  value = 1;
282  jobLockCounts.Add(compileJob.Id, 1);
283  }
284  else
285  jobLockCounts[compileJob.Id] = ++value;
286 
287  logger.LogTrace("Compile job {0} lock count now: {1}", compileJob.Id, value);
288 
289  providerSubmitted = true;
290  return newProvider;
291  }
292  }
293  finally
294  {
295  if (!providerSubmitted)
296  newProvider.Dispose();
297  }
298  }
299  #pragma warning restore CA1506
300 
302  #pragma warning disable CA1506 // TODO: Decomplexify
303  public async Task CleanUnusedCompileJobs(CancellationToken cancellationToken)
304  {
305  List<long> jobIdsToSkip;
306 
307  // don't clean locked directories
308  lock (jobLockCounts)
309  jobIdsToSkip = jobLockCounts.Select(x => x.Key).ToList();
310 
311  List<string> jobUidsToNotErase = null;
312 
313  // find the uids of locked directories
314  await databaseContextFactory.UseContext(async db =>
315  {
316  jobUidsToNotErase = (await db
317  .CompileJobs
318  .AsQueryable()
319  .Where(
320  x => x.Job.Instance.Id == instance.Id
321  && jobIdsToSkip.Contains(x.Id))
322  .Select(x => x.DirectoryName.Value)
323  .ToListAsync(cancellationToken)
324  .ConfigureAwait(false))
325  .Select(x => x.ToString())
326  .ToList();
327  }).ConfigureAwait(false);
328 
329  jobUidsToNotErase.Add(SwappableDmbProvider.LiveGameDirectory);
330 
331  logger.LogTrace("We will not clean the following directories: {0}", String.Join(", ", jobUidsToNotErase));
332 
333  // cleanup
334  var gameDirectory = ioManager.ResolvePath();
335  await ioManager.CreateDirectory(gameDirectory, cancellationToken).ConfigureAwait(false);
336  var directories = await ioManager.GetDirectories(gameDirectory, cancellationToken).ConfigureAwait(false);
337  int deleting = 0;
338  var tasks = directories.Select(async x =>
339  {
340  var nameOnly = ioManager.GetFileName(x);
341  if (jobUidsToNotErase.Contains(nameOnly))
342  return;
343  logger.LogDebug("Cleaning unused game folder: {0}...", nameOnly);
344  try
345  {
346  ++deleting;
347  await ioManager.DeleteDirectory(x, cancellationToken).ConfigureAwait(false);
348  }
349  catch (OperationCanceledException)
350  {
351  throw;
352  }
353  catch (Exception e)
354  {
355  logger.LogWarning("Error deleting directory {0}! Exception: {1}", x, e);
356  }
357  }).ToList();
358  if (deleting > 0)
359  await Task.WhenAll(tasks).ConfigureAwait(false);
360  }
361  #pragma warning restore CA1506
362 
365  {
366  if (!DmbAvailable)
367  return null;
368  return LockNextDmb(0)?.CompileJob;
369  }
370  }
371 }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:24
async Task StartAsync(CancellationToken cancellationToken)
Definition: DmbFactory.cs:169
IDmbProvider nextDmbProvider
The latest DmbProvider
Definition: DmbFactory.cs:76
long Id
The ID of the entity.
Definition: EntityId.cs:11
@@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Factory for scoping usage of IDatabaseContexts. Meant for use by Components
-
async Task CleanUnusedCompileJobs(CancellationToken cancellationToken)
Deletes all compile jobs that are inactive in the Game folder.
Definition: DmbFactory.cs:302
+
async Task CleanUnusedCompileJobs(CancellationToken cancellationToken)
Deletes all compile jobs that are inactive in the Game folder.
Definition: DmbFactory.cs:303
DateTimeOffset StoppedAt
When the Job stopped
Definition: Job.cs:37
void CleanJob(CompileJob job)
Delete the Api.Models.Internal.CompileJob.DirectoryName of job
Definition: DmbFactory.cs:105
Job Job
See Api.Models.CompileJob.Job
Definition: CompileJob.cs:13
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
readonly IDictionary< long, int > jobLockCounts
Map of CompileJob.JobIds to locks on them.
Definition: DmbFactory.cs:61
readonly IIOManager ioManager
The IIOManager for the DmbFactory
Definition: DmbFactory.cs:41
readonly CancellationTokenSource cleanupCts
The CancellationTokenSource for cleanupTask
Definition: DmbFactory.cs:56
-
CompileJob LatestCompileJob()
Gets the latest CompileJob.
Definition: DmbFactory.cs:363
+
CompileJob LatestCompileJob()
Gets the latest CompileJob.
Definition: DmbFactory.cs:364
diff --git a/_dmb_provider_8cs.html b/_dmb_provider_8cs.html index 1797146096..eaf24f2a18 100644 --- a/_dmb_provider_8cs.html +++ b/_dmb_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dmb_provider_8cs_source.html b/_dmb_provider_8cs_source.html index 9b8017455b..0528e8d173 100644 --- a/_dmb_provider_8cs_source.html +++ b/_dmb_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_8cs.html b/_dream_daemon_8cs.html index 1c744fe335..a5cf24aa34 100644 --- a/_dream_daemon_8cs.html +++ b/_dream_daemon_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_8cs_source.html b/_dream_daemon_8cs_source.html index 4cd641c420..8d1a0f3e0e 100644 --- a/_dream_daemon_8cs_source.html +++ b/_dream_daemon_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_client_8cs.html b/_dream_daemon_client_8cs.html index 632f78b264..eacc0718c5 100644 --- a/_dream_daemon_client_8cs.html +++ b/_dream_daemon_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_client_8cs_source.html b/_dream_daemon_client_8cs_source.html index 1da317fee4..2d559874b3 100644 --- a/_dream_daemon_client_8cs_source.html +++ b/_dream_daemon_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_controller_8cs.html b/_dream_daemon_controller_8cs.html index f7aef7b5e3..7dff7d9e84 100644 --- a/_dream_daemon_controller_8cs.html +++ b/_dream_daemon_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_controller_8cs_source.html b/_dream_daemon_controller_8cs_source.html index 7428a2ffb0..db3d82de08 100644 --- a/_dream_daemon_controller_8cs_source.html +++ b/_dream_daemon_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_launch_parameters_8cs.html b/_dream_daemon_launch_parameters_8cs.html index 0fea0cd0a2..fb77b23fc5 100644 --- a/_dream_daemon_launch_parameters_8cs.html +++ b/_dream_daemon_launch_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_launch_parameters_8cs_source.html b/_dream_daemon_launch_parameters_8cs_source.html index 90b58159ec..1c50a879a7 100644 --- a/_dream_daemon_launch_parameters_8cs_source.html +++ b/_dream_daemon_launch_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_rights_8cs.html b/_dream_daemon_rights_8cs.html index 765af69dca..4c897d327d 100644 --- a/_dream_daemon_rights_8cs.html +++ b/_dream_daemon_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_rights_8cs_source.html b/_dream_daemon_rights_8cs_source.html index 3d3b89fb03..d8485b3579 100644 --- a/_dream_daemon_rights_8cs_source.html +++ b/_dream_daemon_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_security_8cs.html b/_dream_daemon_security_8cs.html index f5985e37ed..742ed5c718 100644 --- a/_dream_daemon_security_8cs.html +++ b/_dream_daemon_security_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_daemon_security_8cs_source.html b/_dream_daemon_security_8cs_source.html index b9fcb64db9..8dd230ad07 100644 --- a/_dream_daemon_security_8cs_source.html +++ b/_dream_daemon_security_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_maker_client_8cs.html b/_dream_maker_client_8cs.html index 2ed207dd8b..aaf4567b3c 100644 --- a/_dream_maker_client_8cs.html +++ b/_dream_maker_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_maker_client_8cs_source.html b/_dream_maker_client_8cs_source.html index 03874369ec..3ee1f2d574 100644 --- a/_dream_maker_client_8cs_source.html +++ b/_dream_maker_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_maker_controller_8cs.html b/_dream_maker_controller_8cs.html index 203bbba937..53edb1b2b4 100644 --- a/_dream_maker_controller_8cs.html +++ b/_dream_maker_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_maker_controller_8cs_source.html b/_dream_maker_controller_8cs_source.html index 0ead59199b..8eae5e8da0 100644 --- a/_dream_maker_controller_8cs_source.html +++ b/_dream_maker_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_maker_rights_8cs.html b/_dream_maker_rights_8cs.html index fe919e7c8f..ea52339b77 100644 --- a/_dream_maker_rights_8cs.html +++ b/_dream_maker_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_maker_rights_8cs_source.html b/_dream_maker_rights_8cs_source.html index b4cba9ccb5..cb0df07f14 100644 --- a/_dream_maker_rights_8cs_source.html +++ b/_dream_maker_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_maker_settings_8cs.html b/_dream_maker_settings_8cs.html index 6cf57aa300..94810c088f 100644 --- a/_dream_maker_settings_8cs.html +++ b/_dream_maker_settings_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_dream_maker_settings_8cs_source.html b/_dream_maker_settings_8cs_source.html index d383d617ec..d1f5077940 100644 --- a/_dream_maker_settings_8cs_source.html +++ b/_dream_maker_settings_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_entity_id_8cs.html b/_entity_id_8cs.html index 598c9f8d86..e6e536f222 100644 --- a/_entity_id_8cs.html +++ b/_entity_id_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_entity_id_8cs_source.html b/_entity_id_8cs_source.html index 61343e7080..20b5ecf861 100644 --- a/_entity_id_8cs_source.html +++ b/_entity_id_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_error_code_8cs.html b/_error_code_8cs.html index 1212fcfa72..1ec09bb721 100644 --- a/_error_code_8cs.html +++ b/_error_code_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_error_code_8cs_source.html b/_error_code_8cs_source.html index 40a71912f3..54e917a45a 100644 --- a/_error_code_8cs_source.html +++ b/_error_code_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_error_code_extensions_8cs.html b/_error_code_extensions_8cs.html index 0fed9352a7..32e08f364f 100644 --- a/_error_code_extensions_8cs.html +++ b/_error_code_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_error_code_extensions_8cs_source.html b/_error_code_extensions_8cs_source.html index 6c752acbf0..3458e068c4 100644 --- a/_error_code_extensions_8cs_source.html +++ b/_error_code_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_error_message_8cs.html b/_error_message_8cs.html index ef3eb1842e..93e844098a 100644 --- a/_error_message_8cs.html +++ b/_error_message_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_error_message_8cs_source.html b/_error_message_8cs_source.html index 15b2821db5..bb27db1be8 100644 --- a/_error_message_8cs_source.html +++ b/_error_message_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_event_consumer_8cs.html b/_event_consumer_8cs.html index 105a41ef1d..351c72e03b 100644 --- a/_event_consumer_8cs.html +++ b/_event_consumer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_event_consumer_8cs_source.html b/_event_consumer_8cs_source.html index 5afc4016a8..33f85e18d2 100644 --- a/_event_consumer_8cs_source.html +++ b/_event_consumer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_event_notification_8cs.html b/_event_notification_8cs.html index 9a861ad3dd..839da3beea 100644 --- a/_event_notification_8cs.html +++ b/_event_notification_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_event_notification_8cs_source.html b/_event_notification_8cs_source.html index 1f01668a13..7cf28223a3 100644 --- a/_event_notification_8cs_source.html +++ b/_event_notification_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_event_script_attribute_8cs.html b/_event_script_attribute_8cs.html index c1f6b80b6c..3e6415942c 100644 --- a/_event_script_attribute_8cs.html +++ b/_event_script_attribute_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_event_script_attribute_8cs_source.html b/_event_script_attribute_8cs_source.html index 3aaaf2b816..e99b1c8a20 100644 --- a/_event_script_attribute_8cs_source.html +++ b/_event_script_attribute_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_event_type_8cs.html b/_event_type_8cs.html index f0afd1a723..97e873cfa7 100644 --- a/_event_type_8cs.html +++ b/_event_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_event_type_8cs_source.html b/_event_type_8cs_source.html index 28172cf222..59598441f2 100644 --- a/_event_type_8cs_source.html +++ b/_event_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_features_8dox.html b/_features_8dox.html index c422af5676..6670940170 100644 --- a/_features_8dox.html +++ b/_features_8dox.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_file_logging_configuration_8cs.html b/_file_logging_configuration_8cs.html index f8e2795555..7263b64ff4 100644 --- a/_file_logging_configuration_8cs.html +++ b/_file_logging_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_file_logging_configuration_8cs_source.html b/_file_logging_configuration_8cs_source.html index 35cca84eee..c02640de73 100644 --- a/_file_logging_configuration_8cs_source.html +++ b/_file_logging_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_general_configuration_8cs.html b/_general_configuration_8cs.html index b861ce5c74..2826b1ce85 100644 --- a/_general_configuration_8cs.html +++ b/_general_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_general_configuration_8cs_source.html b/_general_configuration_8cs_source.html index 711863f393..d3a278b8fd 100644 --- a/_general_configuration_8cs_source.html +++ b/_general_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_git_hub_client_factory_8cs.html b/_git_hub_client_factory_8cs.html index fb473b3fd3..683cedc2cc 100644 --- a/_git_hub_client_factory_8cs.html +++ b/_git_hub_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_git_hub_client_factory_8cs_source.html b/_git_hub_client_factory_8cs_source.html index 19482de467..cfa3438e4b 100644 --- a/_git_hub_client_factory_8cs_source.html +++ b/_git_hub_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_global_suppressions_8cs.html b/_global_suppressions_8cs.html index 083ced67a3..f388c858f1 100644 --- a/_global_suppressions_8cs.html +++ b/_global_suppressions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_global_suppressions_8cs_source.html b/_global_suppressions_8cs_source.html index d5c45614aa..fd826554e3 100644 --- a/_global_suppressions_8cs_source.html +++ b/_global_suppressions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_header_types_8cs.html b/_header_types_8cs.html index f398989e4c..b44b766aa3 100644 --- a/_header_types_8cs.html +++ b/_header_types_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_header_types_8cs_source.html b/_header_types_8cs_source.html index 01c498183f..f62fb8d08d 100644 --- a/_header_types_8cs_source.html +++ b/_header_types_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_headers_exception_8cs.html b/_headers_exception_8cs.html index 6ffee70668..e56fd34909 100644 --- a/_headers_exception_8cs.html +++ b/_headers_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_headers_exception_8cs_source.html b/_headers_exception_8cs_source.html index 4c65d6eddb..6d43023f42 100644 --- a/_headers_exception_8cs_source.html +++ b/_headers_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_home_controller_8cs.html b/_home_controller_8cs.html index d62ad02c09..086cb2d090 100644 --- a/_home_controller_8cs.html +++ b/_home_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_home_controller_8cs_source.html b/_home_controller_8cs_source.html index f630861c80..76f646cb6e 100644 --- a/_home_controller_8cs_source.html +++ b/_home_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_host_builder_extensions_8cs.html b/_host_builder_extensions_8cs.html index 6c45a46f91..36efd436c9 100644 --- a/_host_builder_extensions_8cs.html +++ b/_host_builder_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_host_builder_extensions_8cs_source.html b/_host_builder_extensions_8cs_source.html index 06853181c4..92f1632fcd 100644 --- a/_host_builder_extensions_8cs_source.html +++ b/_host_builder_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_http_client_8cs.html b/_http_client_8cs.html index cf99a8bd0c..641d491653 100644 --- a/_http_client_8cs.html +++ b/_http_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_http_client_8cs_source.html b/_http_client_8cs_source.html index 9004b47126..b8481a7e17 100644 --- a/_http_client_8cs_source.html +++ b/_http_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_administration_client_8cs.html b/_i_administration_client_8cs.html index ed8842bc33..76c9545cf2 100644 --- a/_i_administration_client_8cs.html +++ b/_i_administration_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_administration_client_8cs_source.html b/_i_administration_client_8cs_source.html index 95ffd212ec..55656c7aa1 100644 --- a/_i_administration_client_8cs_source.html +++ b/_i_administration_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_api_client_8cs.html b/_i_api_client_8cs.html index 1dfd8d2daa..da3c60b1eb 100644 --- a/_i_api_client_8cs.html +++ b/_i_api_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_api_client_8cs_source.html b/_i_api_client_8cs_source.html index 37f8126294..265b151054 100644 --- a/_i_api_client_8cs_source.html +++ b/_i_api_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_api_client_factory_8cs.html b/_i_api_client_factory_8cs.html index 299dc5c48b..692b36257c 100644 --- a/_i_api_client_factory_8cs.html +++ b/_i_api_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_api_client_factory_8cs_source.html b/_i_api_client_factory_8cs_source.html index 4ee6eb5c7d..9c6bc33036 100644 --- a/_i_api_client_factory_8cs_source.html +++ b/_i_api_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_assembly_information_provider_8cs.html b/_i_assembly_information_provider_8cs.html index 6017eb0fca..6cd40d42ee 100644 --- a/_i_assembly_information_provider_8cs.html +++ b/_i_assembly_information_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_assembly_information_provider_8cs_source.html b/_i_assembly_information_provider_8cs_source.html index e6cb3360b1..0b0654a0fc 100644 --- a/_i_assembly_information_provider_8cs_source.html +++ b/_i_assembly_information_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_async_delayer_8cs.html b/_i_async_delayer_8cs.html index ae208763e2..7f0b7f0147 100644 --- a/_i_async_delayer_8cs.html +++ b/_i_async_delayer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_async_delayer_8cs_source.html b/_i_async_delayer_8cs_source.html index 36189b2037..1852292fff 100644 --- a/_i_async_delayer_8cs_source.html +++ b/_i_async_delayer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_authentication_context_8cs.html b/_i_authentication_context_8cs.html index 6b81610cbb..5d5c89eca7 100644 --- a/_i_authentication_context_8cs.html +++ b/_i_authentication_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_authentication_context_8cs_source.html b/_i_authentication_context_8cs_source.html index 0153e041b6..7d4add6589 100644 --- a/_i_authentication_context_8cs_source.html +++ b/_i_authentication_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_authentication_context_factory_8cs.html b/_i_authentication_context_factory_8cs.html index c998b760e0..0400ce5515 100644 --- a/_i_authentication_context_factory_8cs.html +++ b/_i_authentication_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_authentication_context_factory_8cs_source.html b/_i_authentication_context_factory_8cs_source.html index 45363ccdcf..1389f2a839 100644 --- a/_i_authentication_context_factory_8cs_source.html +++ b/_i_authentication_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_bridge_dispatcher_8cs.html b/_i_bridge_dispatcher_8cs.html index 25fd2435df..b7d5dbc192 100644 --- a/_i_bridge_dispatcher_8cs.html +++ b/_i_bridge_dispatcher_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_bridge_dispatcher_8cs_source.html b/_i_bridge_dispatcher_8cs_source.html index c96784b9a8..52b8379677 100644 --- a/_i_bridge_dispatcher_8cs_source.html +++ b/_i_bridge_dispatcher_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_bridge_handler_8cs.html b/_i_bridge_handler_8cs.html index c8c3d036d0..dea545cf15 100644 --- a/_i_bridge_handler_8cs.html +++ b/_i_bridge_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_bridge_handler_8cs_source.html b/_i_bridge_handler_8cs_source.html index 3cbb705d5d..59d9a7eef9 100644 --- a/_i_bridge_handler_8cs_source.html +++ b/_i_bridge_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_bridge_registrar_8cs.html b/_i_bridge_registrar_8cs.html index ab2a002c74..cdeee79f01 100644 --- a/_i_bridge_registrar_8cs.html +++ b/_i_bridge_registrar_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_bridge_registrar_8cs_source.html b/_i_bridge_registrar_8cs_source.html index 8d347a1ff2..77c2834600 100644 --- a/_i_bridge_registrar_8cs_source.html +++ b/_i_bridge_registrar_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_bridge_registration_8cs.html b/_i_bridge_registration_8cs.html index 428e9d9c2b..0cd3690c6b 100644 --- a/_i_bridge_registration_8cs.html +++ b/_i_bridge_registration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_bridge_registration_8cs_source.html b/_i_bridge_registration_8cs_source.html index 67b4622461..5de1d4772b 100644 --- a/_i_bridge_registration_8cs_source.html +++ b/_i_bridge_registration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_byond_client_8cs.html b/_i_byond_client_8cs.html index 66da0f6951..1856fe82bd 100644 --- a/_i_byond_client_8cs.html +++ b/_i_byond_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_byond_client_8cs_source.html b/_i_byond_client_8cs_source.html index 4e591cb9ed..dac6287ceb 100644 --- a/_i_byond_client_8cs_source.html +++ b/_i_byond_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_byond_executable_lock_8cs.html b/_i_byond_executable_lock_8cs.html index e92a418989..413f6d082c 100644 --- a/_i_byond_executable_lock_8cs.html +++ b/_i_byond_executable_lock_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_byond_executable_lock_8cs_source.html b/_i_byond_executable_lock_8cs_source.html index d25b14b37c..5f96f8c368 100644 --- a/_i_byond_executable_lock_8cs_source.html +++ b/_i_byond_executable_lock_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_byond_installer_8cs.html b/_i_byond_installer_8cs.html index 0668fd6c48..55cc57ac23 100644 --- a/_i_byond_installer_8cs.html +++ b/_i_byond_installer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_byond_installer_8cs_source.html b/_i_byond_installer_8cs_source.html index 3227501b2d..1cda0d8d73 100644 --- a/_i_byond_installer_8cs_source.html +++ b/_i_byond_installer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_byond_manager_8cs.html b/_i_byond_manager_8cs.html index 7437efd5e3..0ef05502fc 100644 --- a/_i_byond_manager_8cs.html +++ b/_i_byond_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_byond_manager_8cs_source.html b/_i_byond_manager_8cs_source.html index b7af5b09d9..6cc15389ed 100644 --- a/_i_byond_manager_8cs_source.html +++ b/_i_byond_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_channel_sink_8cs.html b/_i_channel_sink_8cs.html index 1fc0c1db2e..9440db5714 100644 --- a/_i_channel_sink_8cs.html +++ b/_i_channel_sink_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_channel_sink_8cs_source.html b/_i_channel_sink_8cs_source.html index ca8448b273..268508d580 100644 --- a/_i_channel_sink_8cs_source.html +++ b/_i_channel_sink_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_chat_bots_client_8cs.html b/_i_chat_bots_client_8cs.html index 02058a5909..127ec09ff0 100644 --- a/_i_chat_bots_client_8cs.html +++ b/_i_chat_bots_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_chat_bots_client_8cs_source.html b/_i_chat_bots_client_8cs_source.html index ece9a6803e..362334a666 100644 --- a/_i_chat_bots_client_8cs_source.html +++ b/_i_chat_bots_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_chat_manager_8cs.html b/_i_chat_manager_8cs.html index bdb9d2bce3..aed68e68c1 100644 --- a/_i_chat_manager_8cs.html +++ b/_i_chat_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_chat_manager_8cs_source.html b/_i_chat_manager_8cs_source.html index 0b32ff1464..4467d1f5f1 100644 --- a/_i_chat_manager_8cs_source.html +++ b/_i_chat_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_chat_manager_factory_8cs.html b/_i_chat_manager_factory_8cs.html index fa316f537c..05903cba7e 100644 --- a/_i_chat_manager_factory_8cs.html +++ b/_i_chat_manager_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_chat_manager_factory_8cs_source.html b/_i_chat_manager_factory_8cs_source.html index cd1f8f7bcf..322a77a754 100644 --- a/_i_chat_manager_factory_8cs_source.html +++ b/_i_chat_manager_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_chat_tracking_context_8cs.html b/_i_chat_tracking_context_8cs.html index 3848246b9d..8db798e16a 100644 --- a/_i_chat_tracking_context_8cs.html +++ b/_i_chat_tracking_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_chat_tracking_context_8cs_source.html b/_i_chat_tracking_context_8cs_source.html index 9f87d11dd0..1ebccb3df7 100644 --- a/_i_chat_tracking_context_8cs_source.html +++ b/_i_chat_tracking_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_claims_injector_8cs.html b/_i_claims_injector_8cs.html index 929973cffb..429ee74022 100644 --- a/_i_claims_injector_8cs.html +++ b/_i_claims_injector_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_claims_injector_8cs_source.html b/_i_claims_injector_8cs_source.html index 6aa2f8d73b..f8ee59da69 100644 --- a/_i_claims_injector_8cs_source.html +++ b/_i_claims_injector_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_command_8cs.html b/_i_command_8cs.html index fb09bd2551..0ee22cca43 100644 --- a/_i_command_8cs.html +++ b/_i_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_command_8cs_source.html b/_i_command_8cs_source.html index d87c51084a..906aae3906 100644 --- a/_i_command_8cs_source.html +++ b/_i_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_command_factory_8cs.html b/_i_command_factory_8cs.html index 3b18ef0e5d..9256257fa6 100644 --- a/_i_command_factory_8cs.html +++ b/_i_command_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_command_factory_8cs_source.html b/_i_command_factory_8cs_source.html index 5923683748..0918bdbae9 100644 --- a/_i_command_factory_8cs_source.html +++ b/_i_command_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_compile_job_sink_8cs.html b/_i_compile_job_sink_8cs.html index 5d98d8410f..270de0019b 100644 --- a/_i_compile_job_sink_8cs.html +++ b/_i_compile_job_sink_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_compile_job_sink_8cs_source.html b/_i_compile_job_sink_8cs_source.html index 7eafa6776e..29367ab5d7 100644 --- a/_i_compile_job_sink_8cs_source.html +++ b/_i_compile_job_sink_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_configuration_8cs.html b/_i_configuration_8cs.html index 6f27e0e540..99add08e1c 100644 --- a/_i_configuration_8cs.html +++ b/_i_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_configuration_8cs_source.html b/_i_configuration_8cs_source.html index fde280d8a5..e54e540f6d 100644 --- a/_i_configuration_8cs_source.html +++ b/_i_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_configuration_client_8cs.html b/_i_configuration_client_8cs.html index 5a2fdd9ab7..f02c0a3086 100644 --- a/_i_configuration_client_8cs.html +++ b/_i_configuration_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_configuration_client_8cs_source.html b/_i_configuration_client_8cs_source.html index 38a00c8af4..15029beaaa 100644 --- a/_i_configuration_client_8cs_source.html +++ b/_i_configuration_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_console_8cs.html b/_i_console_8cs.html index cd175be57d..4782aaf717 100644 --- a/_i_console_8cs.html +++ b/_i_console_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_console_8cs_source.html b/_i_console_8cs_source.html index d1357b65d4..563cb7a5a2 100644 --- a/_i_console_8cs_source.html +++ b/_i_console_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_credentials_provider_8cs.html b/_i_credentials_provider_8cs.html index 57ed683840..a875a1147f 100644 --- a/_i_credentials_provider_8cs.html +++ b/_i_credentials_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_credentials_provider_8cs_source.html b/_i_credentials_provider_8cs_source.html index 47f55067e4..64528e968a 100644 --- a/_i_credentials_provider_8cs_source.html +++ b/_i_credentials_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_cryptography_suite_8cs.html b/_i_cryptography_suite_8cs.html index 281a5586a2..f5b086b050 100644 --- a/_i_cryptography_suite_8cs.html +++ b/_i_cryptography_suite_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_cryptography_suite_8cs_source.html b/_i_cryptography_suite_8cs_source.html index b7f8be98c5..5ca7aa8d68 100644 --- a/_i_cryptography_suite_8cs_source.html +++ b/_i_cryptography_suite_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_custom_command_handler_8cs.html b/_i_custom_command_handler_8cs.html index 5cd6202c7d..4924d89c52 100644 --- a/_i_custom_command_handler_8cs.html +++ b/_i_custom_command_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_custom_command_handler_8cs_source.html b/_i_custom_command_handler_8cs_source.html index 35988b7fa3..c7c95e1416 100644 --- a/_i_custom_command_handler_8cs_source.html +++ b/_i_custom_command_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_collection_8cs.html b/_i_database_collection_8cs.html index 8991cd18bb..a905f76135 100644 --- a/_i_database_collection_8cs.html +++ b/_i_database_collection_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_collection_8cs_source.html b/_i_database_collection_8cs_source.html index 253427d354..b435f03e92 100644 --- a/_i_database_collection_8cs_source.html +++ b/_i_database_collection_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_connection_factory_8cs.html b/_i_database_connection_factory_8cs.html index ddcedd4f1a..0f779eccb0 100644 --- a/_i_database_connection_factory_8cs.html +++ b/_i_database_connection_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_connection_factory_8cs_source.html b/_i_database_connection_factory_8cs_source.html index ff705913f1..719dec71cc 100644 --- a/_i_database_connection_factory_8cs_source.html +++ b/_i_database_connection_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_context_8cs.html b/_i_database_context_8cs.html index f7265b639f..06e6c8a85b 100644 --- a/_i_database_context_8cs.html +++ b/_i_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_context_8cs_source.html b/_i_database_context_8cs_source.html index 5847226455..d55c4376ab 100644 --- a/_i_database_context_8cs_source.html +++ b/_i_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_context_factory_8cs.html b/_i_database_context_factory_8cs.html index a2f3066c6c..21f52df2de 100644 --- a/_i_database_context_factory_8cs.html +++ b/_i_database_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_context_factory_8cs_source.html b/_i_database_context_factory_8cs_source.html index 83fdcf5773..79c887e8d5 100644 --- a/_i_database_context_factory_8cs_source.html +++ b/_i_database_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_seeder_8cs.html b/_i_database_seeder_8cs.html index 8b4ed2c639..731ccf8840 100644 --- a/_i_database_seeder_8cs.html +++ b/_i_database_seeder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_database_seeder_8cs_source.html b/_i_database_seeder_8cs_source.html index 91aacba63d..1900926d7d 100644 --- a/_i_database_seeder_8cs_source.html +++ b/_i_database_seeder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dmb_factory_8cs.html b/_i_dmb_factory_8cs.html index 302a180d93..9d5021db5b 100644 --- a/_i_dmb_factory_8cs.html +++ b/_i_dmb_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dmb_factory_8cs_source.html b/_i_dmb_factory_8cs_source.html index 9260e01be7..4473cfcff7 100644 --- a/_i_dmb_factory_8cs_source.html +++ b/_i_dmb_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dmb_provider_8cs.html b/_i_dmb_provider_8cs.html index cf348a2abd..13a5980345 100644 --- a/_i_dmb_provider_8cs.html +++ b/_i_dmb_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dmb_provider_8cs_source.html b/_i_dmb_provider_8cs_source.html index 9525e94377..e94190a497 100644 --- a/_i_dmb_provider_8cs_source.html +++ b/_i_dmb_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dream_daemon_client_8cs.html b/_i_dream_daemon_client_8cs.html index e7e7afacd1..cdd8a42b37 100644 --- a/_i_dream_daemon_client_8cs.html +++ b/_i_dream_daemon_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dream_daemon_client_8cs_source.html b/_i_dream_daemon_client_8cs_source.html index ce7e39658b..b35619d827 100644 --- a/_i_dream_daemon_client_8cs_source.html +++ b/_i_dream_daemon_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dream_maker_8cs.html b/_i_dream_maker_8cs.html index 09d539cb43..dee3e35298 100644 --- a/_i_dream_maker_8cs.html +++ b/_i_dream_maker_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dream_maker_8cs_source.html b/_i_dream_maker_8cs_source.html index cd76d9465d..b80fe41bf4 100644 --- a/_i_dream_maker_8cs_source.html +++ b/_i_dream_maker_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dream_maker_client_8cs.html b/_i_dream_maker_client_8cs.html index ae748abd81..7b8c51b60d 100644 --- a/_i_dream_maker_client_8cs.html +++ b/_i_dream_maker_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_dream_maker_client_8cs_source.html b/_i_dream_maker_client_8cs_source.html index 8aa6e680b9..9ce81b7fb0 100644 --- a/_i_dream_maker_client_8cs_source.html +++ b/_i_dream_maker_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_event_consumer_8cs.html b/_i_event_consumer_8cs.html index 67d6c47dea..77cf33d7eb 100644 --- a/_i_event_consumer_8cs.html +++ b/_i_event_consumer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_event_consumer_8cs_source.html b/_i_event_consumer_8cs_source.html index 25855995db..0e7081fff7 100644 --- a/_i_event_consumer_8cs_source.html +++ b/_i_event_consumer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_git_hub_client_factory_8cs.html b/_i_git_hub_client_factory_8cs.html index 4159ac2dcc..b213bdb098 100644 --- a/_i_git_hub_client_factory_8cs.html +++ b/_i_git_hub_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_git_hub_client_factory_8cs_source.html b/_i_git_hub_client_factory_8cs_source.html index d1d10af62f..f1ea3c6bb0 100644 --- a/_i_git_hub_client_factory_8cs_source.html +++ b/_i_git_hub_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_http_client_8cs.html b/_i_http_client_8cs.html index ef755cd8f2..bd6b09cab2 100644 --- a/_i_http_client_8cs.html +++ b/_i_http_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_http_client_8cs_source.html b/_i_http_client_8cs_source.html index 94a9c81857..fc463949f3 100644 --- a/_i_http_client_8cs_source.html +++ b/_i_http_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_i_o_manager_8cs.html b/_i_i_o_manager_8cs.html index 3d77ce3f90..1162a8f6b0 100644 --- a/_i_i_o_manager_8cs.html +++ b/_i_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_i_o_manager_8cs_source.html b/_i_i_o_manager_8cs_source.html index 38f631340f..8f23d429b6 100644 --- a/_i_i_o_manager_8cs_source.html +++ b/_i_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_identity_cache_8cs.html b/_i_identity_cache_8cs.html index 8d65d1f6ec..09389017ae 100644 --- a/_i_identity_cache_8cs.html +++ b/_i_identity_cache_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_identity_cache_8cs_source.html b/_i_identity_cache_8cs_source.html index 10174911bb..12223b09e9 100644 --- a/_i_identity_cache_8cs_source.html +++ b/_i_identity_cache_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_8cs.html b/_i_instance_8cs.html index d77c3a41e8..4d17f554a3 100644 --- a/_i_instance_8cs.html +++ b/_i_instance_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_8cs_source.html b/_i_instance_8cs_source.html index 5e2a256bfd..b1d9eab74f 100644 --- a/_i_instance_8cs_source.html +++ b/_i_instance_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_client_8cs.html b/_i_instance_client_8cs.html index 2dc053b82b..1f2dc2565a 100644 --- a/_i_instance_client_8cs.html +++ b/_i_instance_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_client_8cs_source.html b/_i_instance_client_8cs_source.html index 636b31017b..8f3e1b21fc 100644 --- a/_i_instance_client_8cs_source.html +++ b/_i_instance_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_factory_8cs.html b/_i_instance_factory_8cs.html index 0d5cbf9644..1c07c4a5d7 100644 --- a/_i_instance_factory_8cs.html +++ b/_i_instance_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_factory_8cs_source.html b/_i_instance_factory_8cs_source.html index 313caaa87c..4c4b312f38 100644 --- a/_i_instance_factory_8cs_source.html +++ b/_i_instance_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_manager_8cs.html b/_i_instance_manager_8cs.html index 01bf4305bc..b3dc8a1e4b 100644 --- a/_i_instance_manager_8cs.html +++ b/_i_instance_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_manager_8cs_source.html b/_i_instance_manager_8cs_source.html index 78305daa92..fd4833f096 100644 --- a/_i_instance_manager_8cs_source.html +++ b/_i_instance_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_manager_client_8cs.html b/_i_instance_manager_client_8cs.html index 7440ae729c..a7adcf31dc 100644 --- a/_i_instance_manager_client_8cs.html +++ b/_i_instance_manager_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_manager_client_8cs_source.html b/_i_instance_manager_client_8cs_source.html index f5387390a7..86422a9940 100644 --- a/_i_instance_manager_client_8cs_source.html +++ b/_i_instance_manager_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_user_client_8cs.html b/_i_instance_user_client_8cs.html index 70eaa57f0e..5f22d568cb 100644 --- a/_i_instance_user_client_8cs.html +++ b/_i_instance_user_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_instance_user_client_8cs_source.html b/_i_instance_user_client_8cs_source.html index 9ce5bea579..c8bac7d1a9 100644 --- a/_i_instance_user_client_8cs_source.html +++ b/_i_instance_user_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_job_manager_8cs.html b/_i_job_manager_8cs.html index 6c66689585..120a4a6d0b 100644 --- a/_i_job_manager_8cs.html +++ b/_i_job_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_job_manager_8cs_source.html b/_i_job_manager_8cs_source.html index aa5f6965f9..a3a9db36cf 100644 --- a/_i_job_manager_8cs_source.html +++ b/_i_job_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_jobs_client_8cs.html b/_i_jobs_client_8cs.html index 2ddbde5ce5..c0fac73fff 100644 --- a/_i_jobs_client_8cs.html +++ b/_i_jobs_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_jobs_client_8cs_source.html b/_i_jobs_client_8cs_source.html index 48744ae570..f762382df2 100644 --- a/_i_jobs_client_8cs_source.html +++ b/_i_jobs_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_latest_compile_job_provider_8cs.html b/_i_latest_compile_job_provider_8cs.html index f257fc9257..c3332a0198 100644 --- a/_i_latest_compile_job_provider_8cs.html +++ b/_i_latest_compile_job_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_latest_compile_job_provider_8cs_source.html b/_i_latest_compile_job_provider_8cs_source.html index f25c204cb5..c9d4517245 100644 --- a/_i_latest_compile_job_provider_8cs_source.html +++ b/_i_latest_compile_job_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_lib_git2_commands_8cs.html b/_i_lib_git2_commands_8cs.html index bef4932f71..82207b6da4 100644 --- a/_i_lib_git2_commands_8cs.html +++ b/_i_lib_git2_commands_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_lib_git2_commands_8cs_source.html b/_i_lib_git2_commands_8cs_source.html index caf213f0a4..1ea9b2e058 100644 --- a/_i_lib_git2_commands_8cs_source.html +++ b/_i_lib_git2_commands_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_lib_git2_repository_factory_8cs.html b/_i_lib_git2_repository_factory_8cs.html index 43eb118662..8af48121fb 100644 --- a/_i_lib_git2_repository_factory_8cs.html +++ b/_i_lib_git2_repository_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_lib_git2_repository_factory_8cs_source.html b/_i_lib_git2_repository_factory_8cs_source.html index c92d1f817a..efd1768464 100644 --- a/_i_lib_git2_repository_factory_8cs_source.html +++ b/_i_lib_git2_repository_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_network_prompt_reaper_8cs.html b/_i_network_prompt_reaper_8cs.html index 197e5f4609..79d6a0ab3e 100644 --- a/_i_network_prompt_reaper_8cs.html +++ b/_i_network_prompt_reaper_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_network_prompt_reaper_8cs_source.html b/_i_network_prompt_reaper_8cs_source.html index cf94c9abc6..fc86ec6abc 100644 --- a/_i_network_prompt_reaper_8cs_source.html +++ b/_i_network_prompt_reaper_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_platform_identifier_8cs.html b/_i_platform_identifier_8cs.html index 66e162780c..89924a6427 100644 --- a/_i_platform_identifier_8cs.html +++ b/_i_platform_identifier_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_platform_identifier_8cs_source.html b/_i_platform_identifier_8cs_source.html index a0281eb066..4f7762b028 100644 --- a/_i_platform_identifier_8cs_source.html +++ b/_i_platform_identifier_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_post_setup_services_8cs.html b/_i_post_setup_services_8cs.html index 6526a1700c..0c523e7df9 100644 --- a/_i_post_setup_services_8cs.html +++ b/_i_post_setup_services_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_post_setup_services_8cs_source.html b/_i_post_setup_services_8cs_source.html index 72534f22a2..81da6cad63 100644 --- a/_i_post_setup_services_8cs_source.html +++ b/_i_post_setup_services_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_post_write_handler_8cs.html b/_i_post_write_handler_8cs.html index f1db6a9242..00dcf7a60c 100644 --- a/_i_post_write_handler_8cs.html +++ b/_i_post_write_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_post_write_handler_8cs_source.html b/_i_post_write_handler_8cs_source.html index f484d34056..648e1dc75a 100644 --- a/_i_post_write_handler_8cs_source.html +++ b/_i_post_write_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_process_8cs.html b/_i_process_8cs.html index 69c49946f9..cf57afff6c 100644 --- a/_i_process_8cs.html +++ b/_i_process_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_process_8cs_source.html b/_i_process_8cs_source.html index b5ecfd594e..d726168f52 100644 --- a/_i_process_8cs_source.html +++ b/_i_process_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_process_base_8cs.html b/_i_process_base_8cs.html index 57f14a39e4..99372d7e03 100644 --- a/_i_process_base_8cs.html +++ b/_i_process_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_process_base_8cs_source.html b/_i_process_base_8cs_source.html index 732dd0b26b..7c98596829 100644 --- a/_i_process_base_8cs_source.html +++ b/_i_process_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_process_executor_8cs.html b/_i_process_executor_8cs.html index 2068afc420..6d0b6fced4 100644 --- a/_i_process_executor_8cs.html +++ b/_i_process_executor_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_process_executor_8cs_source.html b/_i_process_executor_8cs_source.html index 062fb90c9e..cc28556226 100644 --- a/_i_process_executor_8cs_source.html +++ b/_i_process_executor_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_process_features_8cs.html b/_i_process_features_8cs.html index 1068fdc7b7..1956a6055c 100644 --- a/_i_process_features_8cs.html +++ b/_i_process_features_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_process_features_8cs_source.html b/_i_process_features_8cs_source.html index 3474a09b70..b5b1d753ed 100644 --- a/_i_process_features_8cs_source.html +++ b/_i_process_features_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_provider_8cs.html b/_i_provider_8cs.html index 7f0bcf0d7b..1b8e307067 100644 --- a/_i_provider_8cs.html +++ b/_i_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_provider_8cs_source.html b/_i_provider_8cs_source.html index 1d2aefa402..69f06e2eb8 100644 --- a/_i_provider_8cs_source.html +++ b/_i_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_provider_factory_8cs.html b/_i_provider_factory_8cs.html index 0dccf874e8..a9b76f8434 100644 --- a/_i_provider_factory_8cs.html +++ b/_i_provider_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_provider_factory_8cs_source.html b/_i_provider_factory_8cs_source.html index 683d39a18f..ef244d74d5 100644 --- a/_i_provider_factory_8cs_source.html +++ b/_i_provider_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_rename_notifyee_8cs.html b/_i_rename_notifyee_8cs.html index 9ed30c375a..b8d8d6386d 100644 --- a/_i_rename_notifyee_8cs.html +++ b/_i_rename_notifyee_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_rename_notifyee_8cs_source.html b/_i_rename_notifyee_8cs_source.html index 7ebf5a1731..2104f3f4c5 100644 --- a/_i_rename_notifyee_8cs_source.html +++ b/_i_rename_notifyee_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_repository_8cs.html b/_i_repository_8cs.html index a40f360415..102b1518f5 100644 --- a/_i_repository_8cs.html +++ b/_i_repository_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_repository_8cs_source.html b/_i_repository_8cs_source.html index b73b627a63..2c3f65066b 100644 --- a/_i_repository_8cs_source.html +++ b/_i_repository_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_repository_client_8cs.html b/_i_repository_client_8cs.html index e505cccccc..43f7a2653e 100644 --- a/_i_repository_client_8cs.html +++ b/_i_repository_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_repository_client_8cs_source.html b/_i_repository_client_8cs_source.html index 59a4730396..ac1628677f 100644 --- a/_i_repository_client_8cs_source.html +++ b/_i_repository_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_repository_manager_8cs.html b/_i_repository_manager_8cs.html index 552f1a8f9e..602cf0d3d9 100644 --- a/_i_repository_manager_8cs.html +++ b/_i_repository_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_repository_manager_8cs_source.html b/_i_repository_manager_8cs_source.html index 2031186140..3d01a89b0b 100644 --- a/_i_repository_manager_8cs_source.html +++ b/_i_repository_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_request_logger_8cs.html b/_i_request_logger_8cs.html index f07a8be266..3055a09ca3 100644 --- a/_i_request_logger_8cs.html +++ b/_i_request_logger_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_request_logger_8cs_source.html b/_i_request_logger_8cs_source.html index d0dd150ab9..ab11168caf 100644 --- a/_i_request_logger_8cs_source.html +++ b/_i_request_logger_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_restart_handler_8cs.html b/_i_restart_handler_8cs.html index c17af20a53..843c81b760 100644 --- a/_i_restart_handler_8cs.html +++ b/_i_restart_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_restart_handler_8cs_source.html b/_i_restart_handler_8cs_source.html index bbf12d9acd..47818e139c 100644 --- a/_i_restart_handler_8cs_source.html +++ b/_i_restart_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_restart_registration_8cs.html b/_i_restart_registration_8cs.html index e146391e3f..5b7c38ec17 100644 --- a/_i_restart_registration_8cs.html +++ b/_i_restart_registration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_restart_registration_8cs_source.html b/_i_restart_registration_8cs_source.html index 10c530134b..e493dccad4 100644 --- a/_i_restart_registration_8cs_source.html +++ b/_i_restart_registration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_8cs.html b/_i_server_8cs.html index 6046a4b6d0..8e09c228f6 100644 --- a/_i_server_8cs.html +++ b/_i_server_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_8cs_source.html b/_i_server_8cs_source.html index 2c2cbaf7aa..941a1ea5fa 100644 --- a/_i_server_8cs_source.html +++ b/_i_server_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_client_8cs.html b/_i_server_client_8cs.html index 3736b1deb2..13b2326414 100644 --- a/_i_server_client_8cs.html +++ b/_i_server_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_client_8cs_source.html b/_i_server_client_8cs_source.html index 1baad20a58..198f975021 100644 --- a/_i_server_client_8cs_source.html +++ b/_i_server_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_client_factory_8cs.html b/_i_server_client_factory_8cs.html index cc807f3bd4..9492658200 100644 --- a/_i_server_client_factory_8cs.html +++ b/_i_server_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_client_factory_8cs_source.html b/_i_server_client_factory_8cs_source.html index 1c1c66a512..090aeb8a0d 100644 --- a/_i_server_client_factory_8cs_source.html +++ b/_i_server_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_control_8cs.html b/_i_server_control_8cs.html index 16fc64e50c..0b465bfa03 100644 --- a/_i_server_control_8cs.html +++ b/_i_server_control_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_control_8cs_source.html b/_i_server_control_8cs_source.html index 638114504b..b84ec8317d 100644 --- a/_i_server_control_8cs_source.html +++ b/_i_server_control_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_factory_8cs.html b/_i_server_factory_8cs.html index f349014a9d..85a8dda5b9 100644 --- a/_i_server_factory_8cs.html +++ b/_i_server_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_factory_8cs_source.html b/_i_server_factory_8cs_source.html index 2f857a1c67..d3b679421d 100644 --- a/_i_server_factory_8cs_source.html +++ b/_i_server_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_port_provider_8cs.html b/_i_server_port_provider_8cs.html index 7b2806fa7e..c0250318f8 100644 --- a/_i_server_port_provider_8cs.html +++ b/_i_server_port_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_server_port_provider_8cs_source.html b/_i_server_port_provider_8cs_source.html index f56f2150aa..e9af3d8a93 100644 --- a/_i_server_port_provider_8cs_source.html +++ b/_i_server_port_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_session_controller_8cs.html b/_i_session_controller_8cs.html index 3b7060d97e..3fb8fb442e 100644 --- a/_i_session_controller_8cs.html +++ b/_i_session_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_session_controller_8cs_source.html b/_i_session_controller_8cs_source.html index 874ae0d54d..228ce13a58 100644 --- a/_i_session_controller_8cs_source.html +++ b/_i_session_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_session_controller_factory_8cs.html b/_i_session_controller_factory_8cs.html index 9e029bad69..33b2446db2 100644 --- a/_i_session_controller_factory_8cs.html +++ b/_i_session_controller_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_session_controller_factory_8cs_source.html b/_i_session_controller_factory_8cs_source.html index 421f417801..3ee2ce0527 100644 --- a/_i_session_controller_factory_8cs_source.html +++ b/_i_session_controller_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_session_persistor_8cs.html b/_i_session_persistor_8cs.html index d029a0684c..957079ad49 100644 --- a/_i_session_persistor_8cs.html +++ b/_i_session_persistor_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_session_persistor_8cs_source.html b/_i_session_persistor_8cs_source.html index 33cffe81b7..5e2ddef426 100644 --- a/_i_session_persistor_8cs_source.html +++ b/_i_session_persistor_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_symlink_factory_8cs.html b/_i_symlink_factory_8cs.html index bf8bcfa524..ab60eb6e1f 100644 --- a/_i_symlink_factory_8cs.html +++ b/_i_symlink_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_symlink_factory_8cs_source.html b/_i_symlink_factory_8cs_source.html index df77bf666a..e16d9b6975 100644 --- a/_i_symlink_factory_8cs_source.html +++ b/_i_symlink_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_synchronous_i_o_manager_8cs.html b/_i_synchronous_i_o_manager_8cs.html index 531218a786..3b39b6ce4a 100644 --- a/_i_synchronous_i_o_manager_8cs.html +++ b/_i_synchronous_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_synchronous_i_o_manager_8cs_source.html b/_i_synchronous_i_o_manager_8cs_source.html index a00937cc3a..6887c81c4a 100644 --- a/_i_synchronous_i_o_manager_8cs_source.html +++ b/_i_synchronous_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_system_identity_8cs.html b/_i_system_identity_8cs.html index c8697a7c56..df31662e49 100644 --- a/_i_system_identity_8cs.html +++ b/_i_system_identity_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_system_identity_8cs_source.html b/_i_system_identity_8cs_source.html index c5c11a93d3..58ccd4bc73 100644 --- a/_i_system_identity_8cs_source.html +++ b/_i_system_identity_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_system_identity_factory_8cs.html b/_i_system_identity_factory_8cs.html index bbb161305d..b7e6495649 100644 --- a/_i_system_identity_factory_8cs.html +++ b/_i_system_identity_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_system_identity_factory_8cs_source.html b/_i_system_identity_factory_8cs_source.html index a6f5876b4b..d15da5c6b7 100644 --- a/_i_system_identity_factory_8cs_source.html +++ b/_i_system_identity_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_token_factory_8cs.html b/_i_token_factory_8cs.html index 1c794b6fa3..831aa851b3 100644 --- a/_i_token_factory_8cs.html +++ b/_i_token_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_token_factory_8cs_source.html b/_i_token_factory_8cs_source.html index bb6e86b564..854f206dcd 100644 --- a/_i_token_factory_8cs_source.html +++ b/_i_token_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_topic_client_factory_8cs.html b/_i_topic_client_factory_8cs.html index 3f2c3f4f4d..46eca7c900 100644 --- a/_i_topic_client_factory_8cs.html +++ b/_i_topic_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_topic_client_factory_8cs_source.html b/_i_topic_client_factory_8cs_source.html index 4352120a51..8bd67dd5c5 100644 --- a/_i_topic_client_factory_8cs_source.html +++ b/_i_topic_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_users_client_8cs.html b/_i_users_client_8cs.html index f27e6af5aa..c1ab93ddcc 100644 --- a/_i_users_client_8cs.html +++ b/_i_users_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_i_users_client_8cs_source.html b/_i_users_client_8cs_source.html index 3c13735baf..4944219966 100644 --- a/_i_users_client_8cs_source.html +++ b/_i_users_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_identity_cache_8cs.html b/_identity_cache_8cs.html index d2d90dd5c4..bab01e3741 100644 --- a/_identity_cache_8cs.html +++ b/_identity_cache_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_identity_cache_8cs_source.html b/_identity_cache_8cs_source.html index b6bdb78b36..244c0f321b 100644 --- a/_identity_cache_8cs_source.html +++ b/_identity_cache_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_identity_cache_object_8cs.html b/_identity_cache_object_8cs.html index 72e38e6d2f..582adaf78b 100644 --- a/_identity_cache_object_8cs.html +++ b/_identity_cache_object_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_identity_cache_object_8cs_source.html b/_identity_cache_object_8cs_source.html index c4c07e253f..6b79edbdce 100644 --- a/_identity_cache_object_8cs_source.html +++ b/_identity_cache_object_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_client_8cs.html b/_instance_client_8cs.html index 883a599197..eb5a50268d 100644 --- a/_instance_client_8cs.html +++ b/_instance_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_client_8cs_source.html b/_instance_client_8cs_source.html index 60bdde2341..45811b7e5c 100644 --- a/_instance_client_8cs_source.html +++ b/_instance_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_controller_8cs.html b/_instance_controller_8cs.html index 2e09058ee1..cacedd0ca7 100644 --- a/_instance_controller_8cs.html +++ b/_instance_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_controller_8cs_source.html b/_instance_controller_8cs_source.html index 44b882ac5b..7ed44ee46b 100644 --- a/_instance_controller_8cs_source.html +++ b/_instance_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,13 +94,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
InstanceController.cs
-Go to the documentation of this file.
1 using Microsoft.AspNetCore.Mvc;
2 using Microsoft.EntityFrameworkCore;
3 using Microsoft.Extensions.Logging;
4 using Microsoft.Extensions.Options;
5 using System;
6 using System.Collections.Generic;
7 using System.Globalization;
8 using System.IO;
9 using System.Linq;
10 using System.Linq.Expressions;
11 using System.Reflection;
12 using System.Threading;
13 using System.Threading.Tasks;
14 using Tgstation.Server.Api;
20 using Tgstation.Server.Host.IO;
25 
26 namespace Tgstation.Server.Host.Controllers
27 {
31  [Route(Routes.InstanceManager)]
32  #pragma warning disable CA1506 // TODO: Decomplexify
33  public sealed class InstanceController : ApiController
34  {
38  const string InstanceAttachFileName = "TGS4_ALLOW_INSTANCE_ATTACH";
39 
40  const string MoveInstanceJobPrefix = "Move instance ID ";
41 
46 
51 
56 
61 
66 
71 
85  IDatabaseContext databaseContext,
86  IAuthenticationContextFactory authenticationContextFactory,
87  IJobManager jobManager,
88  IInstanceManager instanceManager,
89  IIOManager ioManager,
90  IAssemblyInformationProvider assemblyInformationProvider,
91  IPlatformIdentifier platformIdentifier,
92  IOptions<GeneralConfiguration> generalConfigurationOptions,
93  ILogger<InstanceController> logger)
94  : base(
95  databaseContext,
96  authenticationContextFactory,
97  logger,
98  false)
99  {
100  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
101  this.instanceManager = instanceManager ?? throw new ArgumentNullException(nameof(instanceManager));
102  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
103  this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
104  this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
105  generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
106  }
107 
108  string NormalizePath(string path)
109  {
110  if (path == null)
111  return null;
112 
113  path = ioManager.ResolvePath(path);
114  if (platformIdentifier.IsWindows)
115  path = path.ToUpperInvariant().Replace('\\', '/');
116 
117  return path;
118  }
119 
120  Models.InstanceUser InstanceAdminUser(Models.InstanceUser userToModify)
121  {
122  if (userToModify == null)
123  userToModify = new Models.InstanceUser()
124  {
125  UserId = AuthenticationContext.User.Id
126  };
127  userToModify.ByondRights = RightsHelper.AllRights<ByondRights>();
128  userToModify.ChatBotRights = RightsHelper.AllRights<ChatBotRights>();
129  userToModify.ConfigurationRights = RightsHelper.AllRights<ConfigurationRights>();
130  userToModify.DreamDaemonRights = RightsHelper.AllRights<DreamDaemonRights>();
131  userToModify.DreamMakerRights = RightsHelper.AllRights<DreamMakerRights>();
132  userToModify.RepositoryRights = RightsHelper.AllRights<RepositoryRights>();
133  userToModify.InstanceUserRights = RightsHelper.AllRights<InstanceUserRights>();
134  return userToModify;
135  }
136 
145  [HttpPut]
146  [TgsAuthorize(InstanceManagerRights.Create)]
147  [ProducesResponseType(typeof(Api.Models.Instance), 200)]
148  [ProducesResponseType(typeof(Api.Models.Instance), 201)]
149  public async Task<IActionResult> Create([FromBody] Api.Models.Instance model, CancellationToken cancellationToken)
150  {
151  if (model == null)
152  throw new ArgumentNullException(nameof(model));
153 
154  if (String.IsNullOrWhiteSpace(model.Name))
155  return BadRequest(new ErrorMessage(ErrorCode.InstanceWhitespaceName));
156 
157  var targetInstancePath = NormalizePath(model.Path);
158  model.Path = targetInstancePath;
159 
160  var installationDirectoryPath = NormalizePath(DefaultIOManager.CurrentDirectory);
161 
162  bool InstanceIsChildOf(string otherPath)
163  {
164  if (!targetInstancePath.StartsWith(otherPath, StringComparison.Ordinal))
165  return false;
166 
167  bool sameLength = targetInstancePath.Length == otherPath.Length;
168  char dirSeparatorChar = targetInstancePath.ToCharArray()[Math.Min(otherPath.Length, targetInstancePath.Length - 1)];
169  return sameLength
170  || dirSeparatorChar == Path.DirectorySeparatorChar
171  || dirSeparatorChar == Path.AltDirectorySeparatorChar;
172  }
173 
174  if (InstanceIsChildOf(installationDirectoryPath))
175  return Conflict(new ErrorMessage(ErrorCode.InstanceAtConflictingPath));
176 
177  // Validate it's not a child of any other instance
178  IActionResult earlyOut = null;
179  ulong countOfOtherInstances = 0;
180  using (var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken))
181  {
182  var newCancellationToken = cts.Token;
183  try
184  {
185  await DatabaseContext
186  .Instances
187  .AsQueryable()
188  .Select(x => new Models.Instance
189  {
190  Path = x.Path
191  })
192  .ForEachAsync(
193  otherInstance =>
194  {
195  if (++countOfOtherInstances >= generalConfiguration.InstanceLimit)
196  earlyOut ??= Conflict(new ErrorMessage(ErrorCode.InstanceLimitReached));
197  else if (InstanceIsChildOf(otherInstance.Path))
198  earlyOut ??= Conflict(new ErrorMessage(ErrorCode.InstanceAtConflictingPath));
199 
200  if (earlyOut != null && !newCancellationToken.IsCancellationRequested)
201  cts.Cancel();
202  },
203  newCancellationToken)
204  .ConfigureAwait(false);
205  }
206  catch (OperationCanceledException)
207  {
208  cancellationToken.ThrowIfCancellationRequested();
209  }
210  }
211 
212  if (earlyOut != null)
213  return earlyOut;
214 
215  // Last test, ensure it's in the list of valid paths
216  if (!(generalConfiguration.ValidInstancePaths?
217  .Select(path => NormalizePath(path))
218  .Any(path => InstanceIsChildOf(path)) ?? true))
219  return BadRequest(new ErrorMessage(ErrorCode.InstanceNotAtWhitelistedPath));
220 
221  async Task<bool> DirExistsAndIsNotEmpty()
222  {
223  if (!await ioManager.DirectoryExists(model.Path, cancellationToken).ConfigureAwait(false))
224  return false;
225 
226  var filesTask = ioManager.GetFiles(model.Path, cancellationToken);
227  var dirsTask = ioManager.GetDirectories(model.Path, cancellationToken);
228 
229  var files = await filesTask.ConfigureAwait(false);
230  var dirs = await dirsTask.ConfigureAwait(false);
231 
232  return files.Concat(dirs).Any();
233  }
234 
235  var dirExistsTask = DirExistsAndIsNotEmpty();
236  bool attached = false;
237  if (await ioManager.FileExists(model.Path, cancellationToken).ConfigureAwait(false) || await dirExistsTask.ConfigureAwait(false))
238  if (!await ioManager.FileExists(ioManager.ConcatPath(model.Path, InstanceAttachFileName), cancellationToken).ConfigureAwait(false))
239  return Conflict(new ErrorMessage(ErrorCode.InstanceAtExistingPath));
240  else
241  attached = true;
242 
243  var newInstance = new Models.Instance
244  {
245  ConfigurationType = model.ConfigurationType ?? ConfigurationType.Disallowed,
247  {
248  AllowWebClient = false,
249  AutoStart = false,
250  Port = 1337,
251  SecurityLevel = DreamDaemonSecurity.Safe,
252  StartupTimeout = 60,
253  HeartbeatSeconds = 60,
254  TopicRequestTimeout = generalConfiguration.ByondTopicTimeout
255  },
257  {
258  ApiValidationPort = 1339,
259  ApiValidationSecurityLevel = DreamDaemonSecurity.Safe,
260  RequireDMApiValidation = true
261  },
262  Name = model.Name,
263  Online = false,
264  Path = model.Path,
265  AutoUpdateInterval = model.AutoUpdateInterval ?? 0,
266  ChatBotLimit = model.ChatBotLimit ?? Models.Instance.DefaultChatBotLimit,
268  {
269  CommitterEmail = "tgstation-server@users.noreply.github.com",
270  CommitterName = assemblyInformationProvider.VersionPrefix,
271  PushTestMergeCommits = false,
272  ShowTestMergeCommitters = false,
273  AutoUpdatesKeepTestMerges = false,
274  AutoUpdatesSynchronize = false,
275  PostTestMergeComment = false
276  },
277  InstanceUsers = new List<Models.InstanceUser> // give this user full privileges on the instance
278  {
279  InstanceAdminUser(null)
280  }
281  };
282 
283  DatabaseContext.Instances.Add(newInstance);
284  try
285  {
286  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
287 
288  try
289  {
290  // actually reserve it now
291  await ioManager.CreateDirectory(targetInstancePath, cancellationToken).ConfigureAwait(false);
292  await ioManager.DeleteFile(ioManager.ConcatPath(targetInstancePath, InstanceAttachFileName), cancellationToken).ConfigureAwait(false);
293  }
294  catch
295  {
296  // oh shit delete the model
297  DatabaseContext.Instances.Remove(newInstance);
298 
299  await DatabaseContext.Save(default).ConfigureAwait(false);
300  throw;
301  }
302  }
303  catch (IOException e)
304  {
305  return Conflict(new ErrorMessage(ErrorCode.IOError)
306  {
307  AdditionalData = e.Message
308  });
309  }
310 
311  Logger.LogInformation("{0} {1} instance {2}: {3} ({4})", AuthenticationContext.User.Name, attached ? "attached" : "created", newInstance.Name, newInstance.Id, newInstance.Path);
312 
313  var api = newInstance.ToApi();
314  return attached ? (IActionResult)Json(api) : Created(api);
315  }
316 
325  [HttpDelete("{id}")]
326  [TgsAuthorize(InstanceManagerRights.Delete)]
327  [ProducesResponseType(204)]
328  [ProducesResponseType(typeof(ErrorMessage), 410)]
329  public async Task<IActionResult> Delete(long id, CancellationToken cancellationToken)
330  {
331  var originalModel = await DatabaseContext
332  .Instances
333  .AsQueryable()
334  .Where(x => x.Id == id)
335  .FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
336  if (originalModel == default)
337  return Gone();
338  if (originalModel.Online.Value)
339  return Conflict(new ErrorMessage(ErrorCode.InstanceDetachOnline));
340 
341  DatabaseContext.Instances.Remove(originalModel);
342 
343  var attachFileName = ioManager.ConcatPath(originalModel.Path, InstanceAttachFileName);
344  await ioManager.WriteAllBytes(attachFileName, Array.Empty<byte>(), default).ConfigureAwait(false);
345  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false); // cascades everything
346  return NoContent();
347  }
348 
358  [HttpPost]
359  [TgsAuthorize(InstanceManagerRights.Relocate | InstanceManagerRights.Rename | InstanceManagerRights.SetAutoUpdate | InstanceManagerRights.SetConfiguration | InstanceManagerRights.SetOnline | InstanceManagerRights.SetChatBotLimit)]
360  [ProducesResponseType(typeof(Api.Models.Instance), 200)]
361  [ProducesResponseType(typeof(Api.Models.Instance), 202)]
362  [ProducesResponseType(typeof(ErrorMessage), 410)]
363 #pragma warning disable CA1502 // TODO: Decomplexify
364  public async Task<IActionResult> Update([FromBody] Api.Models.Instance model, CancellationToken cancellationToken)
365  {
366  if (model == null)
367  throw new ArgumentNullException(nameof(model));
368 
369  IQueryable<Models.Instance> InstanceQuery() => DatabaseContext
370  .Instances
371  .AsQueryable()
372  .Where(x => x.Id == model.Id);
373 
374  var moveJob = await InstanceQuery()
375  .SelectMany(x => x.Jobs).
376 #pragma warning disable CA1307 // Specify StringComparison
377  Where(x => !x.StoppedAt.HasValue && x.Description.StartsWith(MoveInstanceJobPrefix))
378 #pragma warning restore CA1307 // Specify StringComparison
379  .Select(x => new Models.Job
380  {
381  Id = x.Id
382  }).FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
383 
384  if (moveJob != default)
385  await jobManager.CancelJob(moveJob, AuthenticationContext.User, true, cancellationToken).ConfigureAwait(false); // cancel it now
386 
387  var originalModel = await InstanceQuery()
388  .Include(x => x.RepositorySettings)
389  .Include(x => x.ChatSettings)
390  .ThenInclude(x => x.Channels)
391  .Include(x => x.DreamDaemonSettings) // need these for onlining
392  .FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
393  if (originalModel == default(Models.Instance))
394  return Gone();
395 
396  var userRights = (InstanceManagerRights)AuthenticationContext.GetRight(RightsType.InstanceManager);
397  bool CheckModified<T>(Expression<Func<Api.Models.Instance, T>> expression, InstanceManagerRights requiredRight)
398  {
399  var memberSelectorExpression = (MemberExpression)expression.Body;
400  var property = (PropertyInfo)memberSelectorExpression.Member;
401 
402  var newVal = property.GetValue(model);
403  if (newVal == null)
404  return false;
405  if (!userRights.HasFlag(requiredRight) && property.GetValue(originalModel) != newVal)
406  return true;
407 
408  property.SetValue(originalModel, newVal);
409  return false;
410  }
411 
412  string originalModelPath = null;
413  string rawPath = null;
414  if (model.Path != null)
415  {
416  rawPath = NormalizePath(model.Path);
417 
418  if (model.Path != originalModel.Path)
419  {
420  if (!userRights.HasFlag(InstanceManagerRights.Relocate))
421  return Forbid();
422  if (originalModel.Online.Value && model.Online != true)
423  return Conflict(new ErrorMessage(ErrorCode.InstanceRelocateOnline));
424 
425  var dirExistsTask = ioManager.DirectoryExists(model.Path, cancellationToken);
426  if (await ioManager.FileExists(model.Path, cancellationToken).ConfigureAwait(false) || await dirExistsTask.ConfigureAwait(false))
427  return Conflict(new ErrorMessage(ErrorCode.InstanceAtExistingPath));
428 
429  originalModelPath = originalModel.Path;
430  originalModel.Path = model.Path;
431  }
432  }
433 
434  var oldAutoUpdateInterval = originalModel.AutoUpdateInterval.Value;
435  var originalOnline = originalModel.Online.Value;
436  var renamed = model.Name != null && originalModel.Name != model.Name;
437 
438  if (CheckModified(x => x.AutoUpdateInterval, InstanceManagerRights.SetAutoUpdate)
439  || CheckModified(x => x.ConfigurationType, InstanceManagerRights.SetConfiguration)
440  || CheckModified(x => x.Name, InstanceManagerRights.Rename)
441  || CheckModified(x => x.Online, InstanceManagerRights.SetOnline)
442  || CheckModified(x => x.ChatBotLimit, InstanceManagerRights.SetChatBotLimit))
443  return Forbid();
444 
445  if (model.ChatBotLimit.HasValue)
446  {
447  var countOfExistingChatBots = await DatabaseContext
448  .ChatBots
449  .AsQueryable()
450  .Where(x => x.InstanceId == originalModel.Id)
451  .CountAsync(cancellationToken)
452  .ConfigureAwait(false);
453 
454  if (countOfExistingChatBots > model.ChatBotLimit.Value)
455  return Conflict(new ErrorMessage(ErrorCode.ChatBotMax));
456  }
457 
458  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
459 
460  if (renamed)
461  await instanceManager.GetInstance(originalModel).InstanceRenamed(originalModel.Name, cancellationToken).ConfigureAwait(false);
462 
463  var oldAutoStart = originalModel.DreamDaemonSettings.AutoStart;
464  try
465  {
466  if (originalOnline && model.Online == false)
467  await instanceManager.OfflineInstance(originalModel, AuthenticationContext.User, cancellationToken).ConfigureAwait(false);
468  else if (!originalOnline && model.Online == true)
469  {
470  // force autostart false here because we don't want any long running jobs right now
471  // remember to document this
472  originalModel.DreamDaemonSettings.AutoStart = false;
473  await instanceManager.OnlineInstance(originalModel, cancellationToken).ConfigureAwait(false);
474  }
475  }
476  catch (Exception e)
477  {
478  if(!(e is OperationCanceledException))
479  Logger.LogError("Error changing instance online state! Exception: {0}", e);
480  originalModel.Online = originalOnline;
481  originalModel.DreamDaemonSettings.AutoStart = oldAutoStart;
482  if (originalModelPath != null)
483  originalModel.Path = originalModelPath;
484  await DatabaseContext.Save(default).ConfigureAwait(false);
485  throw;
486  }
487 
488  var api = (AuthenticationContext.GetRight(RightsType.InstanceManager) & (ulong)InstanceManagerRights.Read) != 0 ? originalModel.ToApi() : new Api.Models.Instance
489  {
490  Id = originalModel.Id
491  };
492 
493  var moving = originalModelPath != null;
494  if (moving)
495  {
496  var job = new Models.Job
497  {
498  Description = String.Format(CultureInfo.InvariantCulture, MoveInstanceJobPrefix + "{0} from {1} to {2}", originalModel.Id, originalModel.Path, rawPath),
499  Instance = originalModel,
500  CancelRightsType = RightsType.InstanceManager,
501  CancelRight = (ulong)InstanceManagerRights.Relocate,
502  StartedBy = AuthenticationContext.User
503  };
504 
505  await jobManager.RegisterOperation(job, (paramJob, databaseContextFactory, progressHandler, ct) => instanceManager.MoveInstance(originalModel, rawPath, ct), cancellationToken).ConfigureAwait(false);
506  api.MoveJob = job.ToApi();
507  }
508 
509  if (originalModel.Online.Value && model.AutoUpdateInterval.HasValue && oldAutoUpdateInterval != model.AutoUpdateInterval)
510  await instanceManager.GetInstance(originalModel).SetAutoUpdateInterval(model.AutoUpdateInterval.Value).ConfigureAwait(false);
511 
512  return moving ? (IActionResult)Accepted(api) : Json(api);
513  }
514 #pragma warning restore CA1502
515 
522  [HttpGet(Routes.List)]
523  [TgsAuthorize(InstanceManagerRights.List | InstanceManagerRights.Read)]
524  [ProducesResponseType(typeof(IEnumerable<Api.Models.Instance>), 200)]
525  public async Task<IActionResult> List(CancellationToken cancellationToken)
526  {
527  IQueryable<Models.Instance> GetBaseQuery()
528  {
529  IQueryable<Models.Instance> query = DatabaseContext.Instances;
531  query = query
532  .Where(x => x.InstanceUsers.Any(y => y.UserId == AuthenticationContext.User.Id))
533  .Where(x => x.InstanceUsers.Any(instanceUser =>
534  instanceUser.ByondRights != ByondRights.None ||
535  instanceUser.ChatBotRights != ChatBotRights.None ||
536  instanceUser.ConfigurationRights != ConfigurationRights.None ||
537  instanceUser.DreamDaemonRights != DreamDaemonRights.None ||
538  instanceUser.DreamMakerRights != DreamMakerRights.None ||
539  instanceUser.InstanceUserRights != InstanceUserRights.None));
540 
541  // Hack for EF IAsyncEnumerable BS
542  return query.Select(x => x);
543  }
544 
545  var moveJobs = await GetBaseQuery()
546  .SelectMany(x => x.Jobs)
547 #pragma warning disable CA1307 // Specify StringComparison
548  .Where(x => !x.StoppedAt.HasValue && x.Description.StartsWith(MoveInstanceJobPrefix))
549 #pragma warning restore CA1307 // Specify StringComparison
550  .Include(x => x.StartedBy).ThenInclude(x => x.CreatedBy)
551  .Include(x => x.Instance)
552  .ToListAsync(cancellationToken)
553  .ConfigureAwait(false);
554 
555  var instances = await GetBaseQuery()
556  .ToListAsync(cancellationToken)
557  .ConfigureAwait(false);
558 
559  var apis = instances.Select(x => x.ToApi());
560  foreach(var I in moveJobs)
561  apis.Where(x => x.Id == I.Instance.Id).First().MoveJob = I.ToApi(); // if this .First() fails i will personally murder kevinz000 because I just know he is somehow responsible
562  return Json(apis);
563  }
564 
573  [HttpGet("{id}")]
574  [TgsAuthorize(InstanceManagerRights.List | InstanceManagerRights.Read)]
575  [ProducesResponseType(typeof(Api.Models.Instance), 200)]
576  [ProducesResponseType(typeof(ErrorMessage), 410)]
577  public async Task<IActionResult> GetId(long id, CancellationToken cancellationToken)
578  {
579  var cantList = !AuthenticationContext.User.InstanceManagerRights.Value.HasFlag(InstanceManagerRights.List);
580  IQueryable<Models.Instance> QueryForUser()
581  {
582  var query = DatabaseContext
583  .Instances
584  .AsQueryable()
585  .Where(x => x.Id == id);
586 
587  if (cantList)
588  query = query.Include(x => x.InstanceUsers);
589  return query;
590  }
591 
592  var instance = await QueryForUser().FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
593 
594  if (instance == null)
595  return Gone();
596 
597  if (cantList && !instance.InstanceUsers.Any(instanceUser => instanceUser.UserId == AuthenticationContext.User.Id &&
598  (instanceUser.ByondRights != ByondRights.None ||
599  instanceUser.ChatBotRights != ChatBotRights.None ||
600  instanceUser.ConfigurationRights != ConfigurationRights.None ||
601  instanceUser.DreamDaemonRights != DreamDaemonRights.None ||
602  instanceUser.DreamMakerRights != DreamMakerRights.None ||
603  instanceUser.InstanceUserRights != InstanceUserRights.None)))
604  return Forbid();
605 
606  var api = instance.ToApi();
607 
608  var moveJob = await QueryForUser()
609  .SelectMany(x => x.Jobs)
610 #pragma warning disable CA1307 // Specify StringComparison
611  .Where(x => !x.StoppedAt.HasValue && x.Description.StartsWith(MoveInstanceJobPrefix))
612 #pragma warning restore CA1307 // Specify StringComparison
613  .Include(x => x.StartedBy).ThenInclude(x => x.CreatedBy)
614  .FirstOrDefaultAsync(cancellationToken)
615  .ConfigureAwait(false);
616  api.MoveJob = moveJob?.ToApi();
617  return Json(api);
618  }
619 
627  [HttpPatch("{id}")]
628  [TgsAuthorize(InstanceManagerRights.GrantPermissions)]
629  [ProducesResponseType(204)]
630  public async Task<IActionResult> GrantPermissions(long id, CancellationToken cancellationToken)
631  {
632  // ensure the current user has write privilege on the instance
633  var usersInstanceUser = await DatabaseContext
634  .Instances
635  .AsQueryable()
636  .Where(x => x.Id == id)
637  .SelectMany(x => x.InstanceUsers)
638  .Where(x => x.UserId == AuthenticationContext.User.Id)
639  .FirstOrDefaultAsync(cancellationToken)
640  .ConfigureAwait(false);
641  if (usersInstanceUser == default)
642  {
643  var instanceAdminUser = InstanceAdminUser(null);
644  instanceAdminUser.InstanceId = id;
645  DatabaseContext.InstanceUsers.Add(instanceAdminUser);
646  }
647  else
648  InstanceAdminUser(usersInstanceUser);
649 
650  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
651 
652  return NoContent();
653  }
654  }
655 }
string Name
The name of the User
Definition: User.cs:41
+Go to the documentation of this file.
1 using Microsoft.AspNetCore.Mvc;
2 using Microsoft.EntityFrameworkCore;
3 using Microsoft.Extensions.Logging;
4 using Microsoft.Extensions.Options;
5 using System;
6 using System.Collections.Generic;
7 using System.Globalization;
8 using System.IO;
9 using System.Linq;
10 using System.Linq.Expressions;
11 using System.Reflection;
12 using System.Threading;
13 using System.Threading.Tasks;
14 using Tgstation.Server.Api;
20 using Tgstation.Server.Host.IO;
25 
26 namespace Tgstation.Server.Host.Controllers
27 {
31  [Route(Routes.InstanceManager)]
32  #pragma warning disable CA1506 // TODO: Decomplexify
33  public sealed class InstanceController : ApiController
34  {
38  const string InstanceAttachFileName = "TGS4_ALLOW_INSTANCE_ATTACH";
39 
40  const string MoveInstanceJobPrefix = "Move instance ID ";
41 
46 
51 
56 
61 
66 
71 
85  IDatabaseContext databaseContext,
86  IAuthenticationContextFactory authenticationContextFactory,
87  IJobManager jobManager,
88  IInstanceManager instanceManager,
89  IIOManager ioManager,
90  IAssemblyInformationProvider assemblyInformationProvider,
91  IPlatformIdentifier platformIdentifier,
92  IOptions<GeneralConfiguration> generalConfigurationOptions,
93  ILogger<InstanceController> logger)
94  : base(
95  databaseContext,
96  authenticationContextFactory,
97  logger,
98  false)
99  {
100  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
101  this.instanceManager = instanceManager ?? throw new ArgumentNullException(nameof(instanceManager));
102  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
103  this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
104  this.platformIdentifier = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
105  generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
106  }
107 
108  string NormalizePath(string path)
109  {
110  if (path == null)
111  return null;
112 
113  path = ioManager.ResolvePath(path);
114  if (platformIdentifier.IsWindows)
115  path = path.ToUpperInvariant().Replace('\\', '/');
116 
117  return path;
118  }
119 
120  Models.InstanceUser InstanceAdminUser(Models.InstanceUser userToModify)
121  {
122  if (userToModify == null)
123  userToModify = new Models.InstanceUser()
124  {
125  UserId = AuthenticationContext.User.Id
126  };
127  userToModify.ByondRights = RightsHelper.AllRights<ByondRights>();
128  userToModify.ChatBotRights = RightsHelper.AllRights<ChatBotRights>();
129  userToModify.ConfigurationRights = RightsHelper.AllRights<ConfigurationRights>();
130  userToModify.DreamDaemonRights = RightsHelper.AllRights<DreamDaemonRights>();
131  userToModify.DreamMakerRights = RightsHelper.AllRights<DreamMakerRights>();
132  userToModify.RepositoryRights = RightsHelper.AllRights<RepositoryRights>();
133  userToModify.InstanceUserRights = RightsHelper.AllRights<InstanceUserRights>();
134  return userToModify;
135  }
136 
145  [HttpPut]
146  [TgsAuthorize(InstanceManagerRights.Create)]
147  [ProducesResponseType(typeof(Api.Models.Instance), 200)]
148  [ProducesResponseType(typeof(Api.Models.Instance), 201)]
149  public async Task<IActionResult> Create([FromBody] Api.Models.Instance model, CancellationToken cancellationToken)
150  {
151  if (model == null)
152  throw new ArgumentNullException(nameof(model));
153 
154  if (String.IsNullOrWhiteSpace(model.Name))
155  return BadRequest(new ErrorMessage(ErrorCode.InstanceWhitespaceName));
156 
157  var targetInstancePath = NormalizePath(model.Path);
158  model.Path = targetInstancePath;
159 
160  var installationDirectoryPath = NormalizePath(DefaultIOManager.CurrentDirectory);
161 
162  bool InstanceIsChildOf(string otherPath)
163  {
164  if (!targetInstancePath.StartsWith(otherPath, StringComparison.Ordinal))
165  return false;
166 
167  bool sameLength = targetInstancePath.Length == otherPath.Length;
168  char dirSeparatorChar = targetInstancePath.ToCharArray()[Math.Min(otherPath.Length, targetInstancePath.Length - 1)];
169  return sameLength
170  || dirSeparatorChar == Path.DirectorySeparatorChar
171  || dirSeparatorChar == Path.AltDirectorySeparatorChar;
172  }
173 
174  if (InstanceIsChildOf(installationDirectoryPath))
175  return Conflict(new ErrorMessage(ErrorCode.InstanceAtConflictingPath));
176 
177  // Validate it's not a child of any other instance
178  IActionResult earlyOut = null;
179  ulong countOfOtherInstances = 0;
180  using (var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken))
181  {
182  var newCancellationToken = cts.Token;
183  try
184  {
185  await DatabaseContext
186  .Instances
187  .AsQueryable()
188  .Select(x => new Models.Instance
189  {
190  Path = x.Path
191  })
192  .ForEachAsync(
193  otherInstance =>
194  {
195  if (++countOfOtherInstances >= generalConfiguration.InstanceLimit)
196  earlyOut ??= Conflict(new ErrorMessage(ErrorCode.InstanceLimitReached));
197  else if (InstanceIsChildOf(otherInstance.Path))
198  earlyOut ??= Conflict(new ErrorMessage(ErrorCode.InstanceAtConflictingPath));
199 
200  if (earlyOut != null && !newCancellationToken.IsCancellationRequested)
201  cts.Cancel();
202  },
203  newCancellationToken)
204  .ConfigureAwait(false);
205  }
206  catch (OperationCanceledException)
207  {
208  cancellationToken.ThrowIfCancellationRequested();
209  }
210  }
211 
212  if (earlyOut != null)
213  return earlyOut;
214 
215  // Last test, ensure it's in the list of valid paths
216  if (!(generalConfiguration.ValidInstancePaths?
217  .Select(path => NormalizePath(path))
218  .Any(path => InstanceIsChildOf(path)) ?? true))
219  return BadRequest(new ErrorMessage(ErrorCode.InstanceNotAtWhitelistedPath));
220 
221  async Task<bool> DirExistsAndIsNotEmpty()
222  {
223  if (!await ioManager.DirectoryExists(model.Path, cancellationToken).ConfigureAwait(false))
224  return false;
225 
226  var filesTask = ioManager.GetFiles(model.Path, cancellationToken);
227  var dirsTask = ioManager.GetDirectories(model.Path, cancellationToken);
228 
229  var files = await filesTask.ConfigureAwait(false);
230  var dirs = await dirsTask.ConfigureAwait(false);
231 
232  return files.Concat(dirs).Any();
233  }
234 
235  var dirExistsTask = DirExistsAndIsNotEmpty();
236  bool attached = false;
237  if (await ioManager.FileExists(model.Path, cancellationToken).ConfigureAwait(false) || await dirExistsTask.ConfigureAwait(false))
238  if (!await ioManager.FileExists(ioManager.ConcatPath(model.Path, InstanceAttachFileName), cancellationToken).ConfigureAwait(false))
239  return Conflict(new ErrorMessage(ErrorCode.InstanceAtExistingPath));
240  else
241  attached = true;
242 
243  var newInstance = new Models.Instance
244  {
245  ConfigurationType = model.ConfigurationType ?? ConfigurationType.Disallowed,
247  {
248  AllowWebClient = false,
249  AutoStart = false,
250  Port = 1337,
251  SecurityLevel = DreamDaemonSecurity.Safe,
252  StartupTimeout = 60,
253  HeartbeatSeconds = 60,
254  TopicRequestTimeout = generalConfiguration.ByondTopicTimeout
255  },
257  {
258  ApiValidationPort = 1339,
259  ApiValidationSecurityLevel = DreamDaemonSecurity.Safe,
260  RequireDMApiValidation = true
261  },
262  Name = model.Name,
263  Online = false,
264  Path = model.Path,
265  AutoUpdateInterval = model.AutoUpdateInterval ?? 0,
266  ChatBotLimit = model.ChatBotLimit ?? Models.Instance.DefaultChatBotLimit,
268  {
269  CommitterEmail = "tgstation-server@users.noreply.github.com",
270  CommitterName = assemblyInformationProvider.VersionPrefix,
271  PushTestMergeCommits = false,
272  ShowTestMergeCommitters = false,
273  AutoUpdatesKeepTestMerges = false,
274  AutoUpdatesSynchronize = false,
275  PostTestMergeComment = false
276  },
277  InstanceUsers = new List<Models.InstanceUser> // give this user full privileges on the instance
278  {
279  InstanceAdminUser(null)
280  }
281  };
282 
283  DatabaseContext.Instances.Add(newInstance);
284  try
285  {
286  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
287 
288  try
289  {
290  // actually reserve it now
291  await ioManager.CreateDirectory(targetInstancePath, cancellationToken).ConfigureAwait(false);
292  await ioManager.DeleteFile(ioManager.ConcatPath(targetInstancePath, InstanceAttachFileName), cancellationToken).ConfigureAwait(false);
293  }
294  catch
295  {
296  // oh shit delete the model
297  DatabaseContext.Instances.Remove(newInstance);
298 
299  await DatabaseContext.Save(default).ConfigureAwait(false);
300  throw;
301  }
302  }
303  catch (IOException e)
304  {
305  return Conflict(new ErrorMessage(ErrorCode.IOError)
306  {
307  AdditionalData = e.Message
308  });
309  }
310 
311  Logger.LogInformation("{0} {1} instance {2}: {3} ({4})", AuthenticationContext.User.Name, attached ? "attached" : "created", newInstance.Name, newInstance.Id, newInstance.Path);
312 
313  var api = newInstance.ToApi();
314  return attached ? (IActionResult)Json(api) : Created(api);
315  }
316 
325  [HttpDelete("{id}")]
326  [TgsAuthorize(InstanceManagerRights.Delete)]
327  [ProducesResponseType(204)]
328  [ProducesResponseType(typeof(ErrorMessage), 410)]
329  public async Task<IActionResult> Delete(long id, CancellationToken cancellationToken)
330  {
331  var originalModel = await DatabaseContext
332  .Instances
333  .AsQueryable()
334  .Where(x => x.Id == id)
335  .FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
336  if (originalModel == default)
337  return Gone();
338  if (originalModel.Online.Value)
339  return Conflict(new ErrorMessage(ErrorCode.InstanceDetachOnline));
340 
341  DatabaseContext.Instances.Remove(originalModel);
342 
343  var attachFileName = ioManager.ConcatPath(originalModel.Path, InstanceAttachFileName);
344  await ioManager.WriteAllBytes(attachFileName, Array.Empty<byte>(), default).ConfigureAwait(false);
345  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false); // cascades everything
346  return NoContent();
347  }
348 
358  [HttpPost]
359  [TgsAuthorize(InstanceManagerRights.Relocate | InstanceManagerRights.Rename | InstanceManagerRights.SetAutoUpdate | InstanceManagerRights.SetConfiguration | InstanceManagerRights.SetOnline | InstanceManagerRights.SetChatBotLimit)]
360  [ProducesResponseType(typeof(Api.Models.Instance), 200)]
361  [ProducesResponseType(typeof(Api.Models.Instance), 202)]
362  [ProducesResponseType(typeof(ErrorMessage), 410)]
363 #pragma warning disable CA1502 // TODO: Decomplexify
364  public async Task<IActionResult> Update([FromBody] Api.Models.Instance model, CancellationToken cancellationToken)
365  {
366  if (model == null)
367  throw new ArgumentNullException(nameof(model));
368 
369  IQueryable<Models.Instance> InstanceQuery() => DatabaseContext
370  .Instances
371  .AsQueryable()
372  .Where(x => x.Id == model.Id);
373 
374  var moveJob = await InstanceQuery()
375  .SelectMany(x => x.Jobs).
376 #pragma warning disable CA1307 // Specify StringComparison
377  Where(x => !x.StoppedAt.HasValue && x.Description.StartsWith(MoveInstanceJobPrefix))
378 #pragma warning restore CA1307 // Specify StringComparison
379  .Select(x => new Models.Job
380  {
381  Id = x.Id
382  }).FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
383 
384  if (moveJob != default)
385  await jobManager.CancelJob(moveJob, AuthenticationContext.User, true, cancellationToken).ConfigureAwait(false); // cancel it now
386 
387  var originalModel = await InstanceQuery()
388  .Include(x => x.RepositorySettings)
389  .Include(x => x.ChatSettings)
390  .ThenInclude(x => x.Channels)
391  .Include(x => x.DreamDaemonSettings) // need these for onlining
392  .FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
393  if (originalModel == default(Models.Instance))
394  return Gone();
395 
396  if (ValidateInstanceOnlineStatus(originalModel))
397  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
398 
399  var userRights = (InstanceManagerRights)AuthenticationContext.GetRight(RightsType.InstanceManager);
400  bool CheckModified<T>(Expression<Func<Api.Models.Instance, T>> expression, InstanceManagerRights requiredRight)
401  {
402  var memberSelectorExpression = (MemberExpression)expression.Body;
403  var property = (PropertyInfo)memberSelectorExpression.Member;
404 
405  var newVal = property.GetValue(model);
406  if (newVal == null)
407  return false;
408  if (!userRights.HasFlag(requiredRight) && property.GetValue(originalModel) != newVal)
409  return true;
410 
411  property.SetValue(originalModel, newVal);
412  return false;
413  }
414 
415  string originalModelPath = null;
416  string rawPath = null;
417  if (model.Path != null)
418  {
419  rawPath = NormalizePath(model.Path);
420 
421  if (model.Path != originalModel.Path)
422  {
423  if (!userRights.HasFlag(InstanceManagerRights.Relocate))
424  return Forbid();
425  if (originalModel.Online.Value && model.Online != true)
426  return Conflict(new ErrorMessage(ErrorCode.InstanceRelocateOnline));
427 
428  var dirExistsTask = ioManager.DirectoryExists(model.Path, cancellationToken);
429  if (await ioManager.FileExists(model.Path, cancellationToken).ConfigureAwait(false) || await dirExistsTask.ConfigureAwait(false))
430  return Conflict(new ErrorMessage(ErrorCode.InstanceAtExistingPath));
431 
432  originalModelPath = originalModel.Path;
433  originalModel.Path = model.Path;
434  }
435  }
436 
437  var oldAutoUpdateInterval = originalModel.AutoUpdateInterval.Value;
438  var originalOnline = originalModel.Online.Value;
439  var renamed = model.Name != null && originalModel.Name != model.Name;
440 
441  if (CheckModified(x => x.AutoUpdateInterval, InstanceManagerRights.SetAutoUpdate)
442  || CheckModified(x => x.ConfigurationType, InstanceManagerRights.SetConfiguration)
443  || CheckModified(x => x.Name, InstanceManagerRights.Rename)
444  || CheckModified(x => x.Online, InstanceManagerRights.SetOnline)
445  || CheckModified(x => x.ChatBotLimit, InstanceManagerRights.SetChatBotLimit))
446  return Forbid();
447 
448  if (model.ChatBotLimit.HasValue)
449  {
450  var countOfExistingChatBots = await DatabaseContext
451  .ChatBots
452  .AsQueryable()
453  .Where(x => x.InstanceId == originalModel.Id)
454  .CountAsync(cancellationToken)
455  .ConfigureAwait(false);
456 
457  if (countOfExistingChatBots > model.ChatBotLimit.Value)
458  return Conflict(new ErrorMessage(ErrorCode.ChatBotMax));
459  }
460 
461  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
462 
463  if (renamed)
464  await instanceManager.GetInstance(originalModel).InstanceRenamed(originalModel.Name, cancellationToken).ConfigureAwait(false);
465 
466  var oldAutoStart = originalModel.DreamDaemonSettings.AutoStart;
467  try
468  {
469  if (originalOnline && model.Online == false)
470  await instanceManager.OfflineInstance(originalModel, AuthenticationContext.User, cancellationToken).ConfigureAwait(false);
471  else if (!originalOnline && model.Online == true)
472  {
473  // force autostart false here because we don't want any long running jobs right now
474  // remember to document this
475  originalModel.DreamDaemonSettings.AutoStart = false;
476  await instanceManager.OnlineInstance(originalModel, cancellationToken).ConfigureAwait(false);
477  }
478  }
479  catch (Exception e)
480  {
481  if(!(e is OperationCanceledException))
482  Logger.LogError("Error changing instance online state! Exception: {0}", e);
483  originalModel.Online = originalOnline;
484  originalModel.DreamDaemonSettings.AutoStart = oldAutoStart;
485  if (originalModelPath != null)
486  originalModel.Path = originalModelPath;
487  await DatabaseContext.Save(default).ConfigureAwait(false);
488  throw;
489  }
490 
491  var api = (AuthenticationContext.GetRight(RightsType.InstanceManager) & (ulong)InstanceManagerRights.Read) != 0 ? originalModel.ToApi() : new Api.Models.Instance
492  {
493  Id = originalModel.Id
494  };
495 
496  var moving = originalModelPath != null;
497  if (moving)
498  {
499  var job = new Models.Job
500  {
501  Description = String.Format(CultureInfo.InvariantCulture, MoveInstanceJobPrefix + "{0} from {1} to {2}", originalModel.Id, originalModel.Path, rawPath),
502  Instance = originalModel,
503  CancelRightsType = RightsType.InstanceManager,
504  CancelRight = (ulong)InstanceManagerRights.Relocate,
505  StartedBy = AuthenticationContext.User
506  };
507 
508  await jobManager.RegisterOperation(job, (paramJob, databaseContextFactory, progressHandler, ct) => instanceManager.MoveInstance(originalModel, rawPath, ct), cancellationToken).ConfigureAwait(false);
509  api.MoveJob = job.ToApi();
510  }
511 
512  if (originalModel.Online.Value && model.AutoUpdateInterval.HasValue && oldAutoUpdateInterval != model.AutoUpdateInterval)
513  await instanceManager.GetInstance(originalModel).SetAutoUpdateInterval(model.AutoUpdateInterval.Value).ConfigureAwait(false);
514 
515  return moving ? (IActionResult)Accepted(api) : Json(api);
516  }
517 #pragma warning restore CA1502
518 
525  [HttpGet(Routes.List)]
526  [TgsAuthorize(InstanceManagerRights.List | InstanceManagerRights.Read)]
527  [ProducesResponseType(typeof(IEnumerable<Api.Models.Instance>), 200)]
528  public async Task<IActionResult> List(CancellationToken cancellationToken)
529  {
530  IQueryable<Models.Instance> GetBaseQuery()
531  {
532  IQueryable<Models.Instance> query = DatabaseContext.Instances;
534  query = query
535  .Where(x => x.InstanceUsers.Any(y => y.UserId == AuthenticationContext.User.Id))
536  .Where(x => x.InstanceUsers.Any(instanceUser =>
537  instanceUser.ByondRights != ByondRights.None ||
538  instanceUser.ChatBotRights != ChatBotRights.None ||
539  instanceUser.ConfigurationRights != ConfigurationRights.None ||
540  instanceUser.DreamDaemonRights != DreamDaemonRights.None ||
541  instanceUser.DreamMakerRights != DreamMakerRights.None ||
542  instanceUser.InstanceUserRights != InstanceUserRights.None));
543 
544  // Hack for EF IAsyncEnumerable BS
545  return query.Select(x => x);
546  }
547 
548  var moveJobs = await GetBaseQuery()
549  .SelectMany(x => x.Jobs)
550 #pragma warning disable CA1307 // Specify StringComparison
551  .Where(x => !x.StoppedAt.HasValue && x.Description.StartsWith(MoveInstanceJobPrefix))
552 #pragma warning restore CA1307 // Specify StringComparison
553  .Include(x => x.StartedBy).ThenInclude(x => x.CreatedBy)
554  .Include(x => x.Instance)
555  .ToListAsync(cancellationToken)
556  .ConfigureAwait(false);
557 
558  var instances = await GetBaseQuery()
559  .ToListAsync(cancellationToken)
560  .ConfigureAwait(false);
561 
562  var needsUpdate = false;
563  foreach (var instance in instances)
564  needsUpdate |= ValidateInstanceOnlineStatus(instance);
565 
566  if (needsUpdate)
567  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
568 
569  var apis = instances.Select(x => x.ToApi());
570  foreach(var I in moveJobs)
571  apis.Where(x => x.Id == I.Instance.Id).First().MoveJob = I.ToApi(); // if this .First() fails i will personally murder kevinz000 because I just know he is somehow responsible
572  return Json(apis);
573  }
574 
583  [HttpGet("{id}")]
584  [TgsAuthorize(InstanceManagerRights.List | InstanceManagerRights.Read)]
585  [ProducesResponseType(typeof(Api.Models.Instance), 200)]
586  [ProducesResponseType(typeof(ErrorMessage), 410)]
587  public async Task<IActionResult> GetId(long id, CancellationToken cancellationToken)
588  {
589  var cantList = !AuthenticationContext.User.InstanceManagerRights.Value.HasFlag(InstanceManagerRights.List);
590  IQueryable<Models.Instance> QueryForUser()
591  {
592  var query = DatabaseContext
593  .Instances
594  .AsQueryable()
595  .Where(x => x.Id == id);
596 
597  if (cantList)
598  query = query.Include(x => x.InstanceUsers);
599  return query;
600  }
601 
602  var instance = await QueryForUser().FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
603 
604  if (instance == null)
605  return Gone();
606 
607  if (ValidateInstanceOnlineStatus(instance))
608  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
609 
610  if (cantList && !instance.InstanceUsers.Any(instanceUser => instanceUser.UserId == AuthenticationContext.User.Id &&
611  (instanceUser.ByondRights != ByondRights.None ||
612  instanceUser.ChatBotRights != ChatBotRights.None ||
613  instanceUser.ConfigurationRights != ConfigurationRights.None ||
614  instanceUser.DreamDaemonRights != DreamDaemonRights.None ||
615  instanceUser.DreamMakerRights != DreamMakerRights.None ||
616  instanceUser.InstanceUserRights != InstanceUserRights.None)))
617  return Forbid();
618 
619  var api = instance.ToApi();
620 
621  var moveJob = await QueryForUser()
622  .SelectMany(x => x.Jobs)
623 #pragma warning disable CA1307 // Specify StringComparison
624  .Where(x => !x.StoppedAt.HasValue && x.Description.StartsWith(MoveInstanceJobPrefix))
625 #pragma warning restore CA1307 // Specify StringComparison
626  .Include(x => x.StartedBy).ThenInclude(x => x.CreatedBy)
627  .FirstOrDefaultAsync(cancellationToken)
628  .ConfigureAwait(false);
629  api.MoveJob = moveJob?.ToApi();
630  return Json(api);
631  }
632 
640  [HttpPatch("{id}")]
641  [TgsAuthorize(InstanceManagerRights.GrantPermissions)]
642  [ProducesResponseType(204)]
643  public async Task<IActionResult> GrantPermissions(long id, CancellationToken cancellationToken)
644  {
645  // ensure the current user has write privilege on the instance
646  var usersInstanceUser = await DatabaseContext
647  .Instances
648  .AsQueryable()
649  .Where(x => x.Id == id)
650  .SelectMany(x => x.InstanceUsers)
651  .Where(x => x.UserId == AuthenticationContext.User.Id)
652  .FirstOrDefaultAsync(cancellationToken)
653  .ConfigureAwait(false);
654  if (usersInstanceUser == default)
655  {
656  var instanceAdminUser = InstanceAdminUser(null);
657  instanceAdminUser.InstanceId = id;
658  DatabaseContext.InstanceUsers.Add(instanceAdminUser);
659  }
660  else
661  InstanceAdminUser(usersInstanceUser);
662 
663  await DatabaseContext.Save(cancellationToken).ConfigureAwait(false);
664 
665  return NoContent();
666  }
667 
673  bool ValidateInstanceOnlineStatus(Models.Instance metadata)
674  {
675  bool online;
676  try
677  {
678  instanceManager.GetInstance(metadata);
679  online = true;
680  }
681  catch (InvalidOperationException ex)
682  {
683  Logger.LogDebug("Expected instance offline exception: {0}", ex);
684  online = false;
685  }
686 
687  if (metadata.Online.Value == online)
688  return false;
689 
690  const string OfflineWord = "offline";
691  const string OnlineWord = "online";
692 
693  Logger.LogWarning(
694  "Instance {0} is says it's {1} in the database, but it is actually {2} in the service. Updating the database to reflect this...",
695  online ? OfflineWord : OnlineWord,
696  online ? OnlineWord : OfflineWord);
697 
698  metadata.Online = online;
699  return true;
700  }
701  }
702 }
string Name
The name of the User
Definition: User.cs:41
DbSet< ChatBot > ChatBots
The ChatBots in the DatabaseContext.
ConfigurationRights
Rights for Models.ConfigurationFile
-
async Task< IActionResult > GetId(long id, CancellationToken cancellationToken)
Get a specific Api.Models.Instance.
+
async Task< IActionResult > GetId(long id, CancellationToken cancellationToken)
Get a specific Api.Models.Instance.
The watchdog is online and DreamDaemon is running.
@@ -118,12 +118,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
async Task< IActionResult > List(CancellationToken cancellationToken)
List Api.Models.Instances.
+
async Task< IActionResult > List(CancellationToken cancellationToken)
List Api.Models.Instances.
ConfigurationType
The type of configuration allowed on an Instance
readonly GeneralConfiguration generalConfiguration
The GeneralConfiguration for the InstanceController.
ulong GetRight(RightsType rightsType)
Get the value of a given rightsType
-
async Task< IActionResult > GrantPermissions(long id, CancellationToken cancellationToken)
Gives the current user full permissions on a given instance id .
+
async Task< IActionResult > GrantPermissions(long id, CancellationToken cancellationToken)
Gives the current user full permissions on a given instance id .
Task Save(CancellationToken cancellationToken)
Saves changes made to the IDatabaseContext
+
bool ValidateInstanceOnlineStatus(Models.Instance metadata)
Corrects discrepencies between the Api.Models.Instance.Online status of IInstances in the database vs...
ApiController for managing Components.Instances
readonly IIOManager ioManager
The IIOManager for the InstanceController
diff --git a/_instance_factory_8cs.html b/_instance_factory_8cs.html index 2d17964fe6..ad68e34866 100644 --- a/_instance_factory_8cs.html +++ b/_instance_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_factory_8cs_source.html b/_instance_factory_8cs_source.html index 5d8b90b8d0..2b0baa1105 100644 --- a/_instance_factory_8cs_source.html +++ b/_instance_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_manager_8cs.html b/_instance_manager_8cs.html index c66d522c72..48c61edc85 100644 --- a/_instance_manager_8cs.html +++ b/_instance_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_manager_8cs_source.html b/_instance_manager_8cs_source.html index a3b393aa40..d9aa9e8a07 100644 --- a/_instance_manager_8cs_source.html +++ b/_instance_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
InstanceManager.cs
-Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Hosting;
3 using Microsoft.Extensions.Logging;
4 using Microsoft.Extensions.Options;
5 using System;
6 using System.Collections.Generic;
7 using System.Linq;
8 using System.Threading;
9 using System.Threading.Tasks;
16 using Tgstation.Server.Host.IO;
20 
21 namespace Tgstation.Server.Host.Components
22 {
25  {
27  public Task Ready => readyTcs.Task;
28 
33 
38 
43 
48 
53 
58 
63 
68 
73 
77  readonly ILogger<InstanceManager> logger;
78 
82  readonly IDictionary<long, IInstance> instances;
83 
87  readonly IDictionary<string, IBridgeHandler> bridgeHandlers;
88 
93 
97  readonly TaskCompletionSource<object> readyTcs;
98 
103 
107  bool disposed;
108 
124  IInstanceFactory instanceFactory,
125  IIOManager ioManager,
126  IDatabaseContextFactory databaseContextFactory,
127  IAssemblyInformationProvider assemblyInformationProvider,
128  IJobManager jobManager,
129  IServerControl serverControl,
130  ISystemIdentityFactory systemIdentityFactory,
131  IAsyncDelayer asyncDelayer,
132  IDatabaseSeeder databaseSeeder,
133  IOptions<GeneralConfiguration> generalConfigurationOptions,
134  ILogger<InstanceManager> logger)
135  {
136  this.instanceFactory = instanceFactory ?? throw new ArgumentNullException(nameof(instanceFactory));
137  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
138  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
139  this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
140  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
141  this.serverControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
142  this.systemIdentityFactory = systemIdentityFactory ?? throw new ArgumentNullException(nameof(systemIdentityFactory));
143  this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
144  this.databaseSeeder = databaseSeeder ?? throw new ArgumentNullException(nameof(databaseSeeder));
145  generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
146  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
147 
148  serverControl.RegisterForRestart(this);
149 
150  instances = new Dictionary<long, IInstance>();
151  bridgeHandlers = new Dictionary<string, IBridgeHandler>();
152  readyTcs = new TaskCompletionSource<object>();
153  }
154 
156  public void Dispose()
157  {
158  lock (instances)
159  {
160  if (disposed)
161  return;
162  disposed = true;
163  }
164 
165  foreach (var I in instances)
166  I.Value.Dispose();
167  }
168 
170  public IInstance GetInstance(Models.Instance metadata)
171  {
172  if (metadata == null)
173  throw new ArgumentNullException(nameof(metadata));
174  lock (instances)
175  {
176  if (!instances.TryGetValue(metadata.Id, out IInstance instance))
177  throw new InvalidOperationException("Instance not online!");
178  return instance;
179  }
180  }
181 
183  public async Task MoveInstance(Models.Instance instance, string newPath, CancellationToken cancellationToken)
184  {
185  if (newPath == null)
186  throw new ArgumentNullException(nameof(newPath));
187  if (instance.Online.Value)
188  throw new InvalidOperationException("Cannot move an online instance!");
189  var oldPath = instance.Path;
190  await ioManager.CopyDirectory(oldPath, newPath, null, cancellationToken).ConfigureAwait(false);
191  await databaseContextFactory.UseContext(db =>
192  {
193  var targetInstance = new Models.Instance
194  {
195  Id = instance.Id
196  };
197  db.Instances.Attach(targetInstance);
198  targetInstance.Path = newPath;
199  return db.Save(cancellationToken);
200  }).ConfigureAwait(false);
201  await ioManager.DeleteDirectory(oldPath, cancellationToken).ConfigureAwait(false);
202  }
203 
205  public async Task OfflineInstance(Models.Instance metadata, Models.User user, CancellationToken cancellationToken)
206  {
207  if (metadata == null)
208  throw new ArgumentNullException(nameof(metadata));
209  logger.LogInformation("Offlining instance ID {0}", metadata.Id);
210  IInstance instance;
211  lock (instances)
212  {
213  if (!instances.TryGetValue(metadata.Id, out instance))
214  throw new InvalidOperationException("Instance not online!");
215  instances.Remove(metadata.Id);
216  }
217 
218  try
219  {
220  // we are the one responsible for cancelling his jobs
221  var tasks = new List<Task>();
222  await databaseContextFactory.UseContext(async db =>
223  {
224  var jobs = db
225  .Jobs
226  .AsQueryable()
227  .Where(x => x.Instance.Id == metadata.Id)
228  .Select(x => new Models.Job
229  {
230  Id = x.Id
231  });
232  await jobs.ForEachAsync(job =>
233  {
234  lock (tasks)
235  tasks.Add(jobManager.CancelJob(job, user, true, cancellationToken));
236  }, cancellationToken).ConfigureAwait(false);
237  }).ConfigureAwait(false);
238 
239  await Task.WhenAll(tasks).ConfigureAwait(false);
240 
241  await instance.StopAsync(cancellationToken).ConfigureAwait(false);
242  }
243  finally
244  {
245  instance.Dispose();
246  }
247  }
248 
250  public async Task OnlineInstance(Models.Instance metadata, CancellationToken cancellationToken)
251  {
252  if (metadata == null)
253  throw new ArgumentNullException(nameof(metadata));
254  logger.LogInformation("Onlining instance ID {0} ({1}) at {2}", metadata.Id, metadata.Name, metadata.Path);
255  var instance = instanceFactory.CreateInstance(this, metadata);
256  try
257  {
258  lock (instances)
259  {
260  if (instances.ContainsKey(metadata.Id))
261  throw new InvalidOperationException("Instance already online!");
262  instances.Add(metadata.Id, instance);
263  }
264  }
265  catch
266  {
267  instance.Dispose();
268  throw;
269  }
270 
271  await instance.StartAsync(cancellationToken).ConfigureAwait(false);
272  }
273 
275  #pragma warning disable CA1506 // TODO: Decomplexify
276  public Task StartAsync(CancellationToken cancellationToken) => databaseContextFactory.UseContext(async databaseContext =>
277  {
278  logger.LogInformation(assemblyInformationProvider.VersionString);
279 
280  try
281  {
282  generalConfiguration.CheckCompatibility(logger);
283 
284  CheckSystemCompatibility();
285  var factoryStartup = instanceFactory.StartAsync(cancellationToken);
286  await databaseSeeder.Initialize(databaseContext, cancellationToken).ConfigureAwait(false);
287  await jobManager.StartAsync(cancellationToken).ConfigureAwait(false);
288  var dbInstances = databaseContext
289  .Instances
290  .AsQueryable()
291  .Where(x => x.Online.Value)
292  .Include(x => x.RepositorySettings)
293  .Include(x => x.ChatSettings)
294  .ThenInclude(x => x.Channels)
295  .Include(x => x.DreamDaemonSettings)
296  .ToAsyncEnumerable();
297  var tasks = new List<Task>();
298  await factoryStartup.ConfigureAwait(false);
299  await dbInstances.ForEachAsync(metadata => tasks.Add(metadata.Online.Value ? OnlineInstance(metadata, cancellationToken) : Task.CompletedTask), cancellationToken).ConfigureAwait(false);
300  await Task.WhenAll(tasks).ConfigureAwait(false);
301  logger.LogInformation("Server ready!");
302  readyTcs.SetResult(null);
303  }
304  catch (OperationCanceledException)
305  {
306  logger.LogInformation("Cancelled instance manager initialization!");
307  }
308  catch (Exception e)
309  {
310  logger.LogCritical("Instance manager startup error! Exception: {0}", e);
311  try
312  {
313  await serverControl.Die(e).ConfigureAwait(false);
314  return;
315  }
316  catch (Exception e2)
317  {
318  logger.LogCritical("Failed to kill server! Exception: {0}", e2);
319  }
320 
321  throw;
322  }
323  });
324  #pragma warning restore CA1506 // TODO: Decomplexify
325 
327  public async Task StopAsync(CancellationToken cancellationToken)
328  {
329  await jobManager.StopAsync(cancellationToken).ConfigureAwait(false);
330  await Task.WhenAll(instances.Select(x => x.Value.StopAsync(cancellationToken))).ConfigureAwait(false);
331  await instanceFactory.StopAsync(cancellationToken).ConfigureAwait(false);
332 
333  // downgrade the db if necessary
334  if (downgradeVersion != null)
335  await databaseContextFactory.UseContext(db => databaseSeeder.Downgrade(db, downgradeVersion, cancellationToken)).ConfigureAwait(false);
336  }
337 
339  public Task HandleRestart(Version updateVersion, CancellationToken cancellationToken)
340  {
341  downgradeVersion = updateVersion != null && updateVersion < assemblyInformationProvider.Version ? updateVersion : null;
342  return Task.CompletedTask;
343  }
344 
349  {
350  using var systemIdentity = systemIdentityFactory.GetCurrent();
351  if (!systemIdentity.CanCreateSymlinks)
352  throw new InvalidOperationException("The user running tgstation-server cannot create symlinks! Please try running as an administrative user!");
353  }
354 
356  public async Task<BridgeResponse> ProcessBridgeRequest(BridgeParameters parameters, CancellationToken cancellationToken)
357  {
358  if (parameters == null)
359  throw new ArgumentNullException(nameof(parameters));
360 
361  IBridgeHandler bridgeHandler = null;
362  for (var i = 0; bridgeHandler == null && i < 30; ++i)
363  {
364  // There's a miniscule time period where we could potentially receive a bridge request and not have the registration ready when we launch DD
365  // This is a stopgap
366  Task delayTask = Task.CompletedTask;
367  lock (bridgeHandlers)
368  if (!bridgeHandlers.TryGetValue(parameters.AccessIdentifier, out bridgeHandler))
369  delayTask = asyncDelayer.Delay(TimeSpan.FromMilliseconds(100), cancellationToken);
370 
371  await delayTask.ConfigureAwait(false);
372  }
373 
374  if (bridgeHandler == null)
375  lock (bridgeHandlers)
376  if (!bridgeHandlers.TryGetValue(parameters.AccessIdentifier, out bridgeHandler))
377  {
378  logger.LogWarning("Recieved invalid bridge request with accees identifier: {0}", parameters.AccessIdentifier);
379  return null;
380  }
381 
382  return await bridgeHandler.ProcessBridgeRequest(parameters, cancellationToken).ConfigureAwait(false);
383  }
384 
387  {
388  if (bridgeHandler == null)
389  throw new ArgumentNullException(nameof(bridgeHandler));
390 
391  var accessIdentifier = bridgeHandler.DMApiParameters.AccessIdentifier;
392  lock (bridgeHandlers)
393  {
394  bridgeHandlers.Add(accessIdentifier, bridgeHandler);
395  logger.LogTrace("Registered bridge handler: {0}", accessIdentifier);
396  }
397 
398  return new BridgeRegistration(() =>
399  {
400  lock (bridgeHandlers)
401  {
402  bridgeHandlers.Remove(accessIdentifier);
403  logger.LogTrace("Unregistered bridge handler: {0}", accessIdentifier);
404  }
405  });
406  }
407  }
408 }
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the InstanceManager
+Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Hosting;
3 using Microsoft.Extensions.Logging;
4 using Microsoft.Extensions.Options;
5 using System;
6 using System.Collections.Generic;
7 using System.Linq;
8 using System.Threading;
9 using System.Threading.Tasks;
16 using Tgstation.Server.Host.IO;
20 
21 namespace Tgstation.Server.Host.Components
22 {
25  {
27  public Task Ready => readyTcs.Task;
28 
33 
38 
43 
48 
53 
58 
63 
68 
73 
77  readonly ILogger<InstanceManager> logger;
78 
82  readonly IDictionary<long, IInstance> instances;
83 
87  readonly IDictionary<string, IBridgeHandler> bridgeHandlers;
88 
93 
97  readonly TaskCompletionSource<object> readyTcs;
98 
103 
107  bool disposed;
108 
124  IInstanceFactory instanceFactory,
125  IIOManager ioManager,
126  IDatabaseContextFactory databaseContextFactory,
127  IAssemblyInformationProvider assemblyInformationProvider,
128  IJobManager jobManager,
129  IServerControl serverControl,
130  ISystemIdentityFactory systemIdentityFactory,
131  IAsyncDelayer asyncDelayer,
132  IDatabaseSeeder databaseSeeder,
133  IOptions<GeneralConfiguration> generalConfigurationOptions,
134  ILogger<InstanceManager> logger)
135  {
136  this.instanceFactory = instanceFactory ?? throw new ArgumentNullException(nameof(instanceFactory));
137  this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
138  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
139  this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
140  this.jobManager = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
141  this.serverControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
142  this.systemIdentityFactory = systemIdentityFactory ?? throw new ArgumentNullException(nameof(systemIdentityFactory));
143  this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
144  this.databaseSeeder = databaseSeeder ?? throw new ArgumentNullException(nameof(databaseSeeder));
145  generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
146  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
147 
148  serverControl.RegisterForRestart(this);
149 
150  instances = new Dictionary<long, IInstance>();
151  bridgeHandlers = new Dictionary<string, IBridgeHandler>();
152  readyTcs = new TaskCompletionSource<object>();
153  }
154 
156  public void Dispose()
157  {
158  lock (instances)
159  {
160  if (disposed)
161  return;
162  disposed = true;
163  }
164 
165  foreach (var I in instances)
166  I.Value.Dispose();
167  }
168 
170  public IInstance GetInstance(Models.Instance metadata)
171  {
172  if (metadata == null)
173  throw new ArgumentNullException(nameof(metadata));
174  lock (instances)
175  {
176  if (!instances.TryGetValue(metadata.Id, out IInstance instance))
177  throw new InvalidOperationException("Instance not online!");
178  return instance;
179  }
180  }
181 
183  public async Task MoveInstance(Models.Instance instance, string newPath, CancellationToken cancellationToken)
184  {
185  if (newPath == null)
186  throw new ArgumentNullException(nameof(newPath));
187  if (instance.Online.Value)
188  throw new InvalidOperationException("Cannot move an online instance!");
189  var oldPath = instance.Path;
190  await ioManager.CopyDirectory(oldPath, newPath, null, cancellationToken).ConfigureAwait(false);
191  await databaseContextFactory.UseContext(db =>
192  {
193  var targetInstance = new Models.Instance
194  {
195  Id = instance.Id
196  };
197  db.Instances.Attach(targetInstance);
198  targetInstance.Path = newPath;
199  return db.Save(cancellationToken);
200  }).ConfigureAwait(false);
201  await ioManager.DeleteDirectory(oldPath, cancellationToken).ConfigureAwait(false);
202  }
203 
205  public async Task OfflineInstance(Models.Instance metadata, Models.User user, CancellationToken cancellationToken)
206  {
207  if (metadata == null)
208  throw new ArgumentNullException(nameof(metadata));
209  logger.LogInformation("Offlining instance ID {0}", metadata.Id);
210  IInstance instance;
211  lock (instances)
212  {
213  if (!instances.TryGetValue(metadata.Id, out instance))
214  throw new InvalidOperationException("Instance not online!");
215  instances.Remove(metadata.Id);
216  }
217 
218  try
219  {
220  // we are the one responsible for cancelling his jobs
221  var tasks = new List<Task>();
222  await databaseContextFactory.UseContext(async db =>
223  {
224  var jobs = db
225  .Jobs
226  .AsQueryable()
227  .Where(x => x.Instance.Id == metadata.Id)
228  .Select(x => new Models.Job
229  {
230  Id = x.Id
231  });
232  await jobs.ForEachAsync(job =>
233  {
234  lock (tasks)
235  tasks.Add(jobManager.CancelJob(job, user, true, cancellationToken));
236  }, cancellationToken).ConfigureAwait(false);
237  }).ConfigureAwait(false);
238 
239  await Task.WhenAll(tasks).ConfigureAwait(false);
240 
241  await instance.StopAsync(cancellationToken).ConfigureAwait(false);
242  }
243  finally
244  {
245  instance.Dispose();
246  }
247  }
248 
250  public async Task OnlineInstance(Models.Instance metadata, CancellationToken cancellationToken)
251  {
252  if (metadata == null)
253  throw new ArgumentNullException(nameof(metadata));
254  logger.LogInformation("Onlining instance ID {0} ({1}) at {2}", metadata.Id, metadata.Name, metadata.Path);
255  var instance = instanceFactory.CreateInstance(this, metadata);
256  try
257  {
258  lock (instances)
259  {
260  if (instances.ContainsKey(metadata.Id))
261  throw new InvalidOperationException("Instance already online!");
262  instances.Add(metadata.Id, instance);
263  }
264  }
265  catch
266  {
267  instance.Dispose();
268  throw;
269  }
270 
271  await instance.StartAsync(cancellationToken).ConfigureAwait(false);
272  }
273 
275  #pragma warning disable CA1506 // TODO: Decomplexify
276  public Task StartAsync(CancellationToken cancellationToken) => databaseContextFactory.UseContext(async databaseContext =>
277  {
278  logger.LogInformation(assemblyInformationProvider.VersionString);
279 
280  try
281  {
282  generalConfiguration.CheckCompatibility(logger);
283 
284  CheckSystemCompatibility();
285  var factoryStartup = instanceFactory.StartAsync(cancellationToken);
286  await databaseSeeder.Initialize(databaseContext, cancellationToken).ConfigureAwait(false);
287  await jobManager.StartAsync(cancellationToken).ConfigureAwait(false);
288  var dbInstances = await databaseContext
289  .Instances
290  .AsQueryable()
291  .Where(x => x.Online.Value)
292  .Include(x => x.RepositorySettings)
293  .Include(x => x.ChatSettings)
294  .ThenInclude(x => x.Channels)
295  .Include(x => x.DreamDaemonSettings)
296  .ToListAsync(cancellationToken)
297  .ConfigureAwait(false);
298  await factoryStartup.ConfigureAwait(false);
299  var tasks = dbInstances.Select(
300  async metadata =>
301  {
302  try
303  {
304  await OnlineInstance(metadata, cancellationToken).ConfigureAwait(false);
305  }
306  catch (Exception ex)
307  {
308  logger.LogError("Failed to online instance {0}! Exception: {0}", ex);
309  }
310  })
311  .ToList();
312  await Task.WhenAll(tasks).ConfigureAwait(false);
313  logger.LogInformation("Server ready!");
314  readyTcs.SetResult(null);
315  }
316  catch (OperationCanceledException)
317  {
318  logger.LogInformation("Cancelled instance manager initialization!");
319  }
320  catch (Exception e)
321  {
322  logger.LogCritical("Instance manager startup error! Exception: {0}", e);
323  try
324  {
325  await serverControl.Die(e).ConfigureAwait(false);
326  return;
327  }
328  catch (Exception e2)
329  {
330  logger.LogCritical("Failed to kill server! Exception: {0}", e2);
331  }
332 
333  throw;
334  }
335  });
336  #pragma warning restore CA1506 // TODO: Decomplexify
337 
339  public async Task StopAsync(CancellationToken cancellationToken)
340  {
341  await jobManager.StopAsync(cancellationToken).ConfigureAwait(false);
342  await Task.WhenAll(instances.Select(x => x.Value.StopAsync(cancellationToken))).ConfigureAwait(false);
343  await instanceFactory.StopAsync(cancellationToken).ConfigureAwait(false);
344 
345  // downgrade the db if necessary
346  if (downgradeVersion != null)
347  await databaseContextFactory.UseContext(db => databaseSeeder.Downgrade(db, downgradeVersion, cancellationToken)).ConfigureAwait(false);
348  }
349 
351  public Task HandleRestart(Version updateVersion, CancellationToken cancellationToken)
352  {
353  downgradeVersion = updateVersion != null && updateVersion < assemblyInformationProvider.Version ? updateVersion : null;
354  return Task.CompletedTask;
355  }
356 
361  {
362  using var systemIdentity = systemIdentityFactory.GetCurrent();
363  if (!systemIdentity.CanCreateSymlinks)
364  throw new InvalidOperationException("The user running tgstation-server cannot create symlinks! Please try running as an administrative user!");
365  }
366 
368  public async Task<BridgeResponse> ProcessBridgeRequest(BridgeParameters parameters, CancellationToken cancellationToken)
369  {
370  if (parameters == null)
371  throw new ArgumentNullException(nameof(parameters));
372 
373  IBridgeHandler bridgeHandler = null;
374  for (var i = 0; bridgeHandler == null && i < 30; ++i)
375  {
376  // There's a miniscule time period where we could potentially receive a bridge request and not have the registration ready when we launch DD
377  // This is a stopgap
378  Task delayTask = Task.CompletedTask;
379  lock (bridgeHandlers)
380  if (!bridgeHandlers.TryGetValue(parameters.AccessIdentifier, out bridgeHandler))
381  delayTask = asyncDelayer.Delay(TimeSpan.FromMilliseconds(100), cancellationToken);
382 
383  await delayTask.ConfigureAwait(false);
384  }
385 
386  if (bridgeHandler == null)
387  lock (bridgeHandlers)
388  if (!bridgeHandlers.TryGetValue(parameters.AccessIdentifier, out bridgeHandler))
389  {
390  logger.LogWarning("Recieved invalid bridge request with accees identifier: {0}", parameters.AccessIdentifier);
391  return null;
392  }
393 
394  return await bridgeHandler.ProcessBridgeRequest(parameters, cancellationToken).ConfigureAwait(false);
395  }
396 
399  {
400  if (bridgeHandler == null)
401  throw new ArgumentNullException(nameof(bridgeHandler));
402 
403  var accessIdentifier = bridgeHandler.DMApiParameters.AccessIdentifier;
404  lock (bridgeHandlers)
405  {
406  bridgeHandlers.Add(accessIdentifier, bridgeHandler);
407  logger.LogTrace("Registered bridge handler: {0}", accessIdentifier);
408  }
409 
410  return new BridgeRegistration(() =>
411  {
412  lock (bridgeHandlers)
413  {
414  bridgeHandlers.Remove(accessIdentifier);
415  logger.LogTrace("Unregistered bridge handler: {0}", accessIdentifier);
416  }
417  });
418  }
419  }
420 }
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the InstanceManager
readonly IServerControl serverControl
The IServerControl for the InstanceManager
IInstance GetInstance(Models.Instance metadata)
Get the IInstance associated with given metadata
@@ -108,15 +108,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
For initially setting up a database.
readonly ISystemIdentityFactory systemIdentityFactory
The ISystemIdentityFactory for the InstanceManager
bool disposed
If the InstanceManager has been Disposed
-
Task HandleRestart(Version updateVersion, CancellationToken cancellationToken)
Handle a restart of the server
+
Task HandleRestart(Version updateVersion, CancellationToken cancellationToken)
Handle a restart of the server
readonly IAssemblyInformationProvider assemblyInformationProvider
The IAssemblyInformationProvider for the InstanceManager
async Task OfflineInstance(Models.Instance metadata, Models.User user, CancellationToken cancellationToken)
-
IBridgeRegistration RegisterHandler(IBridgeHandler bridgeHandler)
Register a given bridgeHandler .
+
IBridgeRegistration RegisterHandler(IBridgeHandler bridgeHandler)
Register a given bridgeHandler .
-
async Task< BridgeResponse > ProcessBridgeRequest(BridgeParameters parameters, CancellationToken cancellationToken)
Handle a set of bridge parameters .
+
async Task< BridgeResponse > ProcessBridgeRequest(BridgeParameters parameters, CancellationToken cancellationToken)
Handle a set of bridge parameters .
readonly GeneralConfiguration generalConfiguration
The GeneralConfiguration for the InstanceManager.
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the InstanceManager
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Version downgradeVersion
Used in StopAsync(CancellationToken) to determine if database downgrades must be made ...
For interacting with the instance services
Definition: IInstance.cs:16
-
async Task StopAsync(CancellationToken cancellationToken)
+
async Task StopAsync(CancellationToken cancellationToken)
string AccessIdentifier
Used to identify and authenticate the DreamDaemon instance
@@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
readonly IIOManager ioManager
The IIOManager for the InstanceManager
Interface for using filesystems
Definition: IIOManager.cs:11
-
void CheckSystemCompatibility()
Check we have a valid system identity.
+
void CheckSystemCompatibility()
Check we have a valid system identity.
async Task MoveInstance(Models.Instance instance, string newPath, CancellationToken cancellationToken)
Move an IInstance
IRestartRegistration RegisterForRestart(IRestartHandler handler)
Register a given handler to run before stopping the server for a restart
diff --git a/_instance_manager_client_8cs.html b/_instance_manager_client_8cs.html index d436ddcf37..475a7bdfd4 100644 --- a/_instance_manager_client_8cs.html +++ b/_instance_manager_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_manager_client_8cs_source.html b/_instance_manager_client_8cs_source.html index 4244abaf8e..b18a63a7ed 100644 --- a/_instance_manager_client_8cs_source.html +++ b/_instance_manager_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_manager_rights_8cs.html b/_instance_manager_rights_8cs.html index d152b59815..02fc8d5312 100644 --- a/_instance_manager_rights_8cs.html +++ b/_instance_manager_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_manager_rights_8cs_source.html b/_instance_manager_rights_8cs_source.html index c5bc0034e6..88256d9906 100644 --- a/_instance_manager_rights_8cs_source.html +++ b/_instance_manager_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_user_client_8cs.html b/_instance_user_client_8cs.html index 632bd15765..78d065c9c8 100644 --- a/_instance_user_client_8cs.html +++ b/_instance_user_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_user_client_8cs_source.html b/_instance_user_client_8cs_source.html index 4635634032..aae6a29e6f 100644 --- a/_instance_user_client_8cs_source.html +++ b/_instance_user_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_user_controller_8cs.html b/_instance_user_controller_8cs.html index 496c7fe4fa..a620424766 100644 --- a/_instance_user_controller_8cs.html +++ b/_instance_user_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_user_controller_8cs_source.html b/_instance_user_controller_8cs_source.html index ce5564364b..5018a72650 100644 --- a/_instance_user_controller_8cs_source.html +++ b/_instance_user_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_user_rights_8cs.html b/_instance_user_rights_8cs.html index 12e0930ddf..1907a9c38f 100644 --- a/_instance_user_rights_8cs.html +++ b/_instance_user_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_instance_user_rights_8cs_source.html b/_instance_user_rights_8cs_source.html index fd13d2315a..cdfb36a4e1 100644 --- a/_instance_user_rights_8cs_source.html +++ b/_instance_user_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_insufficient_permissions_exception_8cs.html b/_insufficient_permissions_exception_8cs.html index 833ee3205e..216b283173 100644 --- a/_insufficient_permissions_exception_8cs.html +++ b/_insufficient_permissions_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_insufficient_permissions_exception_8cs_source.html b/_insufficient_permissions_exception_8cs_source.html index ba5ce14bbf..941fd5ced3 100644 --- a/_insufficient_permissions_exception_8cs_source.html +++ b/_insufficient_permissions_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_internal_2_server_information_8cs.html b/_internal_2_server_information_8cs.html index 18b5ec0177..6971ffce21 100644 --- a/_internal_2_server_information_8cs.html +++ b/_internal_2_server_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_internal_2_server_information_8cs_source.html b/_internal_2_server_information_8cs_source.html index 3dc35cb9f0..749285ffb2 100644 --- a/_internal_2_server_information_8cs_source.html +++ b/_internal_2_server_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_irc_connection_string_builder_8cs.html b/_irc_connection_string_builder_8cs.html index d897c55563..e1861a1b76 100644 --- a/_irc_connection_string_builder_8cs.html +++ b/_irc_connection_string_builder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_irc_connection_string_builder_8cs_source.html b/_irc_connection_string_builder_8cs_source.html index ff1a81ddbd..73a5362531 100644 --- a/_irc_connection_string_builder_8cs_source.html +++ b/_irc_connection_string_builder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_irc_password_type_8cs.html b/_irc_password_type_8cs.html index acd1b0671c..6feb2af474 100644 --- a/_irc_password_type_8cs.html +++ b/_irc_password_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_irc_password_type_8cs_source.html b/_irc_password_type_8cs_source.html index 213b2ecae7..a965e2f289 100644 --- a/_irc_password_type_8cs_source.html +++ b/_irc_password_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_irc_provider_8cs.html b/_irc_provider_8cs.html index 890d0c7f91..08ed979cad 100644 --- a/_irc_provider_8cs.html +++ b/_irc_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_irc_provider_8cs_source.html b/_irc_provider_8cs_source.html index 5d3acabf99..db1e4cc976 100644 --- a/_irc_provider_8cs_source.html +++ b/_irc_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_job_controller_8cs.html b/_job_controller_8cs.html index 0263deed90..4459a8e7f7 100644 --- a/_job_controller_8cs.html +++ b/_job_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_job_controller_8cs_source.html b/_job_controller_8cs_source.html index 21d29d724f..8d06e14949 100644 --- a/_job_controller_8cs_source.html +++ b/_job_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_job_exception_8cs.html b/_job_exception_8cs.html index 5bc768286f..15ec6497b2 100644 --- a/_job_exception_8cs.html +++ b/_job_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_job_exception_8cs_source.html b/_job_exception_8cs_source.html index 7b33bbd3f8..90d9d88f88 100644 --- a/_job_exception_8cs_source.html +++ b/_job_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_job_handler_8cs.html b/_job_handler_8cs.html index fcbf50f64c..d3446d7826 100644 --- a/_job_handler_8cs.html +++ b/_job_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_job_handler_8cs_source.html b/_job_handler_8cs_source.html index 2d7f1eacea..af5f919633 100644 --- a/_job_handler_8cs_source.html +++ b/_job_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_job_manager_8cs.html b/_job_manager_8cs.html index 7edbb520d9..755f0ceb8a 100644 --- a/_job_manager_8cs.html +++ b/_job_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_job_manager_8cs_source.html b/_job_manager_8cs_source.html index 46764f7e2c..726d9f7783 100644 --- a/_job_manager_8cs_source.html +++ b/_job_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_jobs_client_8cs.html b/_jobs_client_8cs.html index a9d81ad67d..da4f720998 100644 --- a/_jobs_client_8cs.html +++ b/_jobs_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_jobs_client_8cs_source.html b/_jobs_client_8cs_source.html index 7af9a88859..7463a06861 100644 --- a/_jobs_client_8cs_source.html +++ b/_jobs_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_kek_command_8cs.html b/_kek_command_8cs.html index bf199b793b..903e153c6d 100644 --- a/_kek_command_8cs.html +++ b/_kek_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_kek_command_8cs_source.html b/_kek_command_8cs_source.html index 350bc1b99c..11ffb14a65 100644 --- a/_kek_command_8cs_source.html +++ b/_kek_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_launch_result_8cs.html b/_launch_result_8cs.html index 1ff8f00cca..24d0f994e1 100644 --- a/_launch_result_8cs.html +++ b/_launch_result_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_launch_result_8cs_source.html b/_launch_result_8cs_source.html index b2a523f227..f9df9422a3 100644 --- a/_launch_result_8cs_source.html +++ b/_launch_result_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_lib_git2_commands_8cs.html b/_lib_git2_commands_8cs.html index 81119c7c8c..dce2ba43ae 100644 --- a/_lib_git2_commands_8cs.html +++ b/_lib_git2_commands_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_lib_git2_commands_8cs_source.html b/_lib_git2_commands_8cs_source.html index 9eb8373bec..ce090926d0 100644 --- a/_lib_git2_commands_8cs_source.html +++ b/_lib_git2_commands_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_lib_git2_repository_factory_8cs.html b/_lib_git2_repository_factory_8cs.html index 15b1309548..47bb2a1f3d 100644 --- a/_lib_git2_repository_factory_8cs.html +++ b/_lib_git2_repository_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_lib_git2_repository_factory_8cs_source.html b/_lib_git2_repository_factory_8cs_source.html index a4e5fe4d55..c470f3696b 100644 --- a/_lib_git2_repository_factory_8cs_source.html +++ b/_lib_git2_repository_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_limits_8cs.html b/_limits_8cs.html index 2be46ac52e..ccc0e771d9 100644 --- a/_limits_8cs.html +++ b/_limits_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_limits_8cs_source.html b/_limits_8cs_source.html index 4388a204f9..4a4c2c9ce2 100644 --- a/_limits_8cs_source.html +++ b/_limits_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_log_file_8cs.html b/_log_file_8cs.html index ead6126e3b..abebeef138 100644 --- a/_log_file_8cs.html +++ b/_log_file_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_log_file_8cs_source.html b/_log_file_8cs_source.html index 5ec063a0d8..6a601a9cab 100644 --- a/_log_file_8cs_source.html +++ b/_log_file_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_message_8cs.html b/_message_8cs.html index 64fb4869fa..54a9f14d4a 100644 --- a/_message_8cs.html +++ b/_message_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_message_8cs_source.html b/_message_8cs_source.html index 0855707d45..9472516ab8 100644 --- a/_message_8cs_source.html +++ b/_message_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_method_not_supported_exception_8cs.html b/_method_not_supported_exception_8cs.html index 2ce6d596c5..9a30f1d356 100644 --- a/_method_not_supported_exception_8cs.html +++ b/_method_not_supported_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_method_not_supported_exception_8cs_source.html b/_method_not_supported_exception_8cs_source.html index f1757f8945..0ba4ae1141 100644 --- a/_method_not_supported_exception_8cs_source.html +++ b/_method_not_supported_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_models_2_reattach_information_8cs.html b/_models_2_reattach_information_8cs.html index a8d86a4383..2fbcaa7a73 100644 --- a/_models_2_reattach_information_8cs.html +++ b/_models_2_reattach_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_models_2_reattach_information_8cs_source.html b/_models_2_reattach_information_8cs_source.html index 78b779f30a..c02fac493c 100644 --- a/_models_2_reattach_information_8cs_source.html +++ b/_models_2_reattach_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_monitor_action_8cs.html b/_monitor_action_8cs.html index 6f60c3f8c8..800c9e4e69 100644 --- a/_monitor_action_8cs.html +++ b/_monitor_action_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_monitor_action_8cs_source.html b/_monitor_action_8cs_source.html index 89aae30907..eff0ecffbe 100644 --- a/_monitor_action_8cs_source.html +++ b/_monitor_action_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_monitor_activation_reason_8cs.html b/_monitor_activation_reason_8cs.html index 86781bb8b1..57712574e4 100644 --- a/_monitor_activation_reason_8cs.html +++ b/_monitor_activation_reason_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_monitor_activation_reason_8cs_source.html b/_monitor_activation_reason_8cs_source.html index 03c5034bcd..6d729109d7 100644 --- a/_monitor_activation_reason_8cs_source.html +++ b/_monitor_activation_reason_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_my_sql_database_context_8cs.html b/_my_sql_database_context_8cs.html index 79998e173c..3d6f5e5ede 100644 --- a/_my_sql_database_context_8cs.html +++ b/_my_sql_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_my_sql_database_context_8cs_source.html b/_my_sql_database_context_8cs_source.html index db6f71147a..d32502a2c4 100644 --- a/_my_sql_database_context_8cs_source.html +++ b/_my_sql_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_my_sql_database_context_model_snapshot_8cs.html b/_my_sql_database_context_model_snapshot_8cs.html index 13f0912581..8b1de54b76 100644 --- a/_my_sql_database_context_model_snapshot_8cs.html +++ b/_my_sql_database_context_model_snapshot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_my_sql_database_context_model_snapshot_8cs_source.html b/_my_sql_database_context_model_snapshot_8cs_source.html index 58e4fbafbe..2c98b6c0d4 100644 --- a/_my_sql_database_context_model_snapshot_8cs_source.html +++ b/_my_sql_database_context_model_snapshot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_my_sql_design_time_db_context_factory_8cs.html b/_my_sql_design_time_db_context_factory_8cs.html index e4d6838498..f70d4c4459 100644 --- a/_my_sql_design_time_db_context_factory_8cs.html +++ b/_my_sql_design_time_db_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_my_sql_design_time_db_context_factory_8cs_source.html b/_my_sql_design_time_db_context_factory_8cs_source.html index 112812b17e..e3a7bcb24a 100644 --- a/_my_sql_design_time_db_context_factory_8cs_source.html +++ b/_my_sql_design_time_db_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_native_methods_8cs.html b/_native_methods_8cs.html index 033051d5b6..c69ef562f3 100644 --- a/_native_methods_8cs.html +++ b/_native_methods_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_native_methods_8cs_source.html b/_native_methods_8cs_source.html index 3d01704dcc..aeb59c94fb 100644 --- a/_native_methods_8cs_source.html +++ b/_native_methods_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_open_api_enum_var_names_extension_8cs.html b/_open_api_enum_var_names_extension_8cs.html index 020e9e9218..ceb6f50c8a 100644 --- a/_open_api_enum_var_names_extension_8cs.html +++ b/_open_api_enum_var_names_extension_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_open_api_enum_var_names_extension_8cs_source.html b/_open_api_enum_var_names_extension_8cs_source.html index 1c688e3f77..3a7cc1d5a4 100644 --- a/_open_api_enum_var_names_extension_8cs_source.html +++ b/_open_api_enum_var_names_extension_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_platform_identifier_8cs.html b/_platform_identifier_8cs.html index bfe67e5f35..7289d1491c 100644 --- a/_platform_identifier_8cs.html +++ b/_platform_identifier_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_platform_identifier_8cs_source.html b/_platform_identifier_8cs_source.html index 8694b3f084..5c3aa7c1aa 100644 --- a/_platform_identifier_8cs_source.html +++ b/_platform_identifier_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_byond_installer_8cs.html b/_posix_byond_installer_8cs.html index fac775e28a..0b002adcca 100644 --- a/_posix_byond_installer_8cs.html +++ b/_posix_byond_installer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_byond_installer_8cs_source.html b/_posix_byond_installer_8cs_source.html index d8887ed813..b8e2cfe4e3 100644 --- a/_posix_byond_installer_8cs_source.html +++ b/_posix_byond_installer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_network_prompt_reaper_8cs.html b/_posix_network_prompt_reaper_8cs.html index b4654aa0bc..d67936f3bb 100644 --- a/_posix_network_prompt_reaper_8cs.html +++ b/_posix_network_prompt_reaper_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_network_prompt_reaper_8cs_source.html b/_posix_network_prompt_reaper_8cs_source.html index bb5b0f06df..7d5670370e 100644 --- a/_posix_network_prompt_reaper_8cs_source.html +++ b/_posix_network_prompt_reaper_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_post_write_handler_8cs.html b/_posix_post_write_handler_8cs.html index ad3ce0793e..1ed1d1ba14 100644 --- a/_posix_post_write_handler_8cs.html +++ b/_posix_post_write_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_post_write_handler_8cs_source.html b/_posix_post_write_handler_8cs_source.html index 0c4fcc073c..dff5dc5713 100644 --- a/_posix_post_write_handler_8cs_source.html +++ b/_posix_post_write_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_process_features_8cs.html b/_posix_process_features_8cs.html index ce1244b7e5..c63dacbdd9 100644 --- a/_posix_process_features_8cs.html +++ b/_posix_process_features_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_process_features_8cs_source.html b/_posix_process_features_8cs_source.html index 29d0fbac13..a5cfa07605 100644 --- a/_posix_process_features_8cs_source.html +++ b/_posix_process_features_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_symlink_factory_8cs.html b/_posix_symlink_factory_8cs.html index 20ef22e702..560f83f5de 100644 --- a/_posix_symlink_factory_8cs.html +++ b/_posix_symlink_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_symlink_factory_8cs_source.html b/_posix_symlink_factory_8cs_source.html index e2601fc40c..a415679359 100644 --- a/_posix_symlink_factory_8cs_source.html +++ b/_posix_symlink_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_system_identity_8cs.html b/_posix_system_identity_8cs.html index 695cae6d9a..7bb35dc1dd 100644 --- a/_posix_system_identity_8cs.html +++ b/_posix_system_identity_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_system_identity_8cs_source.html b/_posix_system_identity_8cs_source.html index 7089968d89..ee97c4937b 100644 --- a/_posix_system_identity_8cs_source.html +++ b/_posix_system_identity_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_system_identity_factory_8cs.html b/_posix_system_identity_factory_8cs.html index d6eae07fe6..123cf0a405 100644 --- a/_posix_system_identity_factory_8cs.html +++ b/_posix_system_identity_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_system_identity_factory_8cs_source.html b/_posix_system_identity_factory_8cs_source.html index 30794f3a48..f533393c13 100644 --- a/_posix_system_identity_factory_8cs_source.html +++ b/_posix_system_identity_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_watchdog_8cs.html b/_posix_watchdog_8cs.html index 93ea7dcce4..2c425283a6 100644 --- a/_posix_watchdog_8cs.html +++ b/_posix_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_watchdog_8cs_source.html b/_posix_watchdog_8cs_source.html index 0218070427..a75844cad5 100644 --- a/_posix_watchdog_8cs_source.html +++ b/_posix_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_watchdog_factory_8cs.html b/_posix_watchdog_factory_8cs.html index 1616778292..6955c45a2a 100644 --- a/_posix_watchdog_factory_8cs.html +++ b/_posix_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_posix_watchdog_factory_8cs_source.html b/_posix_watchdog_factory_8cs_source.html index 25b80e4a1b..fefdc53a3f 100644 --- a/_posix_watchdog_factory_8cs_source.html +++ b/_posix_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,14 +94,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
PosixWatchdogFactory.cs
-Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using Microsoft.Extensions.Options;
11 using Tgstation.Server.Host.IO;
13 
14 namespace Tgstation.Server.Host.Components.Watchdog
15 {
20  {
32  IServerControl serverControl,
33  ILoggerFactory loggerFactory,
34  IDatabaseContextFactory databaseContextFactory,
35  IJobManager jobManager,
36  IAsyncDelayer asyncDelayer,
37  ISymlinkFactory symlinkFactory,
38  IOptions<GeneralConfiguration> generalConfigurationOptions)
39  : base(
40  serverControl,
41  loggerFactory,
42  databaseContextFactory,
43  jobManager,
44  asyncDelayer,
45  symlinkFactory,
46  generalConfigurationOptions)
47  { }
48 
50  public override IWatchdog CreateWatchdog(
51  IChatManager chat,
52  IDmbFactory dmbFactory,
53  ISessionPersistor sessionPersistor,
54  ISessionControllerFactory sessionControllerFactory,
55  IIOManager gameIOManager,
56  IIOManager diagnosticsIOManager,
57  IEventConsumer eventConsumer,
58  Api.Models.Instance instance,
59  DreamDaemonSettings settings)
60  => new PosixWatchdog(
61  chat,
62  sessionControllerFactory,
63  dmbFactory,
64  sessionPersistor,
66  JobManager,
67  ServerControl,
69  diagnosticsIOManager,
70  eventConsumer,
71  gameIOManager,
72  SymlinkFactory,
73  LoggerFactory.CreateLogger<PosixWatchdog>(),
74  settings,
75  instance,
76  settings.AutoStart.Value);
77  }
78 }
+Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using Microsoft.Extensions.Options;
3 using System;
12 using Tgstation.Server.Host.IO;
14 
15 namespace Tgstation.Server.Host.Components.Watchdog
16 {
21  {
33  IServerControl serverControl,
34  ILoggerFactory loggerFactory,
35  IDatabaseContextFactory databaseContextFactory,
36  IJobManager jobManager,
37  IAsyncDelayer asyncDelayer,
38  ISymlinkFactory symlinkFactory,
39  IOptions<GeneralConfiguration> generalConfigurationOptions)
40  : base(
41  serverControl,
42  loggerFactory,
43  databaseContextFactory,
44  jobManager,
45  asyncDelayer,
46  symlinkFactory,
47  generalConfigurationOptions)
48  { }
49 
51  public override IWatchdog CreateWatchdog(
52  IChatManager chat,
53  IDmbFactory dmbFactory,
54  ISessionPersistor sessionPersistor,
55  ISessionControllerFactory sessionControllerFactory,
56  IIOManager gameIOManager,
57  IIOManager diagnosticsIOManager,
58  IEventConsumer eventConsumer,
59  Api.Models.Instance instance,
60  DreamDaemonSettings settings)
61  => new PosixWatchdog(
62  chat,
63  sessionControllerFactory,
64  dmbFactory,
65  sessionPersistor,
67  JobManager,
68  ServerControl,
70  diagnosticsIOManager,
71  eventConsumer,
72  gameIOManager,
73  SymlinkFactory,
74  LoggerFactory.CreateLogger<PosixWatchdog>(),
75  settings,
76  instance,
77  settings.AutoStart ?? throw new ArgumentNullException(nameof(settings)));
78  }
79 }
Handles saving and loading ReattachInformation.
Factory for scoping usage of IDatabaseContexts. Meant for use by Components
-
PosixWatchdogFactory(IServerControl serverControl, ILoggerFactory loggerFactory, IDatabaseContextFactory databaseContextFactory, IJobManager jobManager, IAsyncDelayer asyncDelayer, ISymlinkFactory symlinkFactory, IOptions< GeneralConfiguration > generalConfigurationOptions)
Initializes a new instance of the PosixWatchdogFactory .
+ +
PosixWatchdogFactory(IServerControl serverControl, ILoggerFactory loggerFactory, IDatabaseContextFactory databaseContextFactory, IJobManager jobManager, IAsyncDelayer asyncDelayer, ISymlinkFactory symlinkFactory, IOptions< GeneralConfiguration > generalConfigurationOptions)
Initializes a new instance of the PosixWatchdogFactory .
bool AutoStart
If DreamDaemon starts when it&#39;s Instance starts
@@ -123,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Interface for using filesystems
Definition: IIOManager.cs:11
- + diff --git a/_post_setup_services_8cs.html b/_post_setup_services_8cs.html index 82453d8956..8aaa433e39 100644 --- a/_post_setup_services_8cs.html +++ b/_post_setup_services_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_post_setup_services_8cs_source.html b/_post_setup_services_8cs_source.html index 161e70b9a8..afdf11bc0d 100644 --- a/_post_setup_services_8cs_source.html +++ b/_post_setup_services_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_database_context_8cs.html b/_postgres_sql_database_context_8cs.html index 53e94e9152..77bd27eb5b 100644 --- a/_postgres_sql_database_context_8cs.html +++ b/_postgres_sql_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_database_context_8cs_source.html b/_postgres_sql_database_context_8cs_source.html index c856a33ece..8852ac0dc6 100644 --- a/_postgres_sql_database_context_8cs_source.html +++ b/_postgres_sql_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_database_context_model_snapshot_8cs.html b/_postgres_sql_database_context_model_snapshot_8cs.html index d726d82572..e708f38c7d 100644 --- a/_postgres_sql_database_context_model_snapshot_8cs.html +++ b/_postgres_sql_database_context_model_snapshot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_database_context_model_snapshot_8cs_source.html b/_postgres_sql_database_context_model_snapshot_8cs_source.html index a2195c7ad9..45ee6eb423 100644 --- a/_postgres_sql_database_context_model_snapshot_8cs_source.html +++ b/_postgres_sql_database_context_model_snapshot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_design_time_db_context_factory_8cs.html b/_postgres_sql_design_time_db_context_factory_8cs.html index e0d38dedb7..145c47096d 100644 --- a/_postgres_sql_design_time_db_context_factory_8cs.html +++ b/_postgres_sql_design_time_db_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_postgres_sql_design_time_db_context_factory_8cs_source.html b/_postgres_sql_design_time_db_context_factory_8cs_source.html index ae476d5aa2..3c40c284a2 100644 --- a/_postgres_sql_design_time_db_context_factory_8cs_source.html +++ b/_postgres_sql_design_time_db_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_process_8cs.html b/_process_8cs.html index a006744972..96952a2bec 100644 --- a/_process_8cs.html +++ b/_process_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_process_8cs_source.html b/_process_8cs_source.html index 867829e858..4e95e5c12d 100644 --- a/_process_8cs_source.html +++ b/_process_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_process_executor_8cs.html b/_process_executor_8cs.html index cc554f6aab..3cfa72de5c 100644 --- a/_process_executor_8cs.html +++ b/_process_executor_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_process_executor_8cs_source.html b/_process_executor_8cs_source.html index 678b23aa66..72a6bc5af5 100644 --- a/_process_executor_8cs_source.html +++ b/_process_executor_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_program_8cs.html b/_program_8cs.html index d3bae7c72b..3129b19808 100644 --- a/_program_8cs.html +++ b/_program_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_program_8cs_source.html b/_program_8cs_source.html index 7d1c2f6877..e0f060c39e 100644 --- a/_program_8cs_source.html +++ b/_program_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_program_shutdown_token_source_8cs.html b/_program_shutdown_token_source_8cs.html index 8dbe46dabb..09fd4ea2f1 100644 --- a/_program_shutdown_token_source_8cs.html +++ b/_program_shutdown_token_source_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_program_shutdown_token_source_8cs_source.html b/_program_shutdown_token_source_8cs_source.html index dab4cfc93c..e823cc9b00 100644 --- a/_program_shutdown_token_source_8cs_source.html +++ b/_program_shutdown_token_source_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_provider_8cs.html b/_provider_8cs.html index a8432f1f3f..102433996b 100644 --- a/_provider_8cs.html +++ b/_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_provider_8cs_source.html b/_provider_8cs_source.html index cd807c458f..fee0e7f5ae 100644 --- a/_provider_8cs_source.html +++ b/_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_provider_factory_8cs.html b/_provider_factory_8cs.html index 58fcc1005c..e9e76b9317 100644 --- a/_provider_factory_8cs.html +++ b/_provider_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_provider_factory_8cs_source.html b/_provider_factory_8cs_source.html index 4d2bbd124f..9a251e06a0 100644 --- a/_provider_factory_8cs_source.html +++ b/_provider_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_pull_requests_command_8cs.html b/_pull_requests_command_8cs.html index 911b2c5606..fc4250f694 100644 --- a/_pull_requests_command_8cs.html +++ b/_pull_requests_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_pull_requests_command_8cs_source.html b/_pull_requests_command_8cs_source.html index cd939417b4..e3f1829097 100644 --- a/_pull_requests_command_8cs_source.html +++ b/_pull_requests_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_r_e_a_d_m_e_8md.html b/_r_e_a_d_m_e_8md.html index d7ce3cf733..ed29fd95d1 100644 --- a/_r_e_a_d_m_e_8md.html +++ b/_r_e_a_d_m_e_8md.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_r_e_a_d_m_e_8md_source.html b/_r_e_a_d_m_e_8md_source.html index 597541028e..25e4d9fe95 100644 --- a/_r_e_a_d_m_e_8md_source.html +++ b/_r_e_a_d_m_e_8md_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_rate_limit_exception_8cs.html b/_rate_limit_exception_8cs.html index 1e3eeb63dd..1db6a6e153 100644 --- a/_rate_limit_exception_8cs.html +++ b/_rate_limit_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_rate_limit_exception_8cs_source.html b/_rate_limit_exception_8cs_source.html index e57d39a8d2..5811e8a4a4 100644 --- a/_rate_limit_exception_8cs_source.html +++ b/_rate_limit_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_raw_data_8cs.html b/_raw_data_8cs.html index 81ce03e298..fbe4fc8246 100644 --- a/_raw_data_8cs.html +++ b/_raw_data_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_raw_data_8cs_source.html b/_raw_data_8cs_source.html index a523a28285..1002b0bc8a 100644 --- a/_raw_data_8cs_source.html +++ b/_raw_data_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_reattach_information_base_8cs.html b/_reattach_information_base_8cs.html index 6e42e6428a..2ce0427c1c 100644 --- a/_reattach_information_base_8cs.html +++ b/_reattach_information_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_reattach_information_base_8cs_source.html b/_reattach_information_base_8cs_source.html index 4fa168739b..6a4b5a781f 100644 --- a/_reattach_information_base_8cs_source.html +++ b/_reattach_information_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_reboot_state_8cs.html b/_reboot_state_8cs.html index 98a55f744a..8007f3168e 100644 --- a/_reboot_state_8cs.html +++ b/_reboot_state_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_reboot_state_8cs_source.html b/_reboot_state_8cs_source.html index 57690a7638..c1face0210 100644 --- a/_reboot_state_8cs_source.html +++ b/_reboot_state_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_repository_client_8cs.html b/_repository_client_8cs.html index b44ae599e0..2aad08c84d 100644 --- a/_repository_client_8cs.html +++ b/_repository_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_repository_client_8cs_source.html b/_repository_client_8cs_source.html index 5bd95339d2..b97beecaff 100644 --- a/_repository_client_8cs_source.html +++ b/_repository_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_repository_controller_8cs.html b/_repository_controller_8cs.html index efdb44216b..31a6c42499 100644 --- a/_repository_controller_8cs.html +++ b/_repository_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_repository_controller_8cs_source.html b/_repository_controller_8cs_source.html index 921d883aad..f701dd1493 100644 --- a/_repository_controller_8cs_source.html +++ b/_repository_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_repository_manager_8cs.html b/_repository_manager_8cs.html index 7565e88193..08e3acfb50 100644 --- a/_repository_manager_8cs.html +++ b/_repository_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_repository_manager_8cs_source.html b/_repository_manager_8cs_source.html index b61125a9b8..ab5a3e2310 100644 --- a/_repository_manager_8cs_source.html +++ b/_repository_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_repository_rights_8cs.html b/_repository_rights_8cs.html index 519e03d10d..f007cfbf6c 100644 --- a/_repository_rights_8cs.html +++ b/_repository_rights_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_repository_rights_8cs_source.html b/_repository_rights_8cs_source.html index 401c34b77f..35adb2f0fb 100644 --- a/_repository_rights_8cs_source.html +++ b/_repository_rights_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_request_timeout_exception_8cs.html b/_request_timeout_exception_8cs.html index 87cddc87a7..ab96bd6c9f 100644 --- a/_request_timeout_exception_8cs.html +++ b/_request_timeout_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_request_timeout_exception_8cs_source.html b/_request_timeout_exception_8cs_source.html index 0fc6bc7cfe..ce0100f9e4 100644 --- a/_request_timeout_exception_8cs_source.html +++ b/_request_timeout_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_resolving_i_o_manager_8cs.html b/_resolving_i_o_manager_8cs.html index cfd45c38f3..80313c0f0d 100644 --- a/_resolving_i_o_manager_8cs.html +++ b/_resolving_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_resolving_i_o_manager_8cs_source.html b/_resolving_i_o_manager_8cs_source.html index 594ba2dbe0..1188488adc 100644 --- a/_resolving_i_o_manager_8cs_source.html +++ b/_resolving_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_restart_registration_8cs.html b/_restart_registration_8cs.html index 7061d4e954..2b955a6fc4 100644 --- a/_restart_registration_8cs.html +++ b/_restart_registration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_restart_registration_8cs_source.html b/_restart_registration_8cs_source.html index 7401cbfb22..a8d3a5e718 100644 --- a/_restart_registration_8cs_source.html +++ b/_restart_registration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_rev_info_test_merge_8cs.html b/_rev_info_test_merge_8cs.html index 9a8bce126a..dc118d0213 100644 --- a/_rev_info_test_merge_8cs.html +++ b/_rev_info_test_merge_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_rev_info_test_merge_8cs_source.html b/_rev_info_test_merge_8cs_source.html index 19b8301a8d..cf8f0944b3 100644 --- a/_rev_info_test_merge_8cs_source.html +++ b/_rev_info_test_merge_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_revision_command_8cs.html b/_revision_command_8cs.html index c32fd549fd..7fe2af192c 100644 --- a/_revision_command_8cs.html +++ b/_revision_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_revision_command_8cs_source.html b/_revision_command_8cs_source.html index c452735c64..86cb253a3f 100644 --- a/_revision_command_8cs_source.html +++ b/_revision_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_rights_helper_8cs.html b/_rights_helper_8cs.html index f19b1f55eb..12c5a45807 100644 --- a/_rights_helper_8cs.html +++ b/_rights_helper_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_rights_helper_8cs_source.html b/_rights_helper_8cs_source.html index 6eef31dfd0..224a94a7ea 100644 --- a/_rights_helper_8cs_source.html +++ b/_rights_helper_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_rights_type_8cs.html b/_rights_type_8cs.html index dab9124dfc..5db6e9e0bf 100644 --- a/_rights_type_8cs.html +++ b/_rights_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_rights_type_8cs_source.html b/_rights_type_8cs_source.html index e0c2cfdcd9..a58492b767 100644 --- a/_rights_type_8cs_source.html +++ b/_rights_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_routes_8cs.html b/_routes_8cs.html index 6642298ce4..9426771a33 100644 --- a/_routes_8cs.html +++ b/_routes_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_routes_8cs_source.html b/_routes_8cs_source.html index fd7aa9eb93..af7646d1fa 100644 --- a/_routes_8cs_source.html +++ b/_routes_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_runtime_information_8cs.html b/_runtime_information_8cs.html index 468e1b0fa2..aec7d368f9 100644 --- a/_runtime_information_8cs.html +++ b/_runtime_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_runtime_information_8cs_source.html b/_runtime_information_8cs_source.html index a84b319886..5e35b113f6 100644 --- a/_runtime_information_8cs_source.html +++ b/_runtime_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_semaphore_slim_context_8cs.html b/_semaphore_slim_context_8cs.html index 481c00e40c..41aad93014 100644 --- a/_semaphore_slim_context_8cs.html +++ b/_semaphore_slim_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_semaphore_slim_context_8cs_source.html b/_semaphore_slim_context_8cs_source.html index 7ec2541554..a8f62f1937 100644 --- a/_semaphore_slim_context_8cs_source.html +++ b/_semaphore_slim_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_8cs.html b/_server_8cs.html index ba135880e4..262d8954e4 100644 --- a/_server_8cs.html +++ b/_server_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_8cs_source.html b/_server_8cs_source.html index dc8c1c976c..dd7e1e32ba 100644 --- a/_server_8cs_source.html +++ b/_server_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Server.cs
-Go to the documentation of this file.
1 using Microsoft.Extensions.DependencyInjection;
2 using Microsoft.Extensions.Hosting;
3 using Microsoft.Extensions.Logging;
4 using Microsoft.Extensions.Options;
5 using System;
6 using System.Collections.Generic;
7 using System.IO;
8 using System.Linq;
9 using System.Threading;
10 using System.Threading.Tasks;
13 using Tgstation.Server.Host.IO;
14 
15 namespace Tgstation.Server.Host
16 {
18  sealed class Server : IServer, IServerControl
19  {
21  public bool RestartRequested { get; private set; }
22 
24  public bool WatchdogPresent =>
25 #if WATCHDOG_FREE_RESTART
26  true;
27 #else
28  updatePath != null;
29 #endif
30 
34  readonly IHostBuilder hostBuilder;
35 
39  readonly List<IRestartHandler> restartHandlers;
40 
44  readonly string updatePath;
45 
49  readonly object restartLock;
50 
54  ILogger<Server> logger;
55 
60 
64  CancellationTokenSource cancellationTokenSource;
65 
70 
74  bool updating;
75 
81  public Server(IHostBuilder hostBuilder, string updatePath)
82  {
83  this.hostBuilder = hostBuilder ?? throw new ArgumentNullException(nameof(hostBuilder));
84  this.updatePath = updatePath;
85 
86  hostBuilder.ConfigureServices(serviceCollection => serviceCollection.AddSingleton<IServerControl>(this));
87 
88  restartHandlers = new List<IRestartHandler>();
89  restartLock = new object();
90  }
91 
96  void CheckSanity(bool checkWatchdog)
97  {
98  if (checkWatchdog && !WatchdogPresent && propagatedException == null)
99  throw new InvalidOperationException("Server restarts are not supported");
100 
101  if (cancellationTokenSource == null || logger == null)
102  throw new InvalidOperationException("Tried to control a non-running Server!");
103  }
104 
109  void CheckExceptionPropagation(Exception otherException)
110  {
111  if (propagatedException == null)
112  return;
113 
114  if (otherException != null)
115  throw new AggregateException(propagatedException, otherException);
116 
117  throw propagatedException;
118  }
119 
121  public async Task Run(CancellationToken cancellationToken)
122  {
123  using (cancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken))
124  using (var fsWatcher = updatePath != null ? new FileSystemWatcher(Path.GetDirectoryName(updatePath)) : null)
125  {
126  if (fsWatcher != null)
127  {
128  fsWatcher.Created += (a, b) =>
129  {
130  if (b.FullPath == updatePath && File.Exists(b.FullPath))
131  {
132  if (logger != null)
133  logger.LogInformation("Host watchdog appears to be requesting server termination!");
134  cancellationTokenSource.Cancel();
135  }
136  };
137  fsWatcher.EnableRaisingEvents = true;
138  }
139 
140  using var host = hostBuilder.Build();
141  try
142  {
143  logger = host.Services.GetRequiredService<ILogger<Server>>();
144  using (cancellationToken.Register(() => logger.LogInformation("Server termination requested!")))
145  {
146  var generalConfigurationOptions = host.Services.GetRequiredService<IOptions<GeneralConfiguration>>();
147  generalConfiguration = generalConfigurationOptions.Value;
148  await host.RunAsync(cancellationTokenSource.Token).ConfigureAwait(false);
149  }
150  }
151  catch (Exception ex)
152  {
153  CheckExceptionPropagation(ex);
154  throw;
155  }
156  }
157 
158  CheckExceptionPropagation(null);
159  }
160 
162  public bool ApplyUpdate(Version version, Uri updateZipUrl, IIOManager ioManager)
163  {
164  if (version == null)
165  throw new ArgumentNullException(nameof(version));
166  if (updateZipUrl == null)
167  throw new ArgumentNullException(nameof(updateZipUrl));
168  if (ioManager == null)
169  throw new ArgumentNullException(nameof(ioManager));
170 
171  CheckSanity(true);
172 
173  logger.LogTrace("Begin ApplyUpdate...");
174 
175  lock (restartLock)
176  {
177  if (updating || RestartRequested)
178  {
179  logger.LogTrace("Aborted due to concurrency conflict!");
180  return false;
181  }
182 
183  updating = true;
184  }
185 
186  async void RunUpdate()
187  {
188  try
189  {
190  logger.LogInformation("Updating server to version {0} ({1})...", version, updateZipUrl);
191 
192  if (cancellationTokenSource == null)
193  throw new InvalidOperationException("Tried to update a non-running Server!");
194  var cancellationToken = cancellationTokenSource.Token;
195 
196  logger.LogTrace("Downloading zip package...");
197  var updateZipData = await ioManager.DownloadFile(updateZipUrl, cancellationToken).ConfigureAwait(false);
198 
199  try
200  {
201  logger.LogTrace("Exctracting zip package to {0}...", updatePath);
202  await ioManager.ZipToDirectory(updatePath, updateZipData, cancellationToken).ConfigureAwait(false);
203  }
204  catch (Exception e)
205  {
206  updating = false;
207  try
208  {
209  // important to not leave this directory around if possible
210  await ioManager.DeleteDirectory(updatePath, default).ConfigureAwait(false);
211  }
212  catch (Exception e2)
213  {
214  throw new AggregateException(e, e2);
215  }
216 
217  throw;
218  }
219 
220  await Restart(version, null, true).ConfigureAwait(false);
221  }
222  catch (OperationCanceledException)
223  {
224  logger.LogInformation("Server update cancelled!");
225  }
226  catch (Exception e)
227  {
228  logger.LogError("Error updating server! Exception: {0}", e);
229  }
230  finally
231  {
232  updating = false;
233  }
234  }
235 
236  RunUpdate();
237  return true;
238  }
239 
242  {
243  if (handler == null)
244  throw new ArgumentNullException(nameof(handler));
245 
246  CheckSanity(false);
247 
248  lock (restartLock)
249  if (!RestartRequested)
250  {
251  logger.LogTrace("Registering restart handler {0}...", handler);
252  restartHandlers.Add(handler);
253  return new RestartRegistration(() =>
254  {
255  lock (restartLock)
256  if (!RestartRequested)
257  restartHandlers.Remove(handler);
258  });
259  }
260 
261  return new RestartRegistration(() => { });
262  }
263 
265  public Task Restart() => Restart(null, null, true);
266 
274  async Task Restart(Version newVersion, Exception exception, bool requireWatchdog)
275  {
276  CheckSanity(requireWatchdog);
277 
278  logger.LogTrace("Begin Restart...");
279 
280  lock (restartLock)
281  {
282  if ((updating && newVersion == null) || RestartRequested)
283  {
284  logger.LogTrace("Aborted due to concurrency conflict!");
285  return;
286  }
287 
288  RestartRequested = true;
289  propagatedException = exception;
290  }
291 
292  if (exception == null)
293  using (var cts = new CancellationTokenSource())
294  {
295  logger.LogInformation("Restarting server...");
296  var cancellationToken = cts.Token;
297  var eventsTask = Task.WhenAll(restartHandlers.Select(x => x.HandleRestart(newVersion, cancellationToken)).ToList());
298 
299  var expiryTask = Task.Delay(TimeSpan.FromMilliseconds(generalConfiguration.RestartTimeout));
300  await Task.WhenAny(eventsTask, expiryTask).ConfigureAwait(false);
301  logger.LogTrace("Joining restart handlers...");
302  cts.Cancel();
303  try
304  {
305  await eventsTask.ConfigureAwait(false);
306  }
307  catch (OperationCanceledException)
308  {
309  logger.LogError("Restart timeout hit! Existing DreamDaemon processes will be lost and must be killed manually before being restarted with TGS!");
310  }
311  catch (Exception e)
312  {
313  logger.LogError("Restart handlers error! Exception: {0}", e);
314  }
315  }
316 
317  logger.LogTrace("Stopping host...");
318  cancellationTokenSource.Cancel();
319  }
320 
322  public Task Die(Exception exception) => Restart(null, exception, false);
323  }
324 }
Task DeleteDirectory(string path, CancellationToken cancellationToken)
Recursively delete a directory, removes and does not enter any symlinks encounterd.
+Go to the documentation of this file.
1 using Microsoft.Extensions.DependencyInjection;
2 using Microsoft.Extensions.Hosting;
3 using Microsoft.Extensions.Logging;
4 using Microsoft.Extensions.Options;
5 using System;
6 using System.Collections.Generic;
7 using System.IO;
8 using System.Linq;
9 using System.Threading;
10 using System.Threading.Tasks;
13 using Tgstation.Server.Host.IO;
14 
15 namespace Tgstation.Server.Host
16 {
18  sealed class Server : IServer, IServerControl
19  {
21  public bool RestartRequested { get; private set; }
22 
24  public bool WatchdogPresent =>
25 #if WATCHDOG_FREE_RESTART
26  true;
27 #else
28  updatePath != null;
29 #endif
30 
34  readonly IHostBuilder hostBuilder;
35 
39  readonly List<IRestartHandler> restartHandlers;
40 
44  readonly string updatePath;
45 
49  readonly object restartLock;
50 
54  ILogger<Server> logger;
55 
60 
64  CancellationTokenSource cancellationTokenSource;
65 
70 
74  bool updating;
75 
81  public Server(IHostBuilder hostBuilder, string updatePath)
82  {
83  this.hostBuilder = hostBuilder ?? throw new ArgumentNullException(nameof(hostBuilder));
84  this.updatePath = updatePath;
85 
86  hostBuilder.ConfigureServices(serviceCollection => serviceCollection.AddSingleton<IServerControl>(this));
87 
88  restartHandlers = new List<IRestartHandler>();
89  restartLock = new object();
90  }
91 
96  void CheckSanity(bool checkWatchdog)
97  {
98  if (checkWatchdog && !WatchdogPresent && propagatedException == null)
99  throw new InvalidOperationException("Server restarts are not supported");
100 
101  if (cancellationTokenSource == null || logger == null)
102  throw new InvalidOperationException("Tried to control a non-running Server!");
103  }
104 
109  void CheckExceptionPropagation(Exception otherException)
110  {
111  if (propagatedException == null)
112  return;
113 
114  if (otherException != null)
115  throw new AggregateException(propagatedException, otherException);
116 
117  throw propagatedException;
118  }
119 
121  public async Task Run(CancellationToken cancellationToken)
122  {
123  using (cancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken))
124  using (var fsWatcher = updatePath != null ? new FileSystemWatcher(Path.GetDirectoryName(updatePath)) : null)
125  {
126  if (fsWatcher != null)
127  {
128  fsWatcher.Created += (a, b) =>
129  {
130  if (b.FullPath == updatePath && File.Exists(b.FullPath))
131  {
132  if (logger != null)
133  logger.LogInformation("Host watchdog appears to be requesting server termination!");
134  cancellationTokenSource.Cancel();
135  }
136  };
137  fsWatcher.EnableRaisingEvents = true;
138  }
139 
140  using var host = hostBuilder.Build();
141  try
142  {
143  logger = host.Services.GetRequiredService<ILogger<Server>>();
144  using (cancellationToken.Register(() => logger.LogInformation("Server termination requested!")))
145  {
146  var generalConfigurationOptions = host.Services.GetRequiredService<IOptions<GeneralConfiguration>>();
147  generalConfiguration = generalConfigurationOptions.Value;
148  await host.RunAsync(cancellationTokenSource.Token).ConfigureAwait(false);
149  }
150  }
151  catch (Exception ex)
152  {
153  CheckExceptionPropagation(ex);
154  throw;
155  }
156  }
157 
158  CheckExceptionPropagation(null);
159  }
160 
162  public bool ApplyUpdate(Version version, Uri updateZipUrl, IIOManager ioManager)
163  {
164  if (version == null)
165  throw new ArgumentNullException(nameof(version));
166  if (updateZipUrl == null)
167  throw new ArgumentNullException(nameof(updateZipUrl));
168  if (ioManager == null)
169  throw new ArgumentNullException(nameof(ioManager));
170 
171  CheckSanity(true);
172 
173  logger.LogTrace("Begin ApplyUpdate...");
174 
175  lock (restartLock)
176  {
177  if (updating || RestartRequested)
178  {
179  logger.LogTrace("Aborted due to concurrency conflict!");
180  return false;
181  }
182 
183  updating = true;
184  }
185 
186  async void RunUpdate()
187  {
188  try
189  {
190  logger.LogInformation("Updating server to version {0} ({1})...", version, updateZipUrl);
191 
192  if (cancellationTokenSource == null)
193  throw new InvalidOperationException("Tried to update a non-running Server!");
194  var cancellationToken = cancellationTokenSource.Token;
195 
196  logger.LogTrace("Downloading zip package...");
197  var updateZipData = await ioManager.DownloadFile(updateZipUrl, cancellationToken).ConfigureAwait(false);
198 
199  try
200  {
201  logger.LogTrace("Exctracting zip package to {0}...", updatePath);
202  await ioManager.ZipToDirectory(updatePath, updateZipData, cancellationToken).ConfigureAwait(false);
203  }
204  catch (Exception e)
205  {
206  updating = false;
207  try
208  {
209  // important to not leave this directory around if possible
210  await ioManager.DeleteDirectory(updatePath, default).ConfigureAwait(false);
211  }
212  catch (Exception e2)
213  {
214  throw new AggregateException(e, e2);
215  }
216 
217  throw;
218  }
219 
220  await Restart(version, null, true).ConfigureAwait(false);
221  }
222  catch (OperationCanceledException)
223  {
224  logger.LogInformation("Server update cancelled!");
225  }
226  catch (Exception e)
227  {
228  logger.LogError("Error updating server! Exception: {0}", e);
229  }
230  finally
231  {
232  updating = false;
233  }
234  }
235 
236  RunUpdate();
237  return true;
238  }
239 
242  {
243  if (handler == null)
244  throw new ArgumentNullException(nameof(handler));
245 
246  CheckSanity(false);
247 
248  lock (restartLock)
249  if (!RestartRequested)
250  {
251  logger.LogTrace("Registering restart handler {0}...", handler);
252  restartHandlers.Add(handler);
253  return new RestartRegistration(() =>
254  {
255  lock (restartLock)
256  if (!RestartRequested)
257  restartHandlers.Remove(handler);
258  });
259  }
260 
261  return new RestartRegistration(() => { });
262  }
263 
265  public Task Restart() => Restart(null, null, true);
266 
274  async Task Restart(Version newVersion, Exception exception, bool requireWatchdog)
275  {
276  CheckSanity(requireWatchdog);
277 
278  logger.LogTrace("Begin Restart...");
279 
280  lock (restartLock)
281  {
282  if ((updating && newVersion == null) || RestartRequested)
283  {
284  logger.LogTrace("Aborted due to concurrency conflict!");
285  return;
286  }
287 
288  RestartRequested = true;
289  propagatedException ??= exception;
290  }
291 
292  if (exception == null)
293  using (var cts = new CancellationTokenSource())
294  {
295  logger.LogInformation("Restarting server...");
296  var cancellationToken = cts.Token;
297  var eventsTask = Task.WhenAll(restartHandlers.Select(x => x.HandleRestart(newVersion, cancellationToken)).ToList());
298 
299  var expiryTask = Task.Delay(TimeSpan.FromMilliseconds(generalConfiguration.RestartTimeout));
300  await Task.WhenAny(eventsTask, expiryTask).ConfigureAwait(false);
301  logger.LogTrace("Joining restart handlers...");
302  cts.Cancel();
303  try
304  {
305  await eventsTask.ConfigureAwait(false);
306  }
307  catch (OperationCanceledException)
308  {
309  logger.LogError("Restart timeout hit! Existing DreamDaemon processes will be lost and must be killed manually before being restarted with TGS!");
310  }
311  catch (Exception e)
312  {
313  logger.LogError("Restart handlers error! Exception: {0}", e);
314  }
315  }
316 
317  logger.LogTrace("Stopping host...");
318  cancellationTokenSource.Cancel();
319  }
320 
322  public Task Die(Exception exception) => Restart(null, exception, false);
323  }
324 }
Task DeleteDirectory(string path, CancellationToken cancellationToken)
Recursively delete a directory, removes and does not enter any symlinks encounterd.
ILogger< Server > logger
The ILogger for the Server
Definition: Server.cs:54
bool ApplyUpdate(Version version, Uri updateZipUrl, IIOManager ioManager)
Run a new Host assembly and stop the current one. This will likely trigger all active CancellationTok...
Definition: Server.cs:162
readonly List< IRestartHandler > restartHandlers
The IRestartHandlers to run when the Server restarts
Definition: Server.cs:39
diff --git a/_server_client_8cs.html b/_server_client_8cs.html index e495670101..1122996f87 100644 --- a/_server_client_8cs.html +++ b/_server_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_client_8cs_source.html b/_server_client_8cs_source.html index ab20b9fb02..9c64b43869 100644 --- a/_server_client_8cs_source.html +++ b/_server_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_client_factory_8cs.html b/_server_client_factory_8cs.html index 825f80c072..5f36f8ab77 100644 --- a/_server_client_factory_8cs.html +++ b/_server_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_client_factory_8cs_source.html b/_server_client_factory_8cs_source.html index 469f5b8027..11a93bd705 100644 --- a/_server_client_factory_8cs_source.html +++ b/_server_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_error_exception_8cs.html b/_server_error_exception_8cs.html index 74b2d85f25..201c5f8297 100644 --- a/_server_error_exception_8cs.html +++ b/_server_error_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_error_exception_8cs_source.html b/_server_error_exception_8cs_source.html index d86ac3a7a3..d8f7d3674e 100644 --- a/_server_error_exception_8cs_source.html +++ b/_server_error_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_factory_8cs.html b/_server_factory_8cs.html index 20dd407914..3637814466 100644 --- a/_server_factory_8cs.html +++ b/_server_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_factory_8cs_source.html b/_server_factory_8cs_source.html index 44f58fcf42..981268f8b4 100644 --- a/_server_factory_8cs_source.html +++ b/_server_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_information_8cs.html b/_server_information_8cs.html index 5d81257b5e..7f8b712d90 100644 --- a/_server_information_8cs.html +++ b/_server_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_information_8cs_source.html b/_server_information_8cs_source.html index cfe6cb69db..b7cd8c9b21 100644 --- a/_server_information_8cs_source.html +++ b/_server_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_port_proivder_8cs.html b/_server_port_proivder_8cs.html index d6bc895973..77766fd1c1 100644 --- a/_server_port_proivder_8cs.html +++ b/_server_port_proivder_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_port_proivder_8cs_source.html b/_server_port_proivder_8cs_source.html index 68345f94d6..431dd63bd6 100644 --- a/_server_port_proivder_8cs_source.html +++ b/_server_port_proivder_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_service_8cs.html b/_server_service_8cs.html index f83c6a2227..7d2e15cf4f 100644 --- a/_server_service_8cs.html +++ b/_server_service_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_service_8cs_source.html b/_server_service_8cs_source.html index 470141c484..872e7cbe30 100644 --- a/_server_service_8cs_source.html +++ b/_server_service_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_side_modifications_8cs.html b/_server_side_modifications_8cs.html index 4b59b9bd37..8b7063ffa4 100644 --- a/_server_side_modifications_8cs.html +++ b/_server_side_modifications_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_server_side_modifications_8cs_source.html b/_server_side_modifications_8cs_source.html index a2c3cdaa43..5cab49dea9 100644 --- a/_server_side_modifications_8cs_source.html +++ b/_server_side_modifications_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_service_2_program_8cs.html b/_service_2_program_8cs.html index 8cc2e415ef..50f5083e3c 100644 --- a/_service_2_program_8cs.html +++ b/_service_2_program_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_service_2_program_8cs_source.html b/_service_2_program_8cs_source.html index dde748e59f..e59900306f 100644 --- a/_service_2_program_8cs_source.html +++ b/_service_2_program_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_service_collection_extensions_8cs.html b/_service_collection_extensions_8cs.html index 4c66670b4e..f20c4768d9 100644 --- a/_service_collection_extensions_8cs.html +++ b/_service_collection_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_service_collection_extensions_8cs_source.html b/_service_collection_extensions_8cs_source.html index 87a68f76c1..5b9067a484 100644 --- a/_service_collection_extensions_8cs_source.html +++ b/_service_collection_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_service_unavailable_exception_8cs.html b/_service_unavailable_exception_8cs.html index 96f191e412..c0b2cc1902 100644 --- a/_service_unavailable_exception_8cs.html +++ b/_service_unavailable_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_service_unavailable_exception_8cs_source.html b/_service_unavailable_exception_8cs_source.html index 3177879da8..9129c3e223 100644 --- a/_service_unavailable_exception_8cs_source.html +++ b/_service_unavailable_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_session_controller_8cs.html b/_session_controller_8cs.html index 87328e962c..cc6f320279 100644 --- a/_session_controller_8cs.html +++ b/_session_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_session_controller_8cs_source.html b/_session_controller_8cs_source.html index 019543bb26..6f9d8aff4d 100644 --- a/_session_controller_8cs_source.html +++ b/_session_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_session_controller_factory_8cs.html b/_session_controller_factory_8cs.html index 379c6dd5ff..d22aec84c9 100644 --- a/_session_controller_factory_8cs.html +++ b/_session_controller_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_session_controller_factory_8cs_source.html b/_session_controller_factory_8cs_source.html index 514c0a2d8b..0cc5884a87 100644 --- a/_session_controller_factory_8cs_source.html +++ b/_session_controller_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_session_persistor_8cs.html b/_session_persistor_8cs.html index 7c0e3b6dd0..bbc5a3190b 100644 --- a/_session_persistor_8cs.html +++ b/_session_persistor_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_session_persistor_8cs_source.html b/_session_persistor_8cs_source.html index 008cfd7142..d363f5fb97 100644 --- a/_session_persistor_8cs_source.html +++ b/_session_persistor_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
SessionPersistor.cs
-Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using System;
4 using System.Linq;
5 using System.Threading;
6 using System.Threading.Tasks;
10 using Z.EntityFramework.Plus;
11 
12 namespace Tgstation.Server.Host.Components.Session
13 {
16  {
21 
26 
31 
35  readonly ILogger<SessionPersistor> logger;
36 
40  readonly Api.Models.Instance metadata;
41 
51  IDatabaseContextFactory databaseContextFactory,
52  IDmbFactory dmbFactory,
53  IProcessExecutor processExecutor,
54  ILogger<SessionPersistor> logger,
55  Api.Models.Instance metadata)
56  {
57  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
58  this.dmbFactory = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
59  this.processExecutor = processExecutor ?? throw new ArgumentNullException(nameof(processExecutor));
60  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
61  this.metadata = metadata ?? throw new ArgumentNullException(nameof(metadata));
62  }
63 
65  public Task Save(ReattachInformation reattachInformation, CancellationToken cancellationToken) => databaseContextFactory.UseContext(async (db) =>
66  {
67  if (reattachInformation == null)
68  throw new ArgumentNullException(nameof(reattachInformation));
69 
70  logger.LogDebug("Saving reattach information: {0}...", reattachInformation);
71 
72  await db
73  .ReattachInformations
74  .AsQueryable()
75  .Where(x => x.CompileJob.Job.Instance.Id == metadata.Id)
76  .DeleteAsync(cancellationToken)
77  .ConfigureAwait(false);
78 
79  var dbReattachInfo = new Models.ReattachInformation
80  {
81  AccessIdentifier = reattachInformation.AccessIdentifier,
82  CompileJobId = reattachInformation.Dmb.CompileJob.Id,
83  Port = reattachInformation.Port,
84  ProcessId = reattachInformation.ProcessId,
85  RebootState = reattachInformation.RebootState,
86  LaunchSecurityLevel = reattachInformation.LaunchSecurityLevel
87  };
88 
89  db.ReattachInformations.Add(dbReattachInfo);
90  await db.Save(cancellationToken).ConfigureAwait(false);
91  });
92 
94  public async Task<ReattachInformation> Load(CancellationToken cancellationToken)
95  {
96  Models.ReattachInformation result = null;
97  TimeSpan? topicTimeout = null;
98  await databaseContextFactory.UseContext(async (db) =>
99  {
100  var dbReattachInfos = await db
101  .ReattachInformations
102  .AsQueryable()
103  .Where(x => x.CompileJob.Job.Instance.Id == metadata.Id)
104  .Include(x => x.CompileJob)
105  .ToListAsync(cancellationToken).ConfigureAwait(false);
106  result = dbReattachInfos.FirstOrDefault();
107  if (result == default)
108  return;
109 
110  var timeoutMilliseconds = await db
111  .Instances
112  .AsQueryable()
113  .Where(x => x.Id == metadata.Id)
114  .Select(x => x.DreamDaemonSettings.TopicRequestTimeout)
115  .FirstOrDefaultAsync(cancellationToken)
116  .ConfigureAwait(false);
117 
118  if (timeoutMilliseconds == default)
119  {
120  logger.LogCritical("Missing TopicRequestTimeout!");
121  return;
122  }
123 
124  topicTimeout = TimeSpan.FromMilliseconds(timeoutMilliseconds.Value);
125 
126  bool first = true;
127  foreach (var reattachInfo in dbReattachInfos)
128  {
129  if (!first)
130  {
131  logger.LogWarning("Killing PID {0} associated with extra reattach information...", reattachInfo.ProcessId);
132  try
133  {
134  using var process = processExecutor.GetProcess(reattachInfo.ProcessId);
135  process.Terminate();
136  }
137  catch (Exception ex)
138  {
139  logger.LogWarning("Failed to kill process! Exception: {0}", ex);
140  }
141  }
142 
143  db.ReattachInformations.Remove(reattachInfo);
144  first = false;
145  }
146 
147  await db.Save(cancellationToken).ConfigureAwait(false);
148  }).ConfigureAwait(false);
149 
150  if (!topicTimeout.HasValue)
151  {
152  logger.LogDebug("Reattach information not found!");
153  return null;
154  }
155 
156  var info = new ReattachInformation(
157  result,
158  await dmbFactory.FromCompileJob(result.CompileJob, cancellationToken).ConfigureAwait(false),
159  topicTimeout.Value);
160 
161  logger.LogDebug("Reattach information loaded: {0}", info);
162 
163  return info;
164  }
165  }
166 }
readonly Api.Models.Instance metadata
The Api.Models.Instance for the SessionPersistor
+Go to the documentation of this file.
1 using Microsoft.EntityFrameworkCore;
2 using Microsoft.Extensions.Logging;
3 using System;
4 using System.Linq;
5 using System.Threading;
6 using System.Threading.Tasks;
10 using Z.EntityFramework.Plus;
11 
12 namespace Tgstation.Server.Host.Components.Session
13 {
16  {
21 
26 
31 
35  readonly ILogger<SessionPersistor> logger;
36 
40  readonly Api.Models.Instance metadata;
41 
51  IDatabaseContextFactory databaseContextFactory,
52  IDmbFactory dmbFactory,
53  IProcessExecutor processExecutor,
54  ILogger<SessionPersistor> logger,
55  Api.Models.Instance metadata)
56  {
57  this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
58  this.dmbFactory = dmbFactory ?? throw new ArgumentNullException(nameof(dmbFactory));
59  this.processExecutor = processExecutor ?? throw new ArgumentNullException(nameof(processExecutor));
60  this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
61  this.metadata = metadata ?? throw new ArgumentNullException(nameof(metadata));
62  }
63 
65  public Task Save(ReattachInformation reattachInformation, CancellationToken cancellationToken) => databaseContextFactory.UseContext(async (db) =>
66  {
67  if (reattachInformation == null)
68  throw new ArgumentNullException(nameof(reattachInformation));
69 
70  logger.LogDebug("Saving reattach information: {0}...", reattachInformation);
71 
72  await db
73  .ReattachInformations
74  .AsQueryable()
75  .Where(x => x.CompileJob.Job.Instance.Id == metadata.Id)
76  .DeleteAsync(cancellationToken)
77  .ConfigureAwait(false);
78 
79  var dbReattachInfo = new Models.ReattachInformation
80  {
81  AccessIdentifier = reattachInformation.AccessIdentifier,
82  CompileJobId = reattachInformation.Dmb.CompileJob.Id,
83  Port = reattachInformation.Port,
84  ProcessId = reattachInformation.ProcessId,
85  RebootState = reattachInformation.RebootState,
86  LaunchSecurityLevel = reattachInformation.LaunchSecurityLevel
87  };
88 
89  db.ReattachInformations.Add(dbReattachInfo);
90  await db.Save(cancellationToken).ConfigureAwait(false);
91  });
92 
94  public async Task<ReattachInformation> Load(CancellationToken cancellationToken)
95  {
96  Models.ReattachInformation result = null;
97  TimeSpan? topicTimeout = null;
98  await databaseContextFactory.UseContext(async (db) =>
99  {
100  var dbReattachInfos = await db
101  .ReattachInformations
102  .AsQueryable()
103  .Where(x => x.CompileJob.Job.Instance.Id == metadata.Id)
104  .Include(x => x.CompileJob)
105  .ToListAsync(cancellationToken).ConfigureAwait(false);
106  result = dbReattachInfos.FirstOrDefault();
107  if (result == default)
108  return;
109 
110  var timeoutMilliseconds = await db
111  .Instances
112  .AsQueryable()
113  .Where(x => x.Id == metadata.Id)
114  .Select(x => x.DreamDaemonSettings.TopicRequestTimeout)
115  .FirstOrDefaultAsync(cancellationToken)
116  .ConfigureAwait(false);
117 
118  if (timeoutMilliseconds == default)
119  {
120  logger.LogCritical("Missing TopicRequestTimeout!");
121  return;
122  }
123 
124  topicTimeout = TimeSpan.FromMilliseconds(timeoutMilliseconds.Value);
125 
126  bool first = true;
127  foreach (var reattachInfo in dbReattachInfos)
128  {
129  if (!first)
130  {
131  logger.LogWarning("Killing PID {0} associated with extra reattach information...", reattachInfo.ProcessId);
132  try
133  {
134  using var process = processExecutor.GetProcess(reattachInfo.ProcessId);
135  process.Terminate();
136  }
137  catch (Exception ex)
138  {
139  logger.LogWarning("Failed to kill process! Exception: {0}", ex);
140  }
141  }
142 
143  db.ReattachInformations.Remove(reattachInfo);
144  first = false;
145  }
146 
147  await db.Save(cancellationToken).ConfigureAwait(false);
148  }).ConfigureAwait(false);
149 
150  if (!topicTimeout.HasValue)
151  {
152  logger.LogDebug("Reattach information not found!");
153  return null;
154  }
155 
156  var dmb = await dmbFactory.FromCompileJob(result.CompileJob, cancellationToken).ConfigureAwait(false);
157  if (dmb == null)
158  {
159  logger.LogError("Unable to reattach! Could not load .dmb!");
160  return null;
161  }
162 
163  var info = new ReattachInformation(
164  result,
165  dmb,
166  topicTimeout.Value);
167 
168  logger.LogDebug("Reattach information loaded: {0}", info);
169 
170  return info;
171  }
172  }
173 }
readonly Api.Models.Instance metadata
The Api.Models.Instance for the SessionPersistor
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:24
Handles saving and loading ReattachInformation.
async Task< ReattachInformation > Load(CancellationToken cancellationToken)
Load a saved ReattachInformation.
diff --git a/_setup_application_8cs.html b/_setup_application_8cs.html index 3029a1ee7d..0235763d6b 100644 --- a/_setup_application_8cs.html +++ b/_setup_application_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_setup_application_8cs_source.html b/_setup_application_8cs_source.html index de15e150f5..f5709c8a5b 100644 --- a/_setup_application_8cs_source.html +++ b/_setup_application_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_setup_wizard_8cs.html b/_setup_wizard_8cs.html index bb69a38c7d..1013d0003a 100644 --- a/_setup_wizard_8cs.html +++ b/_setup_wizard_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_setup_wizard_8cs_source.html b/_setup_wizard_8cs_source.html index 122978677f..f6395cb202 100644 --- a/_setup_wizard_8cs_source.html +++ b/_setup_wizard_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_setup_wizard_mode_8cs.html b/_setup_wizard_mode_8cs.html index 2d8002032c..4657257f3d 100644 --- a/_setup_wizard_mode_8cs.html +++ b/_setup_wizard_mode_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_setup_wizard_mode_8cs_source.html b/_setup_wizard_mode_8cs_source.html index f3c5058c65..e615d39f4f 100644 --- a/_setup_wizard_mode_8cs_source.html +++ b/_setup_wizard_mode_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sql_server_database_context_8cs.html b/_sql_server_database_context_8cs.html index 9a287f4081..e0cff9d5c8 100644 --- a/_sql_server_database_context_8cs.html +++ b/_sql_server_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sql_server_database_context_8cs_source.html b/_sql_server_database_context_8cs_source.html index 4d87bbd481..afe2f7b0e2 100644 --- a/_sql_server_database_context_8cs_source.html +++ b/_sql_server_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sql_server_database_context_model_snapshot_8cs.html b/_sql_server_database_context_model_snapshot_8cs.html index f38c61f623..155df15366 100644 --- a/_sql_server_database_context_model_snapshot_8cs.html +++ b/_sql_server_database_context_model_snapshot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sql_server_database_context_model_snapshot_8cs_source.html b/_sql_server_database_context_model_snapshot_8cs_source.html index 6bde578af9..816f144dfe 100644 --- a/_sql_server_database_context_model_snapshot_8cs_source.html +++ b/_sql_server_database_context_model_snapshot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sql_server_design_time_db_context_factory_8cs.html b/_sql_server_design_time_db_context_factory_8cs.html index c3b2528540..cb18b093ab 100644 --- a/_sql_server_design_time_db_context_factory_8cs.html +++ b/_sql_server_design_time_db_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sql_server_design_time_db_context_factory_8cs_source.html b/_sql_server_design_time_db_context_factory_8cs_source.html index e546f22eb0..051fa09828 100644 --- a/_sql_server_design_time_db_context_factory_8cs_source.html +++ b/_sql_server_design_time_db_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sqlite_database_context_8cs.html b/_sqlite_database_context_8cs.html index 5143b4625f..c2ff6986a2 100644 --- a/_sqlite_database_context_8cs.html +++ b/_sqlite_database_context_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sqlite_database_context_8cs_source.html b/_sqlite_database_context_8cs_source.html index 7a506bf166..d93da9c275 100644 --- a/_sqlite_database_context_8cs_source.html +++ b/_sqlite_database_context_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sqlite_database_context_model_snapshot_8cs.html b/_sqlite_database_context_model_snapshot_8cs.html index ee49c41782..2aa5c545a3 100644 --- a/_sqlite_database_context_model_snapshot_8cs.html +++ b/_sqlite_database_context_model_snapshot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sqlite_database_context_model_snapshot_8cs_source.html b/_sqlite_database_context_model_snapshot_8cs_source.html index c910848686..7371cf9a41 100644 --- a/_sqlite_database_context_model_snapshot_8cs_source.html +++ b/_sqlite_database_context_model_snapshot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sqlite_design_time_db_context_factory_8cs.html b/_sqlite_design_time_db_context_factory_8cs.html index a9b6c4c861..7143b55651 100644 --- a/_sqlite_design_time_db_context_factory_8cs.html +++ b/_sqlite_design_time_db_context_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_sqlite_design_time_db_context_factory_8cs_source.html b/_sqlite_design_time_db_context_factory_8cs_source.html index 5602f8956a..1abab47418 100644 --- a/_sqlite_design_time_db_context_factory_8cs_source.html +++ b/_sqlite_design_time_db_context_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_swagger_configuration_8cs.html b/_swagger_configuration_8cs.html index 0bfcd33fe4..3ca0e78461 100644 --- a/_swagger_configuration_8cs.html +++ b/_swagger_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_swagger_configuration_8cs_source.html b/_swagger_configuration_8cs_source.html index f6f4f2a005..9470ede424 100644 --- a/_swagger_configuration_8cs_source.html +++ b/_swagger_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_swappable_dmb_provider_8cs.html b/_swappable_dmb_provider_8cs.html index 3ee7e785f1..d69703ba9e 100644 --- a/_swappable_dmb_provider_8cs.html +++ b/_swappable_dmb_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_swappable_dmb_provider_8cs_source.html b/_swappable_dmb_provider_8cs_source.html index 7f8f2f72ea..003239f2eb 100644 --- a/_swappable_dmb_provider_8cs_source.html +++ b/_swappable_dmb_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_synchronous_i_o_manager_8cs.html b/_synchronous_i_o_manager_8cs.html index 2921058000..649e867b9f 100644 --- a/_synchronous_i_o_manager_8cs.html +++ b/_synchronous_i_o_manager_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_synchronous_i_o_manager_8cs_source.html b/_synchronous_i_o_manager_8cs_source.html index 346160b72d..394f91f734 100644 --- a/_synchronous_i_o_manager_8cs_source.html +++ b/_synchronous_i_o_manager_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_task_extensions_8cs.html b/_task_extensions_8cs.html index 7822145cb1..d73e399a39 100644 --- a/_task_extensions_8cs.html +++ b/_task_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_task_extensions_8cs_source.html b/_task_extensions_8cs_source.html index 239c31fdb2..26b2edf84e 100644 --- a/_task_extensions_8cs_source.html +++ b/_task_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_temporary_dmb_provider_8cs.html b/_temporary_dmb_provider_8cs.html index aaf2a02f02..0fcc488e6d 100644 --- a/_temporary_dmb_provider_8cs.html +++ b/_temporary_dmb_provider_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_temporary_dmb_provider_8cs_source.html b/_temporary_dmb_provider_8cs_source.html index e06c99debf..aee7a17df7 100644 --- a/_temporary_dmb_provider_8cs_source.html +++ b/_temporary_dmb_provider_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_test_merge_base_8cs.html b/_test_merge_base_8cs.html index 5146bb6f67..d156f2d57f 100644 --- a/_test_merge_base_8cs.html +++ b/_test_merge_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_test_merge_base_8cs_source.html b/_test_merge_base_8cs_source.html index a86135d315..d8ae84fe3b 100644 --- a/_test_merge_base_8cs_source.html +++ b/_test_merge_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_test_merge_information_8cs.html b/_test_merge_information_8cs.html index 08973b8efc..c301feb45a 100644 --- a/_test_merge_information_8cs.html +++ b/_test_merge_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_test_merge_information_8cs_source.html b/_test_merge_information_8cs_source.html index b4de582c6c..9ec1926ed6 100644 --- a/_test_merge_information_8cs_source.html +++ b/_test_merge_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_test_merge_parameters_8cs.html b/_test_merge_parameters_8cs.html index 111893fcea..ff0f44ddf9 100644 --- a/_test_merge_parameters_8cs.html +++ b/_test_merge_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_test_merge_parameters_8cs_source.html b/_test_merge_parameters_8cs_source.html index 3226bde434..ca78a2eb3f 100644 --- a/_test_merge_parameters_8cs_source.html +++ b/_test_merge_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgs_authorize_attribute_8cs.html b/_tgs_authorize_attribute_8cs.html index 502a2b8e97..2554095217 100644 --- a/_tgs_authorize_attribute_8cs.html +++ b/_tgs_authorize_attribute_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgs_authorize_attribute_8cs_source.html b/_tgs_authorize_attribute_8cs_source.html index 26ee074029..77aaa86ac5 100644 --- a/_tgs_authorize_attribute_8cs_source.html +++ b/_tgs_authorize_attribute_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_chat_bot_8cs.html b/_tgstation_8_server_8_api_2_models_2_chat_bot_8cs.html index c7d9fcbb6b..603ba02487 100644 --- a/_tgstation_8_server_8_api_2_models_2_chat_bot_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_chat_bot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_chat_bot_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_chat_bot_8cs_source.html index f77e89b8bd..d3a089ce77 100644 --- a/_tgstation_8_server_8_api_2_models_2_chat_bot_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_chat_bot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_chat_channel_8cs.html b/_tgstation_8_server_8_api_2_models_2_chat_channel_8cs.html index 84f79cbd0c..6cd9050959 100644 --- a/_tgstation_8_server_8_api_2_models_2_chat_channel_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_chat_channel_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_chat_channel_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_chat_channel_8cs_source.html index a38426e8ec..7ddf6731f6 100644 --- a/_tgstation_8_server_8_api_2_models_2_chat_channel_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_chat_channel_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_compile_job_8cs.html b/_tgstation_8_server_8_api_2_models_2_compile_job_8cs.html index f3082b271f..b1b7dfa404 100644 --- a/_tgstation_8_server_8_api_2_models_2_compile_job_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_compile_job_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_compile_job_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_compile_job_8cs_source.html index c60eedc518..8c4a943829 100644 --- a/_tgstation_8_server_8_api_2_models_2_compile_job_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_compile_job_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_dream_maker_8cs.html b/_tgstation_8_server_8_api_2_models_2_dream_maker_8cs.html index 1eb3ca90de..c2beaa6147 100644 --- a/_tgstation_8_server_8_api_2_models_2_dream_maker_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_dream_maker_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_dream_maker_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_dream_maker_8cs_source.html index f33f178246..7819908b67 100644 --- a/_tgstation_8_server_8_api_2_models_2_dream_maker_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_dream_maker_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_instance_8cs.html b/_tgstation_8_server_8_api_2_models_2_instance_8cs.html index 095b9ee75b..e32b04ae21 100644 --- a/_tgstation_8_server_8_api_2_models_2_instance_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_instance_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_instance_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_instance_8cs_source.html index e7a1b71b8f..dc6def9732 100644 --- a/_tgstation_8_server_8_api_2_models_2_instance_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_instance_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_instance_user_8cs.html b/_tgstation_8_server_8_api_2_models_2_instance_user_8cs.html index 046de4740b..92316178a2 100644 --- a/_tgstation_8_server_8_api_2_models_2_instance_user_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_instance_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_instance_user_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_instance_user_8cs_source.html index 98d318487f..2f59d9a039 100644 --- a/_tgstation_8_server_8_api_2_models_2_instance_user_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_instance_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_chat_bot_8cs.html b/_tgstation_8_server_8_api_2_models_2_internal_2_chat_bot_8cs.html index ef3ac13359..66d5f3cc0b 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_chat_bot_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_chat_bot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_chat_bot_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_internal_2_chat_bot_8cs_source.html index 93b9b9382e..9b679a0353 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_chat_bot_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_chat_bot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs.html b/_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs.html index 52a7121928..6015cdd822 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs_source.html index 3de197477d..6731e311c8 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_compile_job_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_dream_daemon_settings_8cs.html b/_tgstation_8_server_8_api_2_models_2_internal_2_dream_daemon_settings_8cs.html index 3e7533e026..5914f290fa 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_dream_daemon_settings_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_dream_daemon_settings_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_dream_daemon_settings_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_internal_2_dream_daemon_settings_8cs_source.html index 26f014ec70..fafce6a109 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_dream_daemon_settings_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_dream_daemon_settings_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_job_8cs.html b/_tgstation_8_server_8_api_2_models_2_internal_2_job_8cs.html index 112c503f8a..8ede157298 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_job_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_job_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_job_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_internal_2_job_8cs_source.html index f8fc87d427..d7a8464bc2 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_job_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_job_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_repository_settings_8cs.html b/_tgstation_8_server_8_api_2_models_2_internal_2_repository_settings_8cs.html index 2dda6cdee8..16bbae04df 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_repository_settings_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_repository_settings_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_repository_settings_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_internal_2_repository_settings_8cs_source.html index da1d378c15..eee4b93060 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_repository_settings_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_repository_settings_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_revision_information_8cs.html b/_tgstation_8_server_8_api_2_models_2_internal_2_revision_information_8cs.html index 56bbf638f9..43cdbe7044 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_revision_information_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_revision_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_revision_information_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_internal_2_revision_information_8cs_source.html index 43a4af9cce..d07eb9f38c 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_revision_information_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_revision_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_test_merge_8cs.html b/_tgstation_8_server_8_api_2_models_2_internal_2_test_merge_8cs.html index 5c5c3089ca..81bb298fbd 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_test_merge_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_test_merge_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_test_merge_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_internal_2_test_merge_8cs_source.html index f405be4beb..90ef2c32d5 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_test_merge_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_test_merge_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs.html b/_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs.html index 7e815c4345..6381de3188 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs_source.html index 20459a2284..4eb62e71ed 100644 --- a/_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_internal_2_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_job_8cs.html b/_tgstation_8_server_8_api_2_models_2_job_8cs.html index ec05d5b35e..d0bdfaa4f6 100644 --- a/_tgstation_8_server_8_api_2_models_2_job_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_job_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_job_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_job_8cs_source.html index 78a8d87c32..4bab999db3 100644 --- a/_tgstation_8_server_8_api_2_models_2_job_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_job_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_repository_8cs.html b/_tgstation_8_server_8_api_2_models_2_repository_8cs.html index 78b9a87d77..dbe09d07e5 100644 --- a/_tgstation_8_server_8_api_2_models_2_repository_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_repository_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_repository_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_repository_8cs_source.html index 094af81600..4cd72be161 100644 --- a/_tgstation_8_server_8_api_2_models_2_repository_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_repository_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_revision_information_8cs.html b/_tgstation_8_server_8_api_2_models_2_revision_information_8cs.html index b0bf287bc6..a41cff6d33 100644 --- a/_tgstation_8_server_8_api_2_models_2_revision_information_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_revision_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_revision_information_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_revision_information_8cs_source.html index 53c6d041ab..7be8e93fe8 100644 --- a/_tgstation_8_server_8_api_2_models_2_revision_information_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_revision_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_test_merge_8cs.html b/_tgstation_8_server_8_api_2_models_2_test_merge_8cs.html index 1b6d120da9..b9796d3635 100644 --- a/_tgstation_8_server_8_api_2_models_2_test_merge_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_test_merge_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_test_merge_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_test_merge_8cs_source.html index fd7b99c236..ffba3657d9 100644 --- a/_tgstation_8_server_8_api_2_models_2_test_merge_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_test_merge_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_user_8cs.html b/_tgstation_8_server_8_api_2_models_2_user_8cs.html index 0f032c4916..af7d83e127 100644 --- a/_tgstation_8_server_8_api_2_models_2_user_8cs.html +++ b/_tgstation_8_server_8_api_2_models_2_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_api_2_models_2_user_8cs_source.html b/_tgstation_8_server_8_api_2_models_2_user_8cs_source.html index 988fd12788..3904414657 100644 --- a/_tgstation_8_server_8_api_2_models_2_user_8cs_source.html +++ b/_tgstation_8_server_8_api_2_models_2_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_client_2_assembly_info_8cs.html b/_tgstation_8_server_8_client_2_assembly_info_8cs.html index f8312ae1dc..7d1138047a 100644 --- a/_tgstation_8_server_8_client_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_client_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_client_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_client_2_assembly_info_8cs_source.html index 77e8858359..135d3a8049 100644 --- a/_tgstation_8_server_8_client_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_client_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_components_2_deployment_2_dream_maker_8cs.html b/_tgstation_8_server_8_host_2_components_2_deployment_2_dream_maker_8cs.html index 1a9c361bd8..7d61e3b5ef 100644 --- a/_tgstation_8_server_8_host_2_components_2_deployment_2_dream_maker_8cs.html +++ b/_tgstation_8_server_8_host_2_components_2_deployment_2_dream_maker_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_components_2_deployment_2_dream_maker_8cs_source.html b/_tgstation_8_server_8_host_2_components_2_deployment_2_dream_maker_8cs_source.html index f44de5015f..b3a5ec0710 100644 --- a/_tgstation_8_server_8_host_2_components_2_deployment_2_dream_maker_8cs_source.html +++ b/_tgstation_8_server_8_host_2_components_2_deployment_2_dream_maker_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_components_2_instance_8cs.html b/_tgstation_8_server_8_host_2_components_2_instance_8cs.html index 94e2ee93bb..b409cb3a38 100644 --- a/_tgstation_8_server_8_host_2_components_2_instance_8cs.html +++ b/_tgstation_8_server_8_host_2_components_2_instance_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_components_2_instance_8cs_source.html b/_tgstation_8_server_8_host_2_components_2_instance_8cs_source.html index 735ef6e0c3..ed9badce30 100644 --- a/_tgstation_8_server_8_host_2_components_2_instance_8cs_source.html +++ b/_tgstation_8_server_8_host_2_components_2_instance_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs.html b/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs.html index fd0570d24d..638c8b7984 100644 --- a/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs.html +++ b/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs_source.html b/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs_source.html index cc317dfcd3..3f14f48186 100644 --- a/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs_source.html +++ b/_tgstation_8_server_8_host_2_components_2_repository_2_repository_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs.html b/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs.html index 4734962745..238062c99e 100644 --- a/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs_source.html index 9e0f240535..bff634aadc 100644 --- a/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_chat_bot_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs.html b/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs.html index e075ae601b..b0be193dae 100644 --- a/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs_source.html index 7de165e7b1..b837ef5fe8 100644 --- a/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_chat_channel_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_compile_job_8cs.html b/_tgstation_8_server_8_host_2_models_2_compile_job_8cs.html index da923f9dd2..3801f0c3c1 100644 --- a/_tgstation_8_server_8_host_2_models_2_compile_job_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_compile_job_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_compile_job_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_compile_job_8cs_source.html index 6f6fc466fc..33bc2c9c60 100644 --- a/_tgstation_8_server_8_host_2_models_2_compile_job_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_compile_job_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs.html b/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs.html index ea4b473c2f..cd8765dae0 100644 --- a/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs_source.html index 3d4fc35162..0e467b3608 100644 --- a/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_dream_daemon_settings_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_instance_8cs.html b/_tgstation_8_server_8_host_2_models_2_instance_8cs.html index af964df48b..f7b27365d8 100644 --- a/_tgstation_8_server_8_host_2_models_2_instance_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_instance_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_instance_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_instance_8cs_source.html index 9942a4c1a7..11e9a48b12 100644 --- a/_tgstation_8_server_8_host_2_models_2_instance_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_instance_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_instance_user_8cs.html b/_tgstation_8_server_8_host_2_models_2_instance_user_8cs.html index a1b3647660..1aedf3c803 100644 --- a/_tgstation_8_server_8_host_2_models_2_instance_user_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_instance_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_instance_user_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_instance_user_8cs_source.html index 9773be8ea2..8781e3d953 100644 --- a/_tgstation_8_server_8_host_2_models_2_instance_user_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_instance_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_job_8cs.html b/_tgstation_8_server_8_host_2_models_2_job_8cs.html index 8a7fecb997..f72f61aa3a 100644 --- a/_tgstation_8_server_8_host_2_models_2_job_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_job_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_job_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_job_8cs_source.html index 85273396e2..e3d0977c64 100644 --- a/_tgstation_8_server_8_host_2_models_2_job_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_job_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs.html b/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs.html index 64ea748897..13998ba82b 100644 --- a/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs_source.html index a0cabadee9..8b022503ae 100644 --- a/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_repository_settings_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_revision_information_8cs.html b/_tgstation_8_server_8_host_2_models_2_revision_information_8cs.html index a68432d3d9..cce78bfa50 100644 --- a/_tgstation_8_server_8_host_2_models_2_revision_information_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_revision_information_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_revision_information_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_revision_information_8cs_source.html index d093f42f77..bf91d1d606 100644 --- a/_tgstation_8_server_8_host_2_models_2_revision_information_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_revision_information_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_test_merge_8cs.html b/_tgstation_8_server_8_host_2_models_2_test_merge_8cs.html index 842420a91a..2543a351b3 100644 --- a/_tgstation_8_server_8_host_2_models_2_test_merge_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_test_merge_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_test_merge_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_test_merge_8cs_source.html index 0eee213c85..0b990faf1b 100644 --- a/_tgstation_8_server_8_host_2_models_2_test_merge_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_test_merge_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_user_8cs.html b/_tgstation_8_server_8_host_2_models_2_user_8cs.html index bf552a818d..16d4f14233 100644 --- a/_tgstation_8_server_8_host_2_models_2_user_8cs.html +++ b/_tgstation_8_server_8_host_2_models_2_user_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_models_2_user_8cs_source.html b/_tgstation_8_server_8_host_2_models_2_user_8cs_source.html index da906674dd..8f9d7906b5 100644 --- a/_tgstation_8_server_8_host_2_models_2_user_8cs_source.html +++ b/_tgstation_8_server_8_host_2_models_2_user_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs.html b/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs.html index ab73dacdf0..adfbeaadcf 100644 --- a/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs_source.html index 39e91b4999..2a756c0f14 100644 --- a/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_host_2_properties_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs.html b/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs.html index a6521673f0..6bc29e5042 100644 --- a/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs_source.html index b9b13ae7ce..e4404f7541 100644 --- a/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_host_8_console_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs.html b/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs.html index 82595c942a..c7dba623eb 100644 --- a/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs_source.html index 5c1b519a6e..b2fd3c7f3a 100644 --- a/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_host_8_service_2_properties_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs.html b/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs.html index 018308a453..45cfeb97ca 100644 --- a/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs.html +++ b/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs_source.html b/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs_source.html index a45d642bcc..abb5b96896 100644 --- a/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs_source.html +++ b/_tgstation_8_server_8_host_8_watchdog_2_assembly_info_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_token_8cs.html b/_token_8cs.html index ceab9f6029..3f091b45bf 100644 --- a/_token_8cs.html +++ b/_token_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_token_8cs_source.html b/_token_8cs_source.html index c3affda6b5..405cdb20c1 100644 --- a/_token_8cs_source.html +++ b/_token_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_token_factory_8cs.html b/_token_factory_8cs.html index 35c70987ed..d972a93f8f 100644 --- a/_token_factory_8cs.html +++ b/_token_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_token_factory_8cs_source.html b/_token_factory_8cs_source.html index 78d04ab7b8..d20fbbe325 100644 --- a/_token_factory_8cs_source.html +++ b/_token_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_topic_client_factory_8cs.html b/_topic_client_factory_8cs.html index ce4bff6b33..961e233938 100644 --- a/_topic_client_factory_8cs.html +++ b/_topic_client_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_topic_client_factory_8cs_source.html b/_topic_client_factory_8cs_source.html index 6054aff50c..02fe05d782 100644 --- a/_topic_client_factory_8cs_source.html +++ b/_topic_client_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_topic_command_type_8cs.html b/_topic_command_type_8cs.html index eeb69c451f..93395dc17c 100644 --- a/_topic_command_type_8cs.html +++ b/_topic_command_type_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_topic_command_type_8cs_source.html b/_topic_command_type_8cs_source.html index 0c35be0076..68094be698 100644 --- a/_topic_command_type_8cs_source.html +++ b/_topic_command_type_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_topic_parameters_8cs.html b/_topic_parameters_8cs.html index fe72491ab7..97f9b79d9f 100644 --- a/_topic_parameters_8cs.html +++ b/_topic_parameters_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_topic_parameters_8cs_source.html b/_topic_parameters_8cs_source.html index 7ef468d4d2..82e4c0233a 100644 --- a/_topic_parameters_8cs_source.html +++ b/_topic_parameters_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_topic_response_8cs.html b/_topic_response_8cs.html index cc8667217a..5943d456be 100644 --- a/_topic_response_8cs.html +++ b/_topic_response_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_topic_response_8cs_source.html b/_topic_response_8cs_source.html index 4b1ba787d1..9c224d5ed9 100644 --- a/_topic_response_8cs_source.html +++ b/_topic_response_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_unauthorized_exception_8cs.html b/_unauthorized_exception_8cs.html index 54f59847d2..3cee051ff2 100644 --- a/_unauthorized_exception_8cs.html +++ b/_unauthorized_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_unauthorized_exception_8cs_source.html b/_unauthorized_exception_8cs_source.html index 88c7dea835..5521f4eef3 100644 --- a/_unauthorized_exception_8cs_source.html +++ b/_unauthorized_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_unrecognized_response_exception_8cs.html b/_unrecognized_response_exception_8cs.html index a99929b1d2..18b6f51902 100644 --- a/_unrecognized_response_exception_8cs.html +++ b/_unrecognized_response_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_unrecognized_response_exception_8cs_source.html b/_unrecognized_response_exception_8cs_source.html index 031c700c80..b9f596c087 100644 --- a/_unrecognized_response_exception_8cs_source.html +++ b/_unrecognized_response_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_updates_configuration_8cs.html b/_updates_configuration_8cs.html index 7058b1aab1..f7b9936f77 100644 --- a/_updates_configuration_8cs.html +++ b/_updates_configuration_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_updates_configuration_8cs_source.html b/_updates_configuration_8cs_source.html index 1243592f4c..383b1305a6 100644 --- a/_updates_configuration_8cs_source.html +++ b/_updates_configuration_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_user_controller_8cs.html b/_user_controller_8cs.html index 8418636c6b..eefc241245 100644 --- a/_user_controller_8cs.html +++ b/_user_controller_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_user_controller_8cs_source.html b/_user_controller_8cs_source.html index 3e7c0fa142..26759ba9d6 100644 --- a/_user_controller_8cs_source.html +++ b/_user_controller_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_user_update_8cs.html b/_user_update_8cs.html index 8489dde44e..553d7d4537 100644 --- a/_user_update_8cs.html +++ b/_user_update_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_user_update_8cs_source.html b/_user_update_8cs_source.html index 5eecacef58..b2bdfa3350 100644 --- a/_user_update_8cs_source.html +++ b/_user_update_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_users_client_8cs.html b/_users_client_8cs.html index 66507e3b66..674eed82c6 100644 --- a/_users_client_8cs.html +++ b/_users_client_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_users_client_8cs_source.html b/_users_client_8cs_source.html index 64352e8a2d..8ce8ca830b 100644 --- a/_users_client_8cs_source.html +++ b/_users_client_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_version_command_8cs.html b/_version_command_8cs.html index b44603e1be..56991ce48e 100644 --- a/_version_command_8cs.html +++ b/_version_command_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_version_command_8cs_source.html b/_version_command_8cs_source.html index a4d2da8a78..50ccc9d998 100644 --- a/_version_command_8cs_source.html +++ b/_version_command_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_version_converter_8cs.html b/_version_converter_8cs.html index f869c611da..7422f75d2e 100644 --- a/_version_converter_8cs.html +++ b/_version_converter_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_version_converter_8cs_source.html b/_version_converter_8cs_source.html index ad06693a5f..1df74a4441 100644 --- a/_version_converter_8cs_source.html +++ b/_version_converter_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_version_extensions_8cs.html b/_version_extensions_8cs.html index 5dc05daf55..6b540e32f9 100644 --- a/_version_extensions_8cs.html +++ b/_version_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_version_extensions_8cs_source.html b/_version_extensions_8cs_source.html index 4f4cd99479..ff4f8d46ba 100644 --- a/_version_extensions_8cs_source.html +++ b/_version_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_version_mismatch_exception_8cs.html b/_version_mismatch_exception_8cs.html index 589b08b12c..fa11d0ea6e 100644 --- a/_version_mismatch_exception_8cs.html +++ b/_version_mismatch_exception_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_version_mismatch_exception_8cs_source.html b/_version_mismatch_exception_8cs_source.html index fa504ecc49..117189fade 100644 --- a/_version_mismatch_exception_8cs_source.html +++ b/_version_mismatch_exception_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_i_watchdog_8cs.html b/_watchdog_2_i_watchdog_8cs.html index af0acc8bd0..1520bf4764 100644 --- a/_watchdog_2_i_watchdog_8cs.html +++ b/_watchdog_2_i_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_i_watchdog_8cs_source.html b/_watchdog_2_i_watchdog_8cs_source.html index d3f3a40e46..57a1b497ab 100644 --- a/_watchdog_2_i_watchdog_8cs_source.html +++ b/_watchdog_2_i_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_i_watchdog_factory_8cs.html b/_watchdog_2_i_watchdog_factory_8cs.html index 00a52009cd..cea9b7dfe7 100644 --- a/_watchdog_2_i_watchdog_factory_8cs.html +++ b/_watchdog_2_i_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_i_watchdog_factory_8cs_source.html b/_watchdog_2_i_watchdog_factory_8cs_source.html index 920b098291..1dd1c5e3c7 100644 --- a/_watchdog_2_i_watchdog_factory_8cs_source.html +++ b/_watchdog_2_i_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_watchdog_factory_8cs.html b/_watchdog_2_watchdog_factory_8cs.html index 0c481148ba..73d162a59e 100644 --- a/_watchdog_2_watchdog_factory_8cs.html +++ b/_watchdog_2_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_2_watchdog_factory_8cs_source.html b/_watchdog_2_watchdog_factory_8cs_source.html index a8fa5eb8a7..006ac2eea5 100644 --- a/_watchdog_2_watchdog_factory_8cs_source.html +++ b/_watchdog_2_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_8cs.html b/_watchdog_8cs.html index 565707e7e4..0454ea22cf 100644 --- a/_watchdog_8cs.html +++ b/_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_8cs_source.html b/_watchdog_8cs_source.html index 5f7a1831a9..6b8d576bfd 100644 --- a/_watchdog_8cs_source.html +++ b/_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_base_8cs.html b/_watchdog_base_8cs.html index 079ed99c1d..123f27f61f 100644 --- a/_watchdog_base_8cs.html +++ b/_watchdog_base_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_base_8cs_source.html b/_watchdog_base_8cs_source.html index e0b2f5bde0..aaa47f79fe 100644 --- a/_watchdog_base_8cs_source.html +++ b/_watchdog_base_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_status_8cs.html b/_watchdog_status_8cs.html index 1af67bd7d4..7c25263149 100644 --- a/_watchdog_status_8cs.html +++ b/_watchdog_status_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_watchdog_status_8cs_source.html b/_watchdog_status_8cs_source.html index c41e3233d0..d89ca5e23e 100644 --- a/_watchdog_status_8cs_source.html +++ b/_watchdog_status_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_web_host_builder_extensions_8cs.html b/_web_host_builder_extensions_8cs.html index 9e854286e4..c27d00c0d6 100644 --- a/_web_host_builder_extensions_8cs.html +++ b/_web_host_builder_extensions_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_web_host_builder_extensions_8cs_source.html b/_web_host_builder_extensions_8cs_source.html index 9a4badbc2f..fec072db8c 100644 --- a/_web_host_builder_extensions_8cs_source.html +++ b/_web_host_builder_extensions_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_byond_installer_8cs.html b/_windows_byond_installer_8cs.html index db55d1402a..1fade2b4c3 100644 --- a/_windows_byond_installer_8cs.html +++ b/_windows_byond_installer_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_byond_installer_8cs_source.html b/_windows_byond_installer_8cs_source.html index 1d9fea9812..f404161edd 100644 --- a/_windows_byond_installer_8cs_source.html +++ b/_windows_byond_installer_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_network_prompt_reaper_8cs.html b/_windows_network_prompt_reaper_8cs.html index f163b46a22..f9532c86c3 100644 --- a/_windows_network_prompt_reaper_8cs.html +++ b/_windows_network_prompt_reaper_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_network_prompt_reaper_8cs_source.html b/_windows_network_prompt_reaper_8cs_source.html index 183c27666b..a9c94678d8 100644 --- a/_windows_network_prompt_reaper_8cs_source.html +++ b/_windows_network_prompt_reaper_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_post_write_handler_8cs.html b/_windows_post_write_handler_8cs.html index ca4930904d..4e7025b93a 100644 --- a/_windows_post_write_handler_8cs.html +++ b/_windows_post_write_handler_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_post_write_handler_8cs_source.html b/_windows_post_write_handler_8cs_source.html index e8cf49f43f..08ec963fa4 100644 --- a/_windows_post_write_handler_8cs_source.html +++ b/_windows_post_write_handler_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_process_features_8cs.html b/_windows_process_features_8cs.html index 7315e62cb8..9672a7345c 100644 --- a/_windows_process_features_8cs.html +++ b/_windows_process_features_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_process_features_8cs_source.html b/_windows_process_features_8cs_source.html index db5b779aca..ded4b75c6d 100644 --- a/_windows_process_features_8cs_source.html +++ b/_windows_process_features_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_symlink_factory_8cs.html b/_windows_symlink_factory_8cs.html index 14b42c4f3c..b17907cd66 100644 --- a/_windows_symlink_factory_8cs.html +++ b/_windows_symlink_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_symlink_factory_8cs_source.html b/_windows_symlink_factory_8cs_source.html index d5ffe3d580..02e86c5fd7 100644 --- a/_windows_symlink_factory_8cs_source.html +++ b/_windows_symlink_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_system_identity_8cs.html b/_windows_system_identity_8cs.html index aabd6ab759..d5a3dfa0ab 100644 --- a/_windows_system_identity_8cs.html +++ b/_windows_system_identity_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_system_identity_8cs_source.html b/_windows_system_identity_8cs_source.html index 931e98a5e4..be9543d66a 100644 --- a/_windows_system_identity_8cs_source.html +++ b/_windows_system_identity_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_system_identity_factory_8cs.html b/_windows_system_identity_factory_8cs.html index c9c9b505cf..78bc32a5df 100644 --- a/_windows_system_identity_factory_8cs.html +++ b/_windows_system_identity_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_system_identity_factory_8cs_source.html b/_windows_system_identity_factory_8cs_source.html index 63773b84ea..c14ffc48a1 100644 --- a/_windows_system_identity_factory_8cs_source.html +++ b/_windows_system_identity_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_watchdog_8cs.html b/_windows_watchdog_8cs.html index d11701492a..37e48c756b 100644 --- a/_windows_watchdog_8cs.html +++ b/_windows_watchdog_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_watchdog_8cs_source.html b/_windows_watchdog_8cs_source.html index 4711e6db7b..b867110ad6 100644 --- a/_windows_watchdog_8cs_source.html +++ b/_windows_watchdog_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_watchdog_factory_8cs.html b/_windows_watchdog_factory_8cs.html index a6f77535b5..940bfbf918 100644 --- a/_windows_watchdog_factory_8cs.html +++ b/_windows_watchdog_factory_8cs.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/_windows_watchdog_factory_8cs_source.html b/_windows_watchdog_factory_8cs_source.html index 48a900c4b4..ebb3291233 100644 --- a/_windows_watchdog_factory_8cs_source.html +++ b/_windows_watchdog_factory_8cs_source.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
WindowsWatchdogFactory.cs
-Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using Microsoft.Extensions.Options;
3 using System;
12 using Tgstation.Server.Host.IO;
14 
15 namespace Tgstation.Server.Host.Components.Watchdog
16 {
21  {
25  protected ISymlinkFactory SymlinkFactory { get; }
26 
38  IServerControl serverControl,
39  ILoggerFactory loggerFactory,
40  IDatabaseContextFactory databaseContextFactory,
41  IJobManager jobManager,
42  IAsyncDelayer asyncDelayer,
43  ISymlinkFactory symlinkFactory,
44  IOptions<GeneralConfiguration> generalConfigurationOptions)
45  : base(
46  serverControl,
47  loggerFactory,
48  databaseContextFactory,
49  jobManager,
50  asyncDelayer,
51  generalConfigurationOptions)
52  {
53  SymlinkFactory = symlinkFactory ?? throw new ArgumentNullException(nameof(symlinkFactory));
54  }
55 
57  public override IWatchdog CreateWatchdog(
58  IChatManager chat,
59  IDmbFactory dmbFactory,
60  ISessionPersistor sessionPersistor,
61  ISessionControllerFactory sessionControllerFactory,
62  IIOManager gameIOManager,
63  IIOManager diagnosticsIOManager,
64  IEventConsumer eventConsumer,
65  Api.Models.Instance instance,
66  DreamDaemonSettings settings)
67  => new WindowsWatchdog(
68  chat,
69  sessionControllerFactory,
70  dmbFactory,
71  sessionPersistor,
73  JobManager,
74  ServerControl,
76  diagnosticsIOManager,
77  eventConsumer,
78  gameIOManager,
79  SymlinkFactory,
80  LoggerFactory.CreateLogger<WindowsWatchdog>(),
81  settings,
82  instance,
83  settings.AutoStart.Value);
84  }
85 }
+Go to the documentation of this file.
1 using Microsoft.Extensions.Logging;
2 using Microsoft.Extensions.Options;
3 using System;
12 using Tgstation.Server.Host.IO;
14 
15 namespace Tgstation.Server.Host.Components.Watchdog
16 {
21  {
25  protected ISymlinkFactory SymlinkFactory { get; }
26 
38  IServerControl serverControl,
39  ILoggerFactory loggerFactory,
40  IDatabaseContextFactory databaseContextFactory,
41  IJobManager jobManager,
42  IAsyncDelayer asyncDelayer,
43  ISymlinkFactory symlinkFactory,
44  IOptions<GeneralConfiguration> generalConfigurationOptions)
45  : base(
46  serverControl,
47  loggerFactory,
48  databaseContextFactory,
49  jobManager,
50  asyncDelayer,
51  generalConfigurationOptions)
52  {
53  SymlinkFactory = symlinkFactory ?? throw new ArgumentNullException(nameof(symlinkFactory));
54  }
55 
57  public override IWatchdog CreateWatchdog(
58  IChatManager chat,
59  IDmbFactory dmbFactory,
60  ISessionPersistor sessionPersistor,
61  ISessionControllerFactory sessionControllerFactory,
62  IIOManager gameIOManager,
63  IIOManager diagnosticsIOManager,
64  IEventConsumer eventConsumer,
65  Api.Models.Instance instance,
66  DreamDaemonSettings settings)
67  => new WindowsWatchdog(
68  chat,
69  sessionControllerFactory,
70  dmbFactory,
71  sessionPersistor,
73  JobManager,
74  ServerControl,
76  diagnosticsIOManager,
77  eventConsumer,
78  gameIOManager,
79  SymlinkFactory,
80  LoggerFactory.CreateLogger<WindowsWatchdog>(),
81  settings,
82  instance,
83  settings.AutoStart ?? throw new ArgumentNullException(nameof(settings)));
84  }
85 }
Handles saving and loading ReattachInformation.
WindowsWatchdogFactory(IServerControl serverControl, ILoggerFactory loggerFactory, IDatabaseContextFactory databaseContextFactory, IJobManager jobManager, IAsyncDelayer asyncDelayer, ISymlinkFactory symlinkFactory, IOptions< GeneralConfiguration > generalConfigurationOptions)
Initializes a new instance of the WindowsWatchdogFactory .
diff --git a/annotated.html b/annotated.html index 92b72a677c..70160d1e7a 100644 --- a/annotated.html +++ b/annotated.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/api.html b/api.html index 54a92ab796..90bf651a49 100644 --- a/api.html +++ b/api.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/architecture.html b/architecture.html index eb2df18f31..14bf9cbb33 100644 --- a/architecture.html +++ b/architecture.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_attribute.html b/class_attribute.html index 29972942a5..e12779d60c 100644 --- a/class_attribute.html +++ b/class_attribute.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_authorize_attribute.html b/class_authorize_attribute.html index 460e73baf1..1e8a40eff1 100644 --- a/class_authorize_attribute.html +++ b/class_authorize_attribute.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_controller.html b/class_controller.html index 5a51a59025..d0f5e6fb0f 100644 --- a/class_controller.html +++ b/class_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_db_context.html b/class_db_context.html index c3c9530be9..1fe1140751 100644 --- a/class_db_context.html +++ b/class_db_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_async_enumerable.html b/class_i_async_enumerable.html index 1d57e595a3..ddda881e47 100644 --- a/class_i_async_enumerable.html +++ b/class_i_async_enumerable.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_design_time_db_context_factory.html b/class_i_design_time_db_context_factory.html index 15035334fe..42a13d62ab 100644 --- a/class_i_design_time_db_context_factory.html +++ b/class_i_design_time_db_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_disposable.html b/class_i_disposable.html index ec299c9aaf..73fff618e9 100644 --- a/class_i_disposable.html +++ b/class_i_disposable.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_document_filter.html b/class_i_document_filter.html index 2ec62ea29f..4a3cea082b 100644 --- a/class_i_document_filter.html +++ b/class_i_document_filter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_hosted_service.html b/class_i_hosted_service.html index 4c23fa078e..feffcafb81 100644 --- a/class_i_hosted_service.html +++ b/class_i_hosted_service.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_open_api_extension.html b/class_i_open_api_extension.html index 9faf0139af..cb5c0c2061 100644 --- a/class_i_open_api_extension.html +++ b/class_i_open_api_extension.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_operation_filter.html b/class_i_operation_filter.html index 178da72d49..14dc57bd91 100644 --- a/class_i_operation_filter.html +++ b/class_i_operation_filter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_queryable.html b/class_i_queryable.html index 2c9b12ed28..63765d9129 100644 --- a/class_i_queryable.html +++ b/class_i_queryable.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_i_schema_filter.html b/class_i_schema_filter.html index 5bec60620b..9c2830884a 100644 --- a/class_i_schema_filter.html +++ b/class_i_schema_filter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_json_converter.html b/class_json_converter.html index 0548b2b789..36499b1797 100644 --- a/class_json_converter.html +++ b/class_json_converter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_migration.html b/class_migration.html index f21ad9dcd1..1aef9c8fdd 100644 --- a/class_migration.html +++ b/class_migration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_model_snapshot.html b/class_model_snapshot.html index 6ac30e19ae..d3d5f4c8b4 100644 --- a/class_model_snapshot.html +++ b/class_model_snapshot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_service_base.html b/class_service_base.html index 261ebc857b..a1ed3509d4 100644 --- a/class_service_base.html +++ b/class_service_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_api_headers-members.html b/class_tgstation_1_1_server_1_1_api_1_1_api_headers-members.html index 804b34f964..6121eab30d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_api_headers-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_api_headers-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_api_headers.html b/class_tgstation_1_1_server_1_1_api_1_1_api_headers.html index f97c573492..4839e94d8d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_api_headers.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_api_headers.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_headers_exception-members.html b/class_tgstation_1_1_server_1_1_api_1_1_headers_exception-members.html index 8103056589..5dbdc8a0b9 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_headers_exception-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_headers_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_headers_exception.html b/class_tgstation_1_1_server_1_1_api_1_1_headers_exception.html index f97015a72d..719ef678f6 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_headers_exception.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_headers_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration-members.html index ef6a0c51fc..ba87818740 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration.html index a1963244d6..a9fb9cc81f 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_administration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond-members.html index cc63159e36..110a5d07eb 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond.html index a6293c9689..e2a6848db5 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_byond.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot-members.html index ad2bcc6a06..49be2dabad 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot.html index a4c92c3f75..d2a4f16562 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_bot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel-members.html index 6b7865ce20..cb2f348ed9 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel.html index c58bce8498..6ff8a02c35 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_chat_channel.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job-members.html index ea9d30a6d8..4d0ec20d9d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job.html index 51d27b1604..3001e4d93e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_compile_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file-members.html index 2469f4263a..9590d82447 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html index d12f980663..b23e4c52d6 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_configuration_file.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder-members.html index 5cd70c98fb..b7b2b81143 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder.html index 1952d51f9d..ee436fd532 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_discord_connection_string_builder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon-members.html index 9481330b50..bc3101b89e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html index b08aca6467..0a14b28722 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_daemon.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker-members.html index 64b5f93b14..8450be7471 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker.html index dc1d026ca1..ba2a1ef402 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_dream_maker.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id-members.html index baa4165227..883a469d6d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html index d98bea6316..5af5f90ebe 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_entity_id.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions-members.html index 14d1c06939..c0b00df738 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions.html index 5a2b0b18f2..0ccb01aa1d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_code_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message-members.html index 6a8d95a921..424c73bf0e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message.html index 3bd2222d07..50f458b9f3 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_error_message.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance-members.html index ea02c1823a..2134fbb3c5 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html index 292dc9bf88..64543c59f8 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user-members.html index b886e47fb8..57f8f08ae1 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html index 27a95adcb5..3145200e9d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_instance_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot-members.html index e78c8b84ba..a347677111 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot.html index 75050927e1..161098f364 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_bot.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder-members.html index 5a0f985c5d..4d6a90ec04 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder.html index 322d93f770..96e6d0af8e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_chat_connection_string_builder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job-members.html index 7cbb06ccf0..f560c3d53b 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html index 7301b3ef40..1028e4a714 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_compile_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters-members.html index a74f414c06..5435921961 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html index f24e124461..955900a68e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_launch_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -337,7 +337,7 @@ Here is the caller graph for this function:

Definition at line 49 of file DreamDaemonLaunchParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), Tgstation.Server.Host.Controllers.DreamDaemonController.ReadImpl(), and Tgstation.Server.Host.Database.DatabaseSeeder.SanitizeDatabase().

+

Referenced by Tgstation.Server.Host.Components.Session.SessionControllerFactory.LaunchNew(), and Tgstation.Server.Host.Controllers.DreamDaemonController.ReadImpl().

diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings-members.html index b34ebcca5b..aae2ea47af 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings.html index 4eb8a9df9b..23697fccda 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_dream_daemon_settings.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -181,7 +181,7 @@ Additional Inherited Members

Definition at line 14 of file DreamDaemonSettings.cs.

-

Referenced by Tgstation.Server.Host.Components.Watchdog.PosixWatchdogFactory.PosixWatchdogFactory(), Tgstation.Server.Host.Controllers.DreamDaemonController.ReadImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogFactory.WatchdogFactory(), and Tgstation.Server.Host.Components.Watchdog.WindowsWatchdogFactory.WindowsWatchdogFactory().

+

Referenced by Tgstation.Server.Host.Components.Watchdog.PosixWatchdogFactory.PosixWatchdogFactory(), Tgstation.Server.Host.Controllers.DreamDaemonController.ReadImpl(), Tgstation.Server.Host.Components.Watchdog.WatchdogFactory.WatchdogFactory(), and Tgstation.Server.Host.Components.Watchdog.WindowsWatchdogFactory.WindowsWatchdogFactory().

diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job-members.html index ec5c8c58dc..2c0d70a91a 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job.html index 8602896a86..fc0ee8d2e7 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_raw_data-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_raw_data-members.html index bd0f3a1355..61e52a999e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_raw_data-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_raw_data-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_raw_data.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_raw_data.html index 837159e2e8..f16670b3db 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_raw_data.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_raw_data.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings-members.html index dbabd778b1..149cd278ec 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings.html index 39974b6657..c4ae8e9a57 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_repository_settings.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information-members.html index c9a29a0a9c..80762675ec 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information.html index 6ec239fcd5..c1e9ba5040 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_revision_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information-members.html index 57ba47bdae..ef9de7b9c0 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html index a0d15ade72..c58a30ba12 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_server_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge-members.html index 0a6c50343a..c2908bb464 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge.html index 0e2adc7675..176ec2e19b 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base-members.html index d44cea8f57..17d0231768 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html index 851895a26d..52f3ba08eb 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_test_merge_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user-members.html index 02d0516f5f..5b227ab4d3 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html index 17631f0d46..2f92927480 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_internal_1_1_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -239,7 +239,7 @@ Properties

Definition at line 16 of file User.cs.

-

Referenced by Tgstation.Server.Host.Security.IdentityCache.CacheSystemIdentity(), Tgstation.Server.Host.Jobs.JobManager.CancelJob(), Tgstation.Server.Host.Controllers.RepositoryController.Delete(), Tgstation.Server.Host.Controllers.UserController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions(), Tgstation.Server.Host.Controllers.InstanceController.InstanceAdminUser(), Tgstation.Server.Host.Controllers.InstanceController.List(), Tgstation.Server.Host.Security.IdentityCache.LoadCachedIdentity(), Tgstation.Server.Host.Controllers.ApiController.OnActionExecutionAsync(), Tgstation.Server.Host.Jobs.JobManager.RunJob(), Tgstation.Server.Host.Controllers.InstanceUserController.Update(), Tgstation.Server.Host.Controllers.ByondController.Update(), Tgstation.Server.Host.Controllers.RepositoryController.Update(), and Tgstation.Server.Client.UsersClient.UsersClient().

+

Referenced by Tgstation.Server.Host.Security.IdentityCache.CacheSystemIdentity(), Tgstation.Server.Host.Jobs.JobManager.CancelJob(), Tgstation.Server.Host.Controllers.RepositoryController.Delete(), Tgstation.Server.Host.Controllers.UserController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions(), Tgstation.Server.Host.Controllers.InstanceController.InstanceAdminUser(), Tgstation.Server.Host.Controllers.InstanceController.List(), Tgstation.Server.Host.Security.IdentityCache.LoadCachedIdentity(), Tgstation.Server.Host.Controllers.ApiController.OnActionExecutionAsync(), Tgstation.Server.Host.Jobs.JobManager.RunJob(), Tgstation.Server.Host.Controllers.InstanceUserController.Update(), Tgstation.Server.Host.Controllers.ByondController.Update(), Tgstation.Server.Host.Controllers.RepositoryController.Update(), and Tgstation.Server.Client.UsersClient.UsersClient().

@@ -265,7 +265,7 @@ Properties

Definition at line 53 of file User.cs.

-

Referenced by Tgstation.Server.Host.Controllers.InstanceController.GetId(), and Tgstation.Server.Host.Controllers.InstanceController.List().

+

Referenced by Tgstation.Server.Host.Controllers.InstanceController.GetId(), and Tgstation.Server.Host.Controllers.InstanceController.List().

diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder-members.html index 179d40de35..4e609c5067 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html index c060de8582..217d01d309 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_irc_connection_string_builder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job-members.html index c8b97acb3a..6a662bda33 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job.html index 89e1defa74..c06d7dacd5 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_job.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits-members.html index 6d37be83ae..c1710ad640 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html index 24a3182632..26948bd6ee 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_limits.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_log_file-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_log_file-members.html index af962a70d1..82fa2ef302 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_log_file-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_log_file-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_log_file.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_log_file.html index 736d20068b..2865656892 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_log_file.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_log_file.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository-members.html index 86fba86a8d..609ca8a8e2 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html index 113f8032f1..52c8416512 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_repository.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information-members.html index c92b7e6374..ab37e0af5a 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html index 81b5132d8e..6c5569d96c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_revision_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information-members.html index c74471be5b..51b20d8b65 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information.html index f65b68a843..1ff0d2e81f 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_server_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge-members.html index 85364435a7..e4e8f5c23e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge.html index 99271d60fc..d0ba9a8f4a 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters-members.html index 4d105505cb..6579f453de 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters.html index bc6fc7badf..ecafeb5022 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_test_merge_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token-members.html index db8a6a8ccd..cac9a1f6a1 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token.html index f12403218e..dd0c0027b2 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_token.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user-members.html index 48b7f996e7..9e8da54ce4 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html index 36768f7670..8e1ea6620e 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update-members.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update-members.html index ef3a34e553..7acbd3e063 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update.html b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update.html index 768fe793f4..69e7490bc0 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_models_1_1_user_update.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper-members.html b/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper-members.html index 1cb8df94a1..b3821a7f8d 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper.html b/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper.html index 124fc45224..95f4837bc4 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_rights_1_1_rights_helper.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_routes-members.html b/class_tgstation_1_1_server_1_1_api_1_1_routes-members.html index 7b86d96f40..cc5865974c 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_routes-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_routes-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_routes.html b/class_tgstation_1_1_server_1_1_api_1_1_routes.html index 1a65fab6ae..529f3cc424 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_routes.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_routes.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_version_extensions-members.html b/class_tgstation_1_1_server_1_1_api_1_1_version_extensions-members.html index 2e712393c7..1704c19aae 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_version_extensions-members.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_version_extensions-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_api_1_1_version_extensions.html b/class_tgstation_1_1_server_1_1_api_1_1_version_extensions.html index ab36616e68..46e89592e7 100644 --- a/class_tgstation_1_1_server_1_1_api_1_1_version_extensions.html +++ b/class_tgstation_1_1_server_1_1_api_1_1_version_extensions.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_administration_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_administration_client-members.html index c174c33a50..589c3b7d23 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_administration_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_administration_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_administration_client.html b/class_tgstation_1_1_server_1_1_client_1_1_administration_client.html index 82f92e0cd7..7f40fd02b6 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_administration_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_administration_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client-members.html index e92941182f..6d72b78e50 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client.html index bb584f5c73..0f0771e7a6 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory-members.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory-members.html index 408b6295f3..b9c890fd73 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory.html b/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory.html index 543928fe24..df972e7c0f 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_client_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception-members.html index c021fc304f..df4e5dcf0b 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception.html index fffe08cef8..f7df7f1ea3 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_conflict_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_api_exception-members.html index 956c1d6bf4..e76bd4e9c7 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_api_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_api_exception.html index 740f8e529b..da8c495bca 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_api_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_api_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_client_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_client_exception-members.html index ef9c8b50ba..1be18b5240 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_client_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_client_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_client_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_client_exception.html index ea1f938103..45aa1fd516 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_client_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_client_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client-members.html index 12254190e2..70a83cdd66 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client.html index 0d79acc965..1a18ba38f3 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_byond_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client-members.html index ae296899e7..e6fe672630 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client.html index 88fe7904e5..2b25c6b0db 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_chat_bots_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client-members.html index c8d3d9140f..48b00a7348 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html index be305c0056..6d6c2da008 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_configuration_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client-members.html index f9bd89158c..a0a4317d7d 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client.html index 60bce1722d..74c8dfb706 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_daemon_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client-members.html index 00b71a5c5e..60abe8e795 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client.html index 5914e3eb3b..03713c5847 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_dream_maker_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client-members.html index 712b21e47d..284f3051af 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html index ea1a1e954c..46842004ac 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client-members.html index 55e5bbd583..f9ccb84e57 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client.html index fc96629177..667a3e3c1c 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_instance_user_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client-members.html index 9843b9e7b5..2c64afcaa3 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html index f875707cb7..469f7297ba 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_jobs_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client-members.html index 5154f311ca..c95e5f59bd 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client.html b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client.html index a8fb2eefb7..dbe359f31a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_components_1_1_repository_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception-members.html index 4548a6f3a3..ea9ca1d001 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception.html index 90e36b363d..c043433a75 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_conflict_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_http_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_http_client-members.html index 049990d2f4..0da33ea8f1 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_http_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_http_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_http_client.html b/class_tgstation_1_1_server_1_1_client_1_1_http_client.html index 8b0bde9106..3021432940 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_http_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_http_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client-members.html index 44caf044ba..05897c1349 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client.html b/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client.html index b079b63385..8bd0c8b788 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_instance_manager_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception-members.html index 84feb1c2d5..26632fae56 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception.html index cc10b8f807..0a556eb244 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_insufficient_permissions_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception-members.html index ee728ca496..5f7b75fb02 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html index a7dd4c28b1..c789087085 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_method_not_supported_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception-members.html index ce064b7fad..55abdb609a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception.html index 0d4242039e..0def097756 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_rate_limit_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception-members.html index a9fc6d3690..8d9f4576da 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception.html index 7db1a3a977..91ea2f3dab 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_request_timeout_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_server_client-members.html index 24972980b9..8538a7659a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_client.html b/class_tgstation_1_1_server_1_1_client_1_1_server_client.html index aaa20b189f..64dab3b20b 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory-members.html b/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory-members.html index 7a94730c19..26bfaa5aff 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory.html b/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory.html index 104b46f41c..7a53af9cbe 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_client_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception-members.html index ba486bfbb2..78b8e39999 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception.html index 37493f7d7c..f87f372d36 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_server_error_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception-members.html index d900e5ffee..95b29196b2 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception.html index 8cd132bb37..0bc8c4c71a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_service_unavailable_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception-members.html index 9edee1382b..dc7267236c 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception.html index 52782ae044..645e33b038 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_unauthorized_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception-members.html index 36552831c5..0dea185921 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception.html index 721e2dcf3c..ff1acafc4a 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_unrecognized_response_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_users_client-members.html b/class_tgstation_1_1_server_1_1_client_1_1_users_client-members.html index 734aee4732..3fc7715319 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_users_client-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_users_client-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_users_client.html b/class_tgstation_1_1_server_1_1_client_1_1_users_client.html index f2e3ce1ac4..9b45a56ced 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_users_client.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_users_client.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception-members.html b/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception-members.html index e892073d37..6d7314c082 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception-members.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception.html b/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception.html index e48131a7b2..e840ea6ccb 100644 --- a/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception.html +++ b/class_tgstation_1_1_server_1_1_client_1_1_version_mismatch_exception.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock-members.html index 432746c901..cd62ebe2c0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock.html index 274862d7a9..68485551f4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_executable_lock.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base-members.html index 519a12fd68..4fa85fa080 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html index 31748e6cfc..136a5af4e1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_installer_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager-members.html index f52a2820de..3cb410c244 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html index 49c8dbf76a..a0b16c0c39 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_byond_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer-members.html index c93b66d42d..0a1bf4cf47 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer.html index a2f1dcd565..a310e176d0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_posix_byond_installer.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer-members.html index 3157ced904..34826950db 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html index 5c45723128..c95d866a1e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_byond_1_1_windows_byond_installer.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping-members.html index 9eff89a81c..c4aed8bd82 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping.html index 5cd16afc49..6d10ba5c23 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_mapping.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation-members.html index b25370b951..782e8ebf08 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation.html index 7630d5ff39..86ead5130a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_channel_representation.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager-members.html index 5e74add650..eafdca1dca 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html index 508c8ba197..87654e6fe6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory-members.html index 2aa34d2c9b..3317bf3b70 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory.html index e92d8fd97b..3e717af48c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_manager_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context-members.html index c18f323cb1..97f278d39b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context.html index c6cf5a2507..159531ff4b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_tracking_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user-members.html index 455ab0f10f..144997eb29 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html index a7dbfae7fb..b7263e87fa 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_chat_user.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command-members.html index 05d823ecb7..a914a40e30 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html index c2c052ce4e..c0b3a97e87 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_byond_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory-members.html index 22200f3b53..b9aad592bb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html index 346711d435..876b12e91a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_command_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command-members.html index 9fd33a1282..2f310cc2de 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command.html index df6594138a..864191cdc1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_custom_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command-members.html index 4b7ec8cb5b..19c7fd06e7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command.html index 7ef02628fa..a51fc1ba52 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_kek_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command-members.html index d444cbaf31..3cca479951 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html index 227e4b0f31..242eacfb78 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_pull_requests_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command-members.html index 025871d9e7..1ba509a908 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html index bcc4be1e77..aa5cb423b9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_revision_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command-members.html index 29b80c403d..6255ecf2e4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command.html index 357302b8d2..b07fcaa933 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_commands_1_1_version_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider-members.html index 994d9dd46e..f090fdb900 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html index aae35e27ae..2be44275d0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_discord_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider-members.html index d1204233e3..5c5d4e98a7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html index 4e644cf415..11c449f232 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_irc_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message-members.html index 8b0934e354..116fe96b57 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html index e9a384e3e3..08b446d2c4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_message.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider-members.html index ea980ebeae..79aac745f6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html index 92423f990f..46a2cfadc9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory-members.html index 84ec80dce2..2681c9e17f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory.html index eaeb305c35..2e1b79de2e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_chat_1_1_providers_1_1_provider_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory-members.html index b7d663e7d2..1ff60ac5bc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html index 9dc5dcdde8..95f7757536 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -340,10 +340,10 @@ Private Attributes

Implements Tgstation.Server.Host.Components.Deployment.IDmbFactory.

-

Definition at line 302 of file DmbFactory.cs.

+

Definition at line 303 of file DmbFactory.cs.

References Tgstation.Server.Host.Components.Deployment.SwappableDmbProvider.LiveGameDirectory.

-
303  {
304  List<long> jobIdsToSkip;
305 
306  // don't clean locked directories
307  lock (jobLockCounts)
308  jobIdsToSkip = jobLockCounts.Select(x => x.Key).ToList();
309 
310  List<string> jobUidsToNotErase = null;
311 
312  // find the uids of locked directories
313  await databaseContextFactory.UseContext(async db =>
314  {
315  jobUidsToNotErase = (await db
316  .CompileJobs
317  .AsQueryable()
318  .Where(
319  x => x.Job.Instance.Id == instance.Id
320  && jobIdsToSkip.Contains(x.Id))
321  .Select(x => x.DirectoryName.Value)
322  .ToListAsync(cancellationToken)
323  .ConfigureAwait(false))
324  .Select(x => x.ToString())
325  .ToList();
326  }).ConfigureAwait(false);
327 
328  jobUidsToNotErase.Add(SwappableDmbProvider.LiveGameDirectory);
329 
330  logger.LogTrace("We will not clean the following directories: {0}", String.Join(", ", jobUidsToNotErase));
331 
332  // cleanup
333  var gameDirectory = ioManager.ResolvePath();
334  await ioManager.CreateDirectory(gameDirectory, cancellationToken).ConfigureAwait(false);
335  var directories = await ioManager.GetDirectories(gameDirectory, cancellationToken).ConfigureAwait(false);
336  int deleting = 0;
337  var tasks = directories.Select(async x =>
338  {
339  var nameOnly = ioManager.GetFileName(x);
340  if (jobUidsToNotErase.Contains(nameOnly))
341  return;
342  logger.LogDebug("Cleaning unused game folder: {0}...", nameOnly);
343  try
344  {
345  ++deleting;
346  await ioManager.DeleteDirectory(x, cancellationToken).ConfigureAwait(false);
347  }
348  catch (OperationCanceledException)
349  {
350  throw;
351  }
352  catch (Exception e)
353  {
354  logger.LogWarning("Error deleting directory {0}! Exception: {1}", x, e);
355  }
356  }).ToList();
357  if (deleting > 0)
358  await Task.WhenAll(tasks).ConfigureAwait(false);
359  }
Task DeleteDirectory(string path, CancellationToken cancellationToken)
Recursively delete a directory, removes and does not enter any symlinks encounterd.
+
304  {
305  List<long> jobIdsToSkip;
306 
307  // don't clean locked directories
308  lock (jobLockCounts)
309  jobIdsToSkip = jobLockCounts.Select(x => x.Key).ToList();
310 
311  List<string> jobUidsToNotErase = null;
312 
313  // find the uids of locked directories
314  await databaseContextFactory.UseContext(async db =>
315  {
316  jobUidsToNotErase = (await db
317  .CompileJobs
318  .AsQueryable()
319  .Where(
320  x => x.Job.Instance.Id == instance.Id
321  && jobIdsToSkip.Contains(x.Id))
322  .Select(x => x.DirectoryName.Value)
323  .ToListAsync(cancellationToken)
324  .ConfigureAwait(false))
325  .Select(x => x.ToString())
326  .ToList();
327  }).ConfigureAwait(false);
328 
329  jobUidsToNotErase.Add(SwappableDmbProvider.LiveGameDirectory);
330 
331  logger.LogTrace("We will not clean the following directories: {0}", String.Join(", ", jobUidsToNotErase));
332 
333  // cleanup
334  var gameDirectory = ioManager.ResolvePath();
335  await ioManager.CreateDirectory(gameDirectory, cancellationToken).ConfigureAwait(false);
336  var directories = await ioManager.GetDirectories(gameDirectory, cancellationToken).ConfigureAwait(false);
337  int deleting = 0;
338  var tasks = directories.Select(async x =>
339  {
340  var nameOnly = ioManager.GetFileName(x);
341  if (jobUidsToNotErase.Contains(nameOnly))
342  return;
343  logger.LogDebug("Cleaning unused game folder: {0}...", nameOnly);
344  try
345  {
346  ++deleting;
347  await ioManager.DeleteDirectory(x, cancellationToken).ConfigureAwait(false);
348  }
349  catch (OperationCanceledException)
350  {
351  throw;
352  }
353  catch (Exception e)
354  {
355  logger.LogWarning("Error deleting directory {0}! Exception: {1}", x, e);
356  }
357  }).ToList();
358  if (deleting > 0)
359  await Task.WhenAll(tasks).ConfigureAwait(false);
360  }
Task DeleteDirectory(string path, CancellationToken cancellationToken)
Recursively delete a directory, removes and does not enter any symlinks encounterd.
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the DmbFactory
Definition: DmbFactory.cs:36
Task< IReadOnlyList< string > > GetDirectories(string path, CancellationToken cancellationToken)
Returns directory names in a given path
Task CreateDirectory(string path, CancellationToken cancellationToken)
Create a directory at path
@@ -406,7 +406,7 @@ Private Attributes

References Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Host.Models.CompileJob.Job, and Tgstation.Server.Api.Models.Internal.Job.StoppedAt.

Referenced by Tgstation.Server.Host.Components.Watchdog.WindowsWatchdog.PrepServerForLaunch().

-
201  {
202  if (compileJob == null)
203  throw new ArgumentNullException(nameof(compileJob));
204 
205  // ensure we have the entire compile job tree
206  logger.LogTrace("Loading compile job {0}...", compileJob.Id);
208  async db => compileJob = await db
209  .CompileJobs
210  .AsQueryable()
211  .Where(x => x.Id == compileJob.Id)
212  .Include(x => x.Job).ThenInclude(x => x.StartedBy)
213  .Include(x => x.RevisionInformation).ThenInclude(x => x.PrimaryTestMerge).ThenInclude(x => x.MergedBy)
214  .Include(x => x.RevisionInformation).ThenInclude(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge).ThenInclude(x => x.MergedBy)
215  .FirstAsync(cancellationToken)
216  .ConfigureAwait(false))
217  .ConfigureAwait(false); // can't wait to see that query
218 
219  if (!compileJob.Job.StoppedAt.HasValue)
220  {
221  // This happens if we're told to load the compile job that is currently finished up
222  // It can constitute an API violation if it's returned by the DreamDaemonController so just set it here
223  // Bit of a hack, but it should work out to be the same value
224  logger.LogTrace("Setting missing StoppedAt for CompileJob job...");
225  compileJob.Job.StoppedAt = DateTimeOffset.Now;
226  }
227 
228  var providerSubmitted = false;
229 
230  void CleanupAction()
231  {
232  if (providerSubmitted)
233  CleanJob(compileJob);
234  }
235 
236  var newProvider = new DmbProvider(compileJob, ioManager, CleanupAction);
237  try
238  {
239  const string LegacyADirectoryName = "A";
240  const string LegacyBDirectoryName = "B";
241 
242  var dmbExistsAtRoot = await ioManager.FileExists(
244  newProvider.Directory,
245  newProvider.DmbName),
246  cancellationToken)
247  .ConfigureAwait(false);
248 
249  if (!dmbExistsAtRoot)
250  {
251  var primaryCheckTask = ioManager.FileExists(
253  newProvider.Directory,
254  LegacyADirectoryName,
255  newProvider.DmbName),
256  cancellationToken);
257  var secondaryCheckTask = ioManager.FileExists(
259  newProvider.Directory,
260  LegacyBDirectoryName,
261  newProvider.DmbName),
262  cancellationToken);
263 
264  if (!(await primaryCheckTask.ConfigureAwait(false) && await secondaryCheckTask.ConfigureAwait(false)))
265  {
266  logger.LogWarning("Error loading compile job, .dmb missing!");
267  return null; // omae wa mou shinderu
268  }
269 
270  // rebuild the provider because it's using the legacy style directories
271  // Don't dispose it
272  logger.LogDebug("Creating legacy two folder .dmb provider targeting {0} directory...", LegacyADirectoryName);
273  newProvider = new DmbProvider(compileJob, ioManager, CleanupAction, Path.DirectorySeparatorChar + LegacyADirectoryName);
274  }
275 
276  lock (jobLockCounts)
277  {
278  if (!jobLockCounts.TryGetValue(compileJob.Id, out int value))
279  {
280  value = 1;
281  jobLockCounts.Add(compileJob.Id, 1);
282  }
283  else
284  jobLockCounts[compileJob.Id] = ++value;
285 
286  logger.LogTrace("Compile job {0} lock count now: {1}", compileJob.Id, value);
287 
288  providerSubmitted = true;
289  return newProvider;
290  }
291  }
292  finally
293  {
294  if (!providerSubmitted)
295  newProvider.Dispose();
296  }
297  }
long Id
The ID of the entity.
Definition: EntityId.cs:11
+
201  {
202  if (compileJob == null)
203  throw new ArgumentNullException(nameof(compileJob));
204 
205  // ensure we have the entire compile job tree
206  logger.LogTrace("Loading compile job {0}...", compileJob.Id);
208  async db => compileJob = await db
209  .CompileJobs
210  .AsQueryable()
211  .Where(x => x.Id == compileJob.Id)
212  .Include(x => x.Job).ThenInclude(x => x.StartedBy)
213  .Include(x => x.RevisionInformation).ThenInclude(x => x.PrimaryTestMerge).ThenInclude(x => x.MergedBy)
214  .Include(x => x.RevisionInformation).ThenInclude(x => x.ActiveTestMerges).ThenInclude(x => x.TestMerge).ThenInclude(x => x.MergedBy)
215  .FirstAsync(cancellationToken)
216  .ConfigureAwait(false))
217  .ConfigureAwait(false); // can't wait to see that query
218 
219  if (!compileJob.Job.StoppedAt.HasValue)
220  {
221  // This happens if we're told to load the compile job that is currently finished up
222  // It can constitute an API violation if it's returned by the DreamDaemonController so just set it here
223  // Bit of a hack, but it should work out to be the same value
224  logger.LogTrace("Setting missing StoppedAt for CompileJob job...");
225  compileJob.Job.StoppedAt = DateTimeOffset.Now;
226  }
227 
228  var providerSubmitted = false;
229 
230  void CleanupAction()
231  {
232  if (providerSubmitted)
233  CleanJob(compileJob);
234  }
235 
236  var newProvider = new DmbProvider(compileJob, ioManager, CleanupAction);
237  try
238  {
239  const string LegacyADirectoryName = "A";
240  const string LegacyBDirectoryName = "B";
241 
242  var dmbExistsAtRoot = await ioManager.FileExists(
244  newProvider.Directory,
245  newProvider.DmbName),
246  cancellationToken)
247  .ConfigureAwait(false);
248 
249  if (!dmbExistsAtRoot)
250  {
251  logger.LogTrace("Didn't find .dmb at game directory root, checking A/B dirs...");
252  var primaryCheckTask = ioManager.FileExists(
254  newProvider.Directory,
255  LegacyADirectoryName,
256  newProvider.DmbName),
257  cancellationToken);
258  var secondaryCheckTask = ioManager.FileExists(
260  newProvider.Directory,
261  LegacyBDirectoryName,
262  newProvider.DmbName),
263  cancellationToken);
264 
265  if (!(await primaryCheckTask.ConfigureAwait(false) && await secondaryCheckTask.ConfigureAwait(false)))
266  {
267  logger.LogWarning("Error loading compile job, .dmb missing!");
268  return null; // omae wa mou shinderu
269  }
270 
271  // rebuild the provider because it's using the legacy style directories
272  // Don't dispose it
273  logger.LogDebug("Creating legacy two folder .dmb provider targeting {0} directory...", LegacyADirectoryName);
274  newProvider = new DmbProvider(compileJob, ioManager, CleanupAction, Path.DirectorySeparatorChar + LegacyADirectoryName);
275  }
276 
277  lock (jobLockCounts)
278  {
279  if (!jobLockCounts.TryGetValue(compileJob.Id, out int value))
280  {
281  value = 1;
282  jobLockCounts.Add(compileJob.Id, 1);
283  }
284  else
285  jobLockCounts[compileJob.Id] = ++value;
286 
287  logger.LogTrace("Compile job {0} lock count now: {1}", compileJob.Id, value);
288 
289  providerSubmitted = true;
290  return newProvider;
291  }
292  }
293  finally
294  {
295  if (!providerSubmitted)
296  newProvider.Dispose();
297  }
298  }
long Id
The ID of the entity.
Definition: EntityId.cs:11
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the DmbFactory
Definition: DmbFactory.cs:36
DateTimeOffset StoppedAt
When the Job stopped
Definition: Job.cs:37
void CleanJob(CompileJob job)
Delete the Api.Models.Internal.CompileJob.DirectoryName of job
Definition: DmbFactory.cs:105
@@ -447,8 +447,8 @@ Here is the caller graph for this function:

Implements Tgstation.Server.Host.Components.Deployment.ILatestCompileJobProvider.

-

Definition at line 363 of file DmbFactory.cs.

-
364  {
365  if (!DmbAvailable)
366  return null;
367  return LockNextDmb(0)?.CompileJob;
368  }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:24
+

Definition at line 364 of file DmbFactory.cs.

+
365  {
366  if (!DmbAvailable)
367  return null;
368  return LockNextDmb(0)?.CompileJob;
369  }
CompileJob CompileJob
The CompileJob of the .dmb
Definition: IDmbProvider.cs:24
IDmbProvider LockNextDmb(int lockCount)
Gets the next IDmbProvider
Definition: DmbFactory.cs:153
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider-members.html index 02bd08f5d9..f723da6970 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider.html index 053e605ccc..be5771116b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dmb_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker-members.html index c9bff8a695..827f504f9e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html index 1b0d4c6961..256e6714e0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_dream_maker.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_swappable_dmb_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_swappable_dmb_provider-members.html index 92698784cd..b5f7c622c4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_swappable_dmb_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_swappable_dmb_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_swappable_dmb_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_swappable_dmb_provider.html index 8ba8d8db72..3161e61159 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_swappable_dmb_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_swappable_dmb_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -441,7 +441,7 @@ Here is the caller graph for this function:

Definition at line 17 of file SwappableDmbProvider.cs.

-

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanUnusedCompileJobs().

+

Referenced by Tgstation.Server.Host.Components.Deployment.DmbFactory.CleanUnusedCompileJobs().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider-members.html index bd36e38e32..f42d28be23 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider.html index 7b8bdd0205..71f7721348 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_deployment_1_1_temporary_dmb_provider.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_consumer-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_consumer-members.html index 2ba95b3d15..2858a6d0b5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_consumer-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_consumer-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_consumer.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_consumer.html index f11bd25baa..f779993fbc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_consumer.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_consumer.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_script_attribute-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_script_attribute-members.html index db24cc1ed8..c1df87b6d7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_script_attribute-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_script_attribute-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_script_attribute.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_script_attribute.html index e4cab59b3f..7dbdaa2f27 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_script_attribute.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_events_1_1_event_script_attribute.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance-members.html index 040fb7c7e5..ccff576b0a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html index c3c59af694..e9bd8b51cd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory-members.html index b2862fc9f0..cfad7300df 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html index 7a612e3d1d..fc04fca9a2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager-members.html index 911ed305a8..34b05fa836 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html index f3817bd1be..ba8e1b52a0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_instance_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -396,8 +396,8 @@ Here is the call graph for this function:

Check we have a valid system identity.

-

Definition at line 348 of file InstanceManager.cs.

-
349  {
350  using var systemIdentity = systemIdentityFactory.GetCurrent();
351  if (!systemIdentity.CanCreateSymlinks)
352  throw new InvalidOperationException("The user running tgstation-server cannot create symlinks! Please try running as an administrative user!");
353  }
readonly ISystemIdentityFactory systemIdentityFactory
The ISystemIdentityFactory for the InstanceManager
+

Definition at line 360 of file InstanceManager.cs.

+
361  {
362  using var systemIdentity = systemIdentityFactory.GetCurrent();
363  if (!systemIdentity.CanCreateSymlinks)
364  throw new InvalidOperationException("The user running tgstation-server cannot create symlinks! Please try running as an administrative user!");
365  }
readonly ISystemIdentityFactory systemIdentityFactory
The ISystemIdentityFactory for the InstanceManager
ISystemIdentity GetCurrent()
Retrieves a ISystemIdentity representing the user executing tgstation-server.
@@ -474,8 +474,8 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Core.IRestartHandler.

-

Definition at line 339 of file InstanceManager.cs.

-
340  {
341  downgradeVersion = updateVersion != null && updateVersion < assemblyInformationProvider.Version ? updateVersion : null;
342  return Task.CompletedTask;
343  }
+

Definition at line 351 of file InstanceManager.cs.

+
352  {
353  downgradeVersion = updateVersion != null && updateVersion < assemblyInformationProvider.Version ? updateVersion : null;
354  return Task.CompletedTask;
355  }
readonly IAssemblyInformationProvider assemblyInformationProvider
The IAssemblyInformationProvider for the InstanceManager
Version downgradeVersion
Used in StopAsync(CancellationToken) to determine if database downgrades must be made ...
@@ -560,7 +560,7 @@ Here is the call graph for this function:
206  {
207  if (metadata == null)
208  throw new ArgumentNullException(nameof(metadata));
209  logger.LogInformation("Offlining instance ID {0}", metadata.Id);
210  IInstance instance;
211  lock (instances)
212  {
213  if (!instances.TryGetValue(metadata.Id, out instance))
214  throw new InvalidOperationException("Instance not online!");
215  instances.Remove(metadata.Id);
216  }
217 
218  try
219  {
220  // we are the one responsible for cancelling his jobs
221  var tasks = new List<Task>();
222  await databaseContextFactory.UseContext(async db =>
223  {
224  var jobs = db
225  .Jobs
226  .AsQueryable()
227  .Where(x => x.Instance.Id == metadata.Id)
228  .Select(x => new Models.Job
229  {
230  Id = x.Id
231  });
232  await jobs.ForEachAsync(job =>
233  {
234  lock (tasks)
235  tasks.Add(jobManager.CancelJob(job, user, true, cancellationToken));
236  }, cancellationToken).ConfigureAwait(false);
237  }).ConfigureAwait(false);
238 
239  await Task.WhenAll(tasks).ConfigureAwait(false);
240 
241  await instance.StopAsync(cancellationToken).ConfigureAwait(false);
242  }
243  finally
244  {
245  instance.Dispose();
246  }
247  }
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the InstanceManager
readonly IJobManager jobManager
The IJobManager for the InstanceManager
readonly IDictionary< long, IInstance > instances
Map of instance EntityId.Ids to respective IInstances. Also used as a object.
-
async Task StopAsync(CancellationToken cancellationToken)
+
async Task StopAsync(CancellationToken cancellationToken)
readonly ILogger< InstanceManager > logger
The ILogger for the InstanceManager
Task UseContext(Func< IDatabaseContext, Task > operation)
Run an operation in the scope of an IDatabaseContext
@@ -630,10 +630,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Interop.Bridge.IBridgeDispatcher.

-

Definition at line 356 of file InstanceManager.cs.

+

Definition at line 368 of file InstanceManager.cs.

References Tgstation.Server.Host.Components.Interop.DMApiParameters.AccessIdentifier, and Tgstation.Server.Host.Components.Interop.Bridge.IBridgeDispatcher.ProcessBridgeRequest().

-
357  {
358  if (parameters == null)
359  throw new ArgumentNullException(nameof(parameters));
360 
361  IBridgeHandler bridgeHandler = null;
362  for (var i = 0; bridgeHandler == null && i < 30; ++i)
363  {
364  // There's a miniscule time period where we could potentially receive a bridge request and not have the registration ready when we launch DD
365  // This is a stopgap
366  Task delayTask = Task.CompletedTask;
367  lock (bridgeHandlers)
368  if (!bridgeHandlers.TryGetValue(parameters.AccessIdentifier, out bridgeHandler))
369  delayTask = asyncDelayer.Delay(TimeSpan.FromMilliseconds(100), cancellationToken);
370 
371  await delayTask.ConfigureAwait(false);
372  }
373 
374  if (bridgeHandler == null)
375  lock (bridgeHandlers)
376  if (!bridgeHandlers.TryGetValue(parameters.AccessIdentifier, out bridgeHandler))
377  {
378  logger.LogWarning("Recieved invalid bridge request with accees identifier: {0}", parameters.AccessIdentifier);
379  return null;
380  }
381 
382  return await bridgeHandler.ProcessBridgeRequest(parameters, cancellationToken).ConfigureAwait(false);
383  }
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the InstanceManager
+
369  {
370  if (parameters == null)
371  throw new ArgumentNullException(nameof(parameters));
372 
373  IBridgeHandler bridgeHandler = null;
374  for (var i = 0; bridgeHandler == null && i < 30; ++i)
375  {
376  // There's a miniscule time period where we could potentially receive a bridge request and not have the registration ready when we launch DD
377  // This is a stopgap
378  Task delayTask = Task.CompletedTask;
379  lock (bridgeHandlers)
380  if (!bridgeHandlers.TryGetValue(parameters.AccessIdentifier, out bridgeHandler))
381  delayTask = asyncDelayer.Delay(TimeSpan.FromMilliseconds(100), cancellationToken);
382 
383  await delayTask.ConfigureAwait(false);
384  }
385 
386  if (bridgeHandler == null)
387  lock (bridgeHandlers)
388  if (!bridgeHandlers.TryGetValue(parameters.AccessIdentifier, out bridgeHandler))
389  {
390  logger.LogWarning("Recieved invalid bridge request with accees identifier: {0}", parameters.AccessIdentifier);
391  return null;
392  }
393 
394  return await bridgeHandler.ProcessBridgeRequest(parameters, cancellationToken).ConfigureAwait(false);
395  }
readonly IAsyncDelayer asyncDelayer
The IAsyncDelayer for the InstanceManager
readonly IDictionary< string, IBridgeHandler > bridgeHandlers
Map of DMApiParameters.AccessIdentifiers to their respective IBridgeHandlers.
string AccessIdentifier
Used to identify and authenticate the DreamDaemon instance
readonly ILogger< InstanceManager > logger
The ILogger for the InstanceManager
@@ -669,10 +669,10 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Components.Interop.Bridge.IBridgeRegistrar.

-

Definition at line 386 of file InstanceManager.cs.

+

Definition at line 398 of file InstanceManager.cs.

References Tgstation.Server.Host.Components.Interop.DMApiParameters.AccessIdentifier, and Tgstation.Server.Host.Components.Interop.Bridge.IBridgeHandler.DMApiParameters.

-
387  {
388  if (bridgeHandler == null)
389  throw new ArgumentNullException(nameof(bridgeHandler));
390 
391  var accessIdentifier = bridgeHandler.DMApiParameters.AccessIdentifier;
392  lock (bridgeHandlers)
393  {
394  bridgeHandlers.Add(accessIdentifier, bridgeHandler);
395  logger.LogTrace("Registered bridge handler: {0}", accessIdentifier);
396  }
397 
398  return new BridgeRegistration(() =>
399  {
400  lock (bridgeHandlers)
401  {
402  bridgeHandlers.Remove(accessIdentifier);
403  logger.LogTrace("Unregistered bridge handler: {0}", accessIdentifier);
404  }
405  });
406  }
readonly IDictionary< string, IBridgeHandler > bridgeHandlers
Map of DMApiParameters.AccessIdentifiers to their respective IBridgeHandlers.
+
399  {
400  if (bridgeHandler == null)
401  throw new ArgumentNullException(nameof(bridgeHandler));
402 
403  var accessIdentifier = bridgeHandler.DMApiParameters.AccessIdentifier;
404  lock (bridgeHandlers)
405  {
406  bridgeHandlers.Add(accessIdentifier, bridgeHandler);
407  logger.LogTrace("Registered bridge handler: {0}", accessIdentifier);
408  }
409 
410  return new BridgeRegistration(() =>
411  {
412  lock (bridgeHandlers)
413  {
414  bridgeHandlers.Remove(accessIdentifier);
415  logger.LogTrace("Unregistered bridge handler: {0}", accessIdentifier);
416  }
417  });
418  }
readonly IDictionary< string, IBridgeHandler > bridgeHandlers
Map of DMApiParameters.AccessIdentifiers to their respective IBridgeHandlers.
string AccessIdentifier
Used to identify and authenticate the DreamDaemon instance
readonly ILogger< InstanceManager > logger
The ILogger for the InstanceManager
@@ -714,8 +714,8 @@ Here is the call graph for this function:

-

Definition at line 327 of file InstanceManager.cs.

-
328  {
329  await jobManager.StopAsync(cancellationToken).ConfigureAwait(false);
330  await Task.WhenAll(instances.Select(x => x.Value.StopAsync(cancellationToken))).ConfigureAwait(false);
331  await instanceFactory.StopAsync(cancellationToken).ConfigureAwait(false);
332 
333  // downgrade the db if necessary
334  if (downgradeVersion != null)
335  await databaseContextFactory.UseContext(db => databaseSeeder.Downgrade(db, downgradeVersion, cancellationToken)).ConfigureAwait(false);
336  }
readonly IDatabaseSeeder databaseSeeder
The IDatabaseSeeder for the InstanceManager
+

Definition at line 339 of file InstanceManager.cs.

+
340  {
341  await jobManager.StopAsync(cancellationToken).ConfigureAwait(false);
342  await Task.WhenAll(instances.Select(x => x.Value.StopAsync(cancellationToken))).ConfigureAwait(false);
343  await instanceFactory.StopAsync(cancellationToken).ConfigureAwait(false);
344 
345  // downgrade the db if necessary
346  if (downgradeVersion != null)
347  await databaseContextFactory.UseContext(db => databaseSeeder.Downgrade(db, downgradeVersion, cancellationToken)).ConfigureAwait(false);
348  }
readonly IDatabaseSeeder databaseSeeder
The IDatabaseSeeder for the InstanceManager
readonly IDatabaseContextFactory databaseContextFactory
The IDatabaseContextFactory for the InstanceManager
readonly IJobManager jobManager
The IJobManager for the InstanceManager
readonly IDictionary< long, IInstance > instances
Map of instance EntityId.Ids to respective IInstances. Also used as a object.
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters-members.html index cb0d61f9df..22465c0148 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters.html index ae2bc6bed4..eca62ce098 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration-members.html index ac50922efb..c50a787587 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration.html index a52c8b8cde..affc814d29 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_registration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response-members.html index 6aa7ce4f1a..49eceae6c2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response.html index d23f812582..bd3fba2299 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_bridge_response.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information-members.html index e592f7e8ac..68fa0798de 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html index ef8aaa955e..16c307e3de 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_runtime_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information-members.html index b59ce11ba6..bba4da35bc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information.html index e0dafd941a..61384dc8fc 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_bridge_1_1_test_merge_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message-members.html index 2819bfe835..8e916ce621 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message.html index d3f09d214e..9027ffc6c5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_message.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update-members.html index 62d41496e6..89efaa8f62 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update.html index ee5f16c715..fbe44307d8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_chat_update.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter-members.html index e6177febb9..a954a366b7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html index 0405dc6bec..e7441afde5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_bool_converter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter-members.html index cadd601c49..478c2ca164 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html index 51897c7c95..c7fdc6934f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_converters_1_1_version_converter.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants-members.html index 9b154fa8a4..8b65c8b791 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html index 49fbf5bdbd..8a4ed4b4dd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_constants.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters-members.html index ecbfdebcd2..84550ccd15 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters.html index 18f97597a7..2faeb23972 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -149,7 +149,7 @@ Properties

Definition at line 14 of file DMApiParameters.cs.

-

Referenced by Tgstation.Server.Host.Components.InstanceManager.ProcessBridgeRequest(), Tgstation.Server.Host.Models.ReattachInformationBase.ReattachInformationBase(), Tgstation.Server.Host.Components.InstanceManager.RegisterHandler(), Tgstation.Server.Host.Components.Session.SessionController.SendCommand(), Tgstation.Server.Host.Components.Session.SessionController.SessionController(), and Tgstation.Server.Host.Components.Session.SessionPersistor.SessionPersistor().

+

Referenced by Tgstation.Server.Host.Components.InstanceManager.ProcessBridgeRequest(), Tgstation.Server.Host.Models.ReattachInformationBase.ReattachInformationBase(), Tgstation.Server.Host.Components.InstanceManager.RegisterHandler(), Tgstation.Server.Host.Components.Session.SessionController.SendCommand(), Tgstation.Server.Host.Components.Session.SessionController.SessionController(), and Tgstation.Server.Host.Components.Session.SessionPersistor.SessionPersistor().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response-members.html index 998493b5fb..b60ff167e0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response.html index 6563b69e4b..ab9f06d61b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_d_m_api_response.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command-members.html index 3f35c01639..b8015f15d7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html index 70d33b4d5e..9822ce7a72 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_chat_command.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification-members.html index 3f46868074..761d83071a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification.html index 0111cebdfa..d1463ff44f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_event_notification.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters-members.html index e11688b723..ac28ee0372 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html index 2ce2842595..b2ceefe1a3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_parameters.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response-members.html index 3b4a0c68b5..75f2414525 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response.html index 9298df54e3..3e87e6c2e3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_interop_1_1_topic_1_1_topic_response.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands-members.html index 78ee4974df..dc4a1c1a02 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands.html index a9f2bc542b..2790d8b942 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_commands.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory-members.html index 4a79e9e0b1..f016a10f14 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory.html index 076d03ed73..222a2260b4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_lib_git2_repository_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository-members.html index e1562c3697..3f27b475cf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html index b8b37ba087..ad3d356f1f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager-members.html index ebe35e6a44..01bcd137e7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager.html index c63364eb06..d521cadaac 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_repository_1_1_repository_manager.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response-members.html index 72174ed4b1..0e7c6098df 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response.html index 945eec460a..fa829b6b0f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_combined_topic_response.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result-members.html index 2c75dd6eb8..6b776397ae 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result.html index 9cfdc5eb83..f6e726d13b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_launch_result.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information-members.html index 86bdb16acf..8dca123fd6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html index 55a4e99367..621679f0c8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_reattach_information.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller-members.html index 864afc491c..99e5051f51 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html index 28953318e7..1339574a54 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory-members.html index 732d16b717..863ca6f4ae 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html index a5312aa6b1..ff5f039097 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_controller_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor-members.html index 9ae8df9905..1df3539632 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor.html index 915f3cbfc9..de541fc934 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_session_persistor.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -243,7 +243,7 @@ Private Attributes

Implements Tgstation.Server.Host.Components.Session.ISessionPersistor.

Definition at line 94 of file SessionPersistor.cs.

-
95  {
96  Models.ReattachInformation result = null;
97  TimeSpan? topicTimeout = null;
98  await databaseContextFactory.UseContext(async (db) =>
99  {
100  var dbReattachInfos = await db
101  .ReattachInformations
102  .AsQueryable()
103  .Where(x => x.CompileJob.Job.Instance.Id == metadata.Id)
104  .Include(x => x.CompileJob)
105  .ToListAsync(cancellationToken).ConfigureAwait(false);
106  result = dbReattachInfos.FirstOrDefault();
107  if (result == default)
108  return;
109 
110  var timeoutMilliseconds = await db
111  .Instances
112  .AsQueryable()
113  .Where(x => x.Id == metadata.Id)
114  .Select(x => x.DreamDaemonSettings.TopicRequestTimeout)
115  .FirstOrDefaultAsync(cancellationToken)
116  .ConfigureAwait(false);
117 
118  if (timeoutMilliseconds == default)
119  {
120  logger.LogCritical("Missing TopicRequestTimeout!");
121  return;
122  }
123 
124  topicTimeout = TimeSpan.FromMilliseconds(timeoutMilliseconds.Value);
125 
126  bool first = true;
127  foreach (var reattachInfo in dbReattachInfos)
128  {
129  if (!first)
130  {
131  logger.LogWarning("Killing PID {0} associated with extra reattach information...", reattachInfo.ProcessId);
132  try
133  {
134  using var process = processExecutor.GetProcess(reattachInfo.ProcessId);
135  process.Terminate();
136  }
137  catch (Exception ex)
138  {
139  logger.LogWarning("Failed to kill process! Exception: {0}", ex);
140  }
141  }
142 
143  db.ReattachInformations.Remove(reattachInfo);
144  first = false;
145  }
146 
147  await db.Save(cancellationToken).ConfigureAwait(false);
148  }).ConfigureAwait(false);
149 
150  if (!topicTimeout.HasValue)
151  {
152  logger.LogDebug("Reattach information not found!");
153  return null;
154  }
155 
156  var info = new ReattachInformation(
157  result,
158  await dmbFactory.FromCompileJob(result.CompileJob, cancellationToken).ConfigureAwait(false),
159  topicTimeout.Value);
160 
161  logger.LogDebug("Reattach information loaded: {0}", info);
162 
163  return info;
164  }
readonly Api.Models.Instance metadata
The Api.Models.Instance for the SessionPersistor
+
95  {
96  Models.ReattachInformation result = null;
97  TimeSpan? topicTimeout = null;
98  await databaseContextFactory.UseContext(async (db) =>
99  {
100  var dbReattachInfos = await db
101  .ReattachInformations
102  .AsQueryable()
103  .Where(x => x.CompileJob.Job.Instance.Id == metadata.Id)
104  .Include(x => x.CompileJob)
105  .ToListAsync(cancellationToken).ConfigureAwait(false);
106  result = dbReattachInfos.FirstOrDefault();
107  if (result == default)
108  return;
109 
110  var timeoutMilliseconds = await db
111  .Instances
112  .AsQueryable()
113  .Where(x => x.Id == metadata.Id)
114  .Select(x => x.DreamDaemonSettings.TopicRequestTimeout)
115  .FirstOrDefaultAsync(cancellationToken)
116  .ConfigureAwait(false);
117 
118  if (timeoutMilliseconds == default)
119  {
120  logger.LogCritical("Missing TopicRequestTimeout!");
121  return;
122  }
123 
124  topicTimeout = TimeSpan.FromMilliseconds(timeoutMilliseconds.Value);
125 
126  bool first = true;
127  foreach (var reattachInfo in dbReattachInfos)
128  {
129  if (!first)
130  {
131  logger.LogWarning("Killing PID {0} associated with extra reattach information...", reattachInfo.ProcessId);
132  try
133  {
134  using var process = processExecutor.GetProcess(reattachInfo.ProcessId);
135  process.Terminate();
136  }
137  catch (Exception ex)
138  {
139  logger.LogWarning("Failed to kill process! Exception: {0}", ex);
140  }
141  }
142 
143  db.ReattachInformations.Remove(reattachInfo);
144  first = false;
145  }
146 
147  await db.Save(cancellationToken).ConfigureAwait(false);
148  }).ConfigureAwait(false);
149 
150  if (!topicTimeout.HasValue)
151  {
152  logger.LogDebug("Reattach information not found!");
153  return null;
154  }
155 
156  var dmb = await dmbFactory.FromCompileJob(result.CompileJob, cancellationToken).ConfigureAwait(false);
157  if (dmb == null)
158  {
159  logger.LogError("Unable to reattach! Could not load .dmb!");
160  return null;
161  }
162 
163  var info = new ReattachInformation(
164  result,
165  dmb,
166  topicTimeout.Value);
167 
168  logger.LogDebug("Reattach information loaded: {0}", info);
169 
170  return info;
171  }
readonly Api.Models.Instance metadata
The Api.Models.Instance for the SessionPersistor
readonly IDmbFactory dmbFactory
The IDmbFactory for the SessionPersistor
readonly IProcessExecutor processExecutor
The IProcessExecutor for the SessionPersistor.
IProcess GetProcess(int id)
Get a IProcess by id .
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_topic_client_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_topic_client_factory-members.html index 873d5f604f..b6cc3eaf9b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_topic_client_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_topic_client_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_topic_client_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_topic_client_factory.html index 8042aa1918..a95cb36128 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_topic_client_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_session_1_1_topic_client_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration-members.html index 2f0215f210..3009638ee7 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html index 2b774b1463..6e9b1d2da9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications-members.html index f2a2e214a4..4a9e9e581e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications.html index eeadd83994..98d1624e2a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_static_files_1_1_server_side_modifications.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog-members.html index dec2ab866b..1a10d285b5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html index bdf37cddbf..421485e3f6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_basic_watchdog.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog-members.html index 920d72df0e..b62858dbee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog.html index 172ca5a488..bf4f4e45fb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog_factory-members.html index 91e2f412bc..7e3f7ae0e4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog_factory.html index cd5b89827d..2359cda671 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_posix_watchdog_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -173,7 +173,7 @@ Additional Inherited Members

Detailed Description

IWatchdogFactory for creating PosixWatchdogs.

-

Definition at line 19 of file PosixWatchdogFactory.cs.

+

Definition at line 20 of file PosixWatchdogFactory.cs.

Constructor & Destructor Documentation

@@ -243,10 +243,10 @@ Additional Inherited Members -

Definition at line 31 of file PosixWatchdogFactory.cs.

+

Definition at line 32 of file PosixWatchdogFactory.cs.

References Tgstation.Server.Api.Models.Internal.DreamDaemonSettings.AutoStart.

-
39  : base(
40  serverControl,
41  loggerFactory,
42  databaseContextFactory,
43  jobManager,
44  asyncDelayer,
45  symlinkFactory,
46  generalConfigurationOptions)
47  { }
+
40  : base(
41  serverControl,
42  loggerFactory,
43  databaseContextFactory,
44  jobManager,
45  asyncDelayer,
46  symlinkFactory,
47  generalConfigurationOptions)
48  { }

Member Function Documentation

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base-members.html index c79d83e72a..5a7ccbbfef 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html index 5f824aff1a..cce192a250 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_base.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory-members.html index d50056c45e..bc101d49b6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html index 89c2350136..f480f04327 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_watchdog_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog-members.html index e4b9977fe0..c43082f9a3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html index d46af7d725..07504e89e6 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory-members.html index bcc56b877a..23ee0d15c3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory.html index a328bb3a67..5a6f711065 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_components_1_1_watchdog_1_1_windows_watchdog_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration-members.html index b2b10eda33..d09630551e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration.html index dc77c7b3d3..fbad66e7c0 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_control_panel_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration-members.html index 6968aaff31..ecb2c6c48f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration.html index 30f95c8e0d..82f5571a57 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_database_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration-members.html index c698310e63..3bcc0a2631 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration.html index bf62423390..5ff189f577 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_file_logging_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration-members.html index 0efa72b6c3..48600f1109 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html index 7639475c70..2216ce8117 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_general_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration-members.html index 4d86d46495..8e75456615 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html index 1ee583fa81..76be09357b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_configuration_1_1_updates_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program-members.html b/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program-members.html index 48e820a71d..401d2b198d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program.html b/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program.html index 8337e2fb3e..5aa9073b1b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_console_1_1_program.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller-members.html index 90871b3f74..ba17f45020 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html index e43446e12d..16522212b8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_administration_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller-members.html index cab88f2cc2..7b83da34a3 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller.html index d9ad98fd5e..22708b558a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_api_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller-members.html index baf9269975..fd69b4a579 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html index 1af0e9b51f..9725ad87ee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_bridge_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller-members.html index 8829ccecb7..245cd87187 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller.html index 3384937063..8f72c77991 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_byond_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller-members.html index 41a488e096..56f56cf3fb 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller.html index d053d537a6..77fb7d1ee1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_chat_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller-members.html index 56e165689c..a872396266 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html index 29eb9963d5..90b35a7991 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_configuration_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller-members.html index c7c3dbc04e..115c17ddb2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller.html index 775861c683..5ca8b5c232 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_daemon_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller-members.html index 58094f9501..747e2a5aad 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller.html index 4df04183dd..6e46102618 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_dream_maker_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller-members.html index 06d7d36ccf..ec510e5f99 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html index c16e2eb9d2..9d542b2d4c 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_home_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller-members.html index 530373bec9..6f22749244 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -131,6 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); StatusCode(HttpStatusCode statusCode)Tgstation.Server.Host.Controllers.ApiControllerprotected StatusCode(HttpStatusCode statusCode, object errorMessage)Tgstation.Server.Host.Controllers.ApiControllerprotected Update([FromBody] Api.Models.Instance model, CancellationToken cancellationToken)Tgstation.Server.Host.Controllers.InstanceController + ValidateInstanceOnlineStatus(Models.Instance metadata)Tgstation.Server.Host.Controllers.InstanceControllerprivate
+ +

Corrects discrepencies between the Api.Models.Instance.Online status of IInstances in the database vs the service.

+
Parameters
+ + +
metadataThe Models.Instance to check.
+
+
+
Returns
if an unsaved DB update was made, otherwise.
+ +

Definition at line 673 of file InstanceController.cs.

+
674  {
675  bool online;
676  try
677  {
678  instanceManager.GetInstance(metadata);
679  online = true;
680  }
681  catch (InvalidOperationException ex)
682  {
683  Logger.LogDebug("Expected instance offline exception: {0}", ex);
684  online = false;
685  }
686 
687  if (metadata.Online.Value == online)
688  return false;
689 
690  const string OfflineWord = "offline";
691  const string OnlineWord = "online";
692 
693  Logger.LogWarning(
694  "Instance {0} is says it's {1} in the database, but it is actually {2} in the service. Updating the database to reflect this...",
695  online ? OfflineWord : OnlineWord,
696  online ? OnlineWord : OfflineWord);
697 
698  metadata.Online = online;
699  return true;
700  }
readonly IInstanceManager instanceManager
The IInstanceManager for the InstanceController
+
IInstance GetInstance(Models.Instance metadata)
Get the IInstance associated with given metadata
+
ILogger Logger
The ILogger for the ApiController
+
+
+

Member Data Documentation

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.map b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.map new file mode 100644 index 0000000000..31ec0326d2 --- /dev/null +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.map @@ -0,0 +1,3 @@ + + + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.md5 b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.md5 new file mode 100644 index 0000000000..1f1a89ddac --- /dev/null +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.md5 @@ -0,0 +1 @@ +f25b73ef2985d979b8d9cd9d7bb7f046 \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.png b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_a69e19a7f501fca2dd5d707f34edb4c79_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..79890de3e008005fdcbc2894ab282b4f3aa4098e GIT binary patch literal 6017 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 HS>S&G3MAq* literal 0 HcmV?d00001 diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.map b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.map new file mode 100644 index 0000000000..e53ac8c519 --- /dev/null +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.map @@ -0,0 +1,3 @@ + + + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.md5 b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.md5 new file mode 100644 index 0000000000..dd6716cd81 --- /dev/null +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.md5 @@ -0,0 +1 @@ +6432885cf6bf5b9e2cc5d0d984553158 \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.png b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_controller_aa1974818becc34b9aa12a67f272016d2_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..c4fd57ebe536a589b6587bc17718575120412cbf GIT binary patch literal 5395 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 literal 0 HcmV?d00001 diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller-members.html index c0e4a7ada6..5387df9aac 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller.html index d0bb131d92..8eb5e06d27 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_instance_user_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller-members.html index 134d354b00..8cd07e4b23 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller.html index 4615640921..4589233855 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_job_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller-members.html index 3424481438..c8421fede2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html index 3ff8d7e190..beee09953f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute-members.html index d59c118bfe..348e2bc4ca 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute.html index 68fafb8c8f..334107ad5a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_tgs_authorize_attribute.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller-members.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller-members.html index 8689869849..bd5e97891d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html index de2d7f49af..81d9f40b44 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_user_controller.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application-members.html index 68501b0bb2..1845ee5885 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html index 54a796266c..4e49134acf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_application.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer-members.html index 6feb06ecdc..b1ef3f5a79 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer.html index 311a039bba..3d9f32b5c1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_async_delayer.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory-members.html index 632cfb3958..f6bc0d41d5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory.html index 32e7a4a145..e8c2fa910d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_git_hub_client_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension-members.html index 1f93997cc0..4c2c573ee2 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension.html index eec8ed0d04..d74b068de5 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_open_api_enum_var_names_extension.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration-members.html index a6d8e627fa..7cbf7aef5b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html index 4bd4215ed5..6c6eef801f 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_restart_registration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context-members.html index ecb1556c73..5d1a466f64 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context.html index f86ae9900e..80f0b039f1 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_semaphore_slim_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder-members.html index 5ec06068e4..dc2f598f8a 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder.html index 063eadef0d..990f3a6f10 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_server_port_proivder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration-members.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration-members.html index b66eb5fb90..6056d048e9 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html index a940e0cb84..fe8620ae72 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_core_1_1_swagger_configuration.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection-members.html index 7b537f6bdd..3e38d6c54b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection.html index 5aab3f0244..c670395772 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_collection.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory-members.html index 0b5b59e517..49f6351090 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory.html index cb4788315f..32b5ba67cf 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_connection_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context-members.html index 772d27608d..9ac819bbe8 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context.html index 57da8e9105..ff729d5dee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -543,7 +543,7 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Database.IDatabaseContext.

-

Referenced by Tgstation.Server.Host.Controllers.InstanceUserController.Create(), Tgstation.Server.Host.Controllers.ChatController.Create(), Tgstation.Server.Host.Controllers.UserController.Create(), Tgstation.Server.Host.Controllers.InstanceController.Create(), Tgstation.Server.Host.Controllers.HomeController.CreateToken(), Tgstation.Server.Host.Controllers.RepositoryController.Delete(), Tgstation.Server.Host.Controllers.InstanceController.Delete(), Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions(), Tgstation.Server.Host.Controllers.RepositoryController.Read(), Tgstation.Server.Host.Controllers.InstanceUserController.Update(), Tgstation.Server.Host.Controllers.DreamMakerController.Update(), Tgstation.Server.Host.Controllers.UserController.Update(), Tgstation.Server.Host.Controllers.DreamDaemonController.Update(), Tgstation.Server.Host.Controllers.ChatController.Update(), and Tgstation.Server.Host.Controllers.RepositoryController.Update().

+

Referenced by Tgstation.Server.Host.Controllers.InstanceUserController.Create(), Tgstation.Server.Host.Controllers.ChatController.Create(), Tgstation.Server.Host.Controllers.UserController.Create(), Tgstation.Server.Host.Controllers.InstanceController.Create(), Tgstation.Server.Host.Controllers.HomeController.CreateToken(), Tgstation.Server.Host.Controllers.RepositoryController.Delete(), Tgstation.Server.Host.Controllers.InstanceController.Delete(), Tgstation.Server.Host.Controllers.InstanceController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions(), Tgstation.Server.Host.Controllers.InstanceController.List(), Tgstation.Server.Host.Controllers.RepositoryController.Read(), Tgstation.Server.Host.Controllers.InstanceUserController.Update(), Tgstation.Server.Host.Controllers.DreamMakerController.Update(), Tgstation.Server.Host.Controllers.UserController.Update(), Tgstation.Server.Host.Controllers.DreamDaemonController.Update(), Tgstation.Server.Host.Controllers.ChatController.Update(), and Tgstation.Server.Host.Controllers.RepositoryController.Update().

Here is the caller graph for this function:
@@ -557,14 +557,16 @@ Here is the caller graph for this function: - - - - - - - - + + + + + + + + + +

@@ -1373,7 +1375,7 @@ Here is the caller graph for this function:

Definition at line 32 of file DatabaseContext.cs.

-

Referenced by Tgstation.Server.Host.Controllers.InstanceController.Create(), Tgstation.Server.Host.Controllers.InstanceUserController.Delete(), Tgstation.Server.Host.Controllers.InstanceController.Delete(), Tgstation.Server.Host.Controllers.InstanceUserController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions(), Tgstation.Server.Host.Controllers.InstanceUserController.List(), Tgstation.Server.Host.Controllers.InstanceController.List(), Tgstation.Server.Host.Controllers.DreamDaemonController.ReadImpl(), Tgstation.Server.Host.Controllers.InstanceUserController.Update(), Tgstation.Server.Host.Controllers.DreamDaemonController.Update(), and Tgstation.Server.Host.Controllers.InstanceController.Update().

+

Referenced by Tgstation.Server.Host.Controllers.InstanceController.Create(), Tgstation.Server.Host.Controllers.InstanceUserController.Delete(), Tgstation.Server.Host.Controllers.InstanceController.Delete(), Tgstation.Server.Host.Controllers.InstanceUserController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GetId(), Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions(), Tgstation.Server.Host.Controllers.InstanceUserController.List(), Tgstation.Server.Host.Controllers.InstanceController.List(), Tgstation.Server.Host.Controllers.DreamDaemonController.ReadImpl(), Tgstation.Server.Host.Controllers.InstanceUserController.Update(), Tgstation.Server.Host.Controllers.DreamDaemonController.Update(), and Tgstation.Server.Host.Controllers.InstanceController.Update().

@@ -1399,7 +1401,7 @@ Here is the caller graph for this function:

Definition at line 67 of file DatabaseContext.cs.

-

Referenced by Tgstation.Server.Host.Controllers.InstanceUserController.Create(), and Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions().

+

Referenced by Tgstation.Server.Host.Controllers.InstanceUserController.Create(), and Tgstation.Server.Host.Controllers.InstanceController.GrantPermissions().

diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.map b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.map index b9cfe869f4..44447839ee 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.map +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.map @@ -6,12 +6,14 @@ - - - - - - - - + + + + + + + + + + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.md5 b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.md5 index 87114ff7c6..7ea48f621e 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.md5 +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.md5 @@ -1 +1 @@ -2964eea38a7d97f33d76c95f5eede4d9 \ No newline at end of file +14dfac07df246017ddae16702afe1811 \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.png b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_ac2e88d53bf1b6ac87d175d83ed39da7c_icgraph.png index 48aa8dcfd1588d13ff942f855b941a477b5639a3..2cd918e77a0dda799e84d9d865c1969a70d05526 100644 GIT binary patch literal 104168 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 H+|T|M+oyLx literal 100546 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 ts5(#_${vp=FOwLaQ zQleep&uU6gYP7YDWdfptf=E@GIf=Q2ZiS_yt-Xy;z&i8VS}t)^CaLj}+82NxE@Cyt z^64{1DsFLm^z`&v+S+9DSn%kRZ) zayzG`_fM@@|8IJ&GS5Z~YRbXYqT&_D%HihGe@!7*V+?86afoz+ST!*LNmL0a1-NtG zR4lvZkUXtgI~F8?$j+$`r@@Go>&F)d$8zdp8&Jjw#(4xgj$f(l`%nZ z^=Od%ywFSW?TShw*JjlEEvNSZWGn9frbbO?@yx*Jp8-j{3h}NC+#+HR&+x@k%*0^nv$A64WMu)I~MpdU+0NB^%QNDXZeAw!}$8z?;nHuJ#}I$TrtS zPQ6QgtoYBjmpgJ?`+L7^hssLu)j8g>xlu(eUELDmQqf6B;|`rQzvom|vHtyU1hWsl z-=?S(KS`fm4?|p|!KA~Kmmgzo2=$Mdt>sOzxyq5rI}l&;2cB%49xj-+nTLoIPuT6D z#~`paed90*3GsuxJ{jl7R!i@n^lnH9=J(%6@x;U9tjMzA zcJwronL{)R0kuY1Z#9;&e@RHMyI%<{2z+oub0oQXu#0n0QJb;gwKs-V961zE8Xhby3E;RW?aWs>bzi|mUw`6!)jRnE4m<{L z1I7yjfN#u!ZdiTmWF;P0k5t`UgxXM1Q|}-Ojke6pC*a#{Og%`6&k_mT@eb%_UK9t8 zTwS0#dD5r{BXt`alWbY(9v&WRM$v*JGYgf!>{&a18ll|x- zHfc2_kwT1elx9zTmh4vS8y^jV`F62fx~Tr^2GDRO3|{c@djL8kj5z=^JyO2R^h=k& z^$YM`^xOoHgo?zd?WRtV^Ep^09&C;$Az7L;^1J-pmi^!zHdf)v0fBw*&hQ#}#>L5* zjohSS)MY$#kcJq2$;yflU!mXAxb#rJ=;h11Ph*@%97a(hAF^a&6!DHx#GVeTmWp9; z_r856z~B}rXM|$R|KrC4U#sjWL<=2Xh^*@J7=HcUH@$;>3VYVY1b82L0s}DZzeGZO z7L@ziU!Ptgkn7{se#4K>gOTEm$AcJpzIjtz3a#*|yE0J%Dxw}wm)!74-g<|e`2JBx za#N0Fy88#CJ<0WtQ&UM_@tL>)YS<|#SZ}*rbn?WBYsAICmlT(l-t(Y2vIOi<=z?58 zNq?QFw(h@+I(iI`7JDPSi+A8gn)P4W-yE-``caDwp7Soc6)xH)CY2TftE7LU(SOn>}um_1ToJ}A6Q#SKt*5`)Wi7;t zlC}Hq-)|ONZd9l9mTw2&Be|H_L!;nIOcH{Eu7(SISv9}VnfmDrJR>`ai8^p@y5xFx zH>#IdB2SspOiZ?d*!I!h#zjVG-)sa(7f?aLCqj!2j`ckP`*4Uefrb+QB{yb2d=)Xi zAf;gNmq1~%F!FgH<`)0_9q?tz;t}%m{gkz-VA9Pus?rzG-%a)f?0E{}&Ob=G8`ahX zTgq1n>H&wjvCl|&+Dt#;;GNxpQ(youtE^m(m8v+>VYjzEBce|LYNDJu_Y0mv7>`o1 zt7c{tVaK{L#z{u9lW~HSkm}>$4;OU`9exz#U(wgNbRZyOAl08k^eo^@d;wC`bc3x9 z4h}rVzZhZudFkp^rJGl8?HE?Ep=>HM8ibAoR!dwNQjW>1|gzd0axZG1Qffh8P#d<-xT zwVoZKGwv#&G%+!OoraZq?E9&)&U_!hQoW_SMa#gAd>R!MfIoBq5~{~4rw~smHOs#5 zr|qq!kE>bk92lSju;*OS2mg9vU`))YGzw4l3LFY1LBT5DYLo=M;#8I_Ivmp+O?ro6z2ikVu263tO+KP6T z(>hzQ{n|Dh;z)$)8>rf}Wy?r1pEQZY4rDSR4izy;@bGG!m%VoN#VJxvhgmv=y0{~r zxfdw!Cg*woxV%1ucSGL5arW#U!XXl!Jt&}?aAnf(e4{~1b}w3L2$spwaZ|Ihp8Qx1 zzPuTdMqw?=0;0BiRFvk2_U23zO{h;$2~*$!NHTi~TSX!u{Jg~wEeOH^b#)4WS@R$Y!=I)8r8Q?%fxl>Fy^F46h}OPG8S=`iI**=l;?0c?cAF(-RX< z4Q}J`<9H8|#o6s1i-utAsmCfLMmY-996#aO(o+iFuO!z$h(2aiN{a;_KVH|$Mq2mp zp`l7V%rCHBmuH(b-7~Bfr|vctIynK3Q(tt4B<|>=h=lqD`+}lS4Jciq_0mbt~PCY62OKm@ClQ z&=|7_@3Q}AWL#u{ML2Sc1|P6<4WU?Q-~x4KpTNyxVgt(Kq{_dzkH|FM0<$|H_RtZM z?b_vNvW97&yy}w4p^gNGYv=CQZMlEn#ljik(}W8kQrr>ETh!dFvY|l=V1Qj1XzQ5Z zbL`(Q)^9=9cq9KcPNM?oLM36cilq|>G#CbfFdE5y2&K|JE#&MG4sCE9#iQLlFmQ;c z{PhJ_u5t4FD22nr!|xc#y=s@2oF(QfwyY??Vf0mkCzzNE0Qn=#{P5rboA!>YaZNIN z+saU~MA_Zlr2W!E)UDwxju~BoOp9-n)jgaU&83YH+YnR%X=I-Zm0vu=RuAE@?E&CUzS1l5IWzW!% zH=G8+;kh`JXjPc_PazYlMHcuJ!Xo0VcHRCQ!`E*X0_g_L$$QTk&lIn%s!;7+WN!Xz z%E8GApQ=`*&4~f=fnyUv5#7MjIozoa2$Xz_=PxM@co^Y*9cV>y-8)uKUm^b&FRrM^ z#ykQ_Y-(vKg?MS$^Eu7-wQd(9ZMCt_B6@CK# z4Gl*CvwO;1uTYpDdKP;g_=xAuf|Z9`Kwv4~&?ZQ7qCTfPR!)5O@_;ViBXSzv8eUWv zX+3e8eSM9V$9Hc%Y=73gdwYqMCZndd2X0(aedXIQ2-!0={UDhw+P{--weIInXB^>J z>{QS%>eWP=MX35UoY1`7IIl2YGNpKLETL15sHUXY*-Hb%mbWpVTlrzZ#ldU%wIca; z0i1Hk6yF<)U-mNC{pw&bBjI)koh9r@&S3x*tr#l{6oQ39z48wAka z__0BE4-Yuw3Bo(N9C)-T;F8A{?hYab!$-_AuHAoY>&V64FI?e&h>(xYfme>>&QRK4 zT@P08$Inb<{c#T_d1y~7h(k6gh)l?FA8!yR!;PlA9B3E7azFI*o^sPV#X21=?WG$D z`S0x|ztG1X%zc~vP4!7ZK}b$Yq|fFLkuu{9ipv$tr8<1U1eAVT;efO5B2Te&Yi&h{@p-4J5 zG%c^_@4Zlc2~&HwuYr(Z9=EuTZOf=yE?E>t7KekakN$Z;+0*G?(hEB-|B6bWNMg)T(UT9A(1 z0r^K4|bZkoYA?RYk61Da>Uvs0vf_IaGfV+-Tr~gCk zj2wl-RMHKDG4F{d`Ps7p+MNNZ0+zd3*}1@O7fsbF7GV(;VF12i8sXoO z>NknU1#7ljV5sJb>>Z*cgv0~8bI>~Z*oT+{=+m=_4VnB7PAWnLk-xO1uD&s)E*>zy z<=BiQ_^lH&E7U+~He?mj8=rW3c9a6ckm?BLm=F(j3%nratTRIc&Z)Z1eJhK(8=(GX z;?Qz|241W6j2uD8&9_Uz)l?$JvSxh;2_?3Oh??o#h!Jt3#_`+kB4d}Cnr+^Wz3&Ew zpe~26F%f^C7^&#}V1-Vm^!+svMxM9`_4dI@>pw6PKr=Ydb`old|G+mC69%32QCUB! z6vg$j=*Vf+9{eFnaF=)PYl|Fy^fnsE59ZYHGo?6wd+8WDGkq4=0|1`{tZ|USrhv$N3xv3y$8!Lc>|$6 zOI+-4pw&J}ON%{kVZaI+VRC&SlkQI3Dl!Z<#3kGqgoGoA>liKdhju5sOjC@9a8t_q zK0sc7I@BBjT)@4a8Et2BcYg=oD;X1SoyT)Uj8JiT2<=hy9ZIG@B}HP}t3ugI!IrK~ zyDy%s`0SfBTRH(en-mHY0cYqFy_5UU(n_E_>JgLNS{f%WujSh_(L(}9+jWMy+8C!& zC?eI>+jK_TCZPaC`+w1sJZ8|Ds)Q6WkB}475;8J}9Tx|7j+4gcfWPTB#Bl=M+<0|wVv(_cKH*mG zM>#PNx|}U5X$;6k%-()K!d_qj&h_@aNYBOx+4!sQQz#}7rO{00mP|Qewt9^{7_qUO zKSg0_dF|A_YJru-L5Gcn!-y+W0_&m?;CXEJtFw*}06ZIh)L;Jd`tI6VM=10t^YWSw zoE+mKL|jT_9b3gc$$?6gg0+8&m$xiZ*wJF>T$4BX6KKMa#PfM!s!DERad36xMs51T zk7YpuUeBX3LRHM>>UCNC(a23J@6>!dE$|#!Lyq&iv}c+l%A6Sk#D@_~>~7+ZwqQOm zRl0k!<)?qb~gSGzqUUca?2h!A42U~Iz9^)@Yy<$zSu z6GUb0Vh!JV?R$>Z%clC+lv74+mIQZPIc2W=Df`f^y)URZ!gA&dnb{4lqN;-sbYXd1 zx+QP%c=KOQH+M-~rS1UjQUR^Dv{8aSEpw%6L$`5f<5Q)9X9_n*W)yq1Iq6&RE7fBi zPTIB6=Lvy9TY6v5AAJbh(OGVMD1>%xN=}xCkA=9s{q=|ft!a?nkbuFEtm)(iJ8rFV z-!+TqbGz6j&I2B&qI>(MSRC|tVjm%StydGmqWAVZ1~?!eg7CAOnz~}LS#$T#{M>yo z>d2P$qly-LM2YWS+1W`;LBF#C#NVE!S!opBh+|?xFs56n$L5KVTOv!dYEPhNd1OS$ z)*@W6{vdC%wq5gN;3hX6xoMiuX{M>Fid3SLT7T;_wG9lA*U9D@Ao8%EP(XykN%f-A z3w#1xt*@1~UbxkGk`)MUSzB7b(-#X{M@GY-jq@WTYw-i`<-3Iec=^!>aPJ?Zs4vCH z$gopr2ZjUPfVG!qo9_@jm;M2|lA09mm6fI9BC*inG!(YP;x*9e%)1E!&A!6bbK4;s zz_(Evm#s>=8F<|$|0{%ZZ{A66H`^hvLhKmV5R#|8FcFOB5Xk$8fX#!kZ1X{Ynzx5n zTwKl^JSbG|PSL7g=N3>@H21SPWx4qaRdgi?#V{K^wjmFb@DsA0*eU)*0-4u*1xrJK zt^);)jEsVUgT2&c73;}tZ9h!@{w{gwjwBg%Ij96k9-&E*b`rogG&1rEA#b%W&K}v; zk&|9j^w z#1X62Q$p?Od8z0>c;V3`LaZs}%@(A@&vl<4nJ0uHr@#Zrvz9Ni5P19Qzd&1FhP{7h zyGpYyV?;V`;7I;YlJ+tYzC}TQ9BRG~u&@dMA+U7TX|%)XW{^bz-^BduqNhjwW6pT_ zlI=AfO#6^*SUXT}Hf{S$ca(`KuA6Bvi^A*cX8qA`x-S!@R2JfH*PDE{|K+&9uJu=9 zQfYmOt48}h$=^L53l!9wqn~?zswLSxZL`)A{+sp5;*MWMd78~%8h@F0b&b!PI~BIr zXAMR!9y}bKmiFjp`Ale{&Azxh-|HP^qeT3+vs#nb=5GKCF!yiA4!-}i^&aW{x|=TY zl(>6zIWuV5BkwwLN8IuSiL$vqL%TG!RGqD=YHDWvU#ZoRD6RJ+{DOf2SB6PfvZa1$ zCzcL@H~z9{z72et`)6mT|6ruuF0{@{f@#hrTio<%7yin{OqT7L*B$(^8$$3z%k!ld z0gr<1_@;SS`xN8#>(^f|B&I>=4Qh)dXw9IS66AFf(UpNAYu*9K#V^UoxM-wEW4MAs z>Ip#HTtnUUETG&dicc}_#6MrZf0u-zOK(f4hAolBMugg5ytpYLF>zVA5TOD%mm^;A zKA;DI60A+yztuh+XYKd36IaDNr7%ie+y3l%UtsX;HYO(3#$D1DC?myS>yeOMkto=` zQ=&}0E-(KWWas|D!DIfQ;NsEXKdD*Zi)Ih<-1ODRE|;wozzZG+h%Axa``r5XbdAvT zPOvBCq0&bP2BKjMTR%yfRoBKyPvTX@B%THZxk1IxH8ABG zfkz)NiGq?+zoMWtRQ?KTY7g3zTwU)1C6KHUJ ze5#SkjT@ICT@dNXFVBhl$(*E>?;+6uS!h~+cz3a{a`sKGCOD}qP}V^pt6?S(UPkB z#qeCNPw^;(bz@k<+`p%3x$Hm0lz3A35}u53>?r=_N5ho#}kfJv+TrS|djqMg3F>n)+_ro1Kv zI-4#^kUOoJ`$2Q*AV%~hGoz5vn!TKcJvp$Zwm?vy80q!H5C*%cI?=}!SQe~!m1K@ z!OBog{c2}*qeWzLL`*}2(zlu#D;wX!;eoOF;!v{@w&ll+)FBhzVVL==MwWR;U}8ovq`vN>b$Aee93 z^3fwLXdoaNV1bVl7WkW%@g%=KYqWcKS|oIJAs~MEtJ9)MlYC?L9#T87zm3QQxf zYib5avpLYhCnj^>b6~9yK{hlsMd#)+BV7zGS?{V&!$<1QveH*SzD^_z{9b5`;%1Y! z;8W>Lj?iVn^Y8xc4$K$rezvrDLVshw^fwlp*3|iJR=-w776kpdAM_Y>lF*3=j94v+ zOO!rqGzj)!71*EInR9DsxKLh@B|wWL#rehed*8l(rHYU}0vszCJ;7yD(~m|@+S+f* zzI^dgP7KC7U%GYcrBN52jXT&Vyd48r_&GpxMn2hbsTldIho9>dem*xB@crKBJ9>Io zBqZD*Q@&(rnbBL9``O&o{)c03TAEVG$=h545wciiV1FtCKEs`Dw7hC!lJer};g`a8 z86b;S8fA7IhHH!^|9j7`$5Qe*ASDB69c|qiy0#RyTcsj9?3hXOkJc72x}RYyssy$3 z(7}Tey?uS}va(wG7=J}1=5}q@EKhYBsZz~)mATfI)mKAD^?lxzrk1mz^*(UVni9i| z?hY&SQ;vDcqfgcA^m!20fyCmf?Rn$a!44iiOpK&9ck;=<&RH{=#SPQQ98fzY5%WTs z+1Fut4bl~RpYZTZt@Le8UCfx0B6jiuw$XEjEzV_S66xX`(c`B{*_j5wy|Nxn=jA+> z_+_l)kb%e9w>V@7VN=xVh#qL!#VF(&c6oUg@F|ayczUEu!p(muzf`n?7ov>$nxt`#*T znU$}tNLQ-+2A!9tDcCAbE9SVqEU{8A`i1?(D4lwq^{r7;PflliJo5b)E->Xylo(XM zcvAsQxXXj)0!6{M@|Qm-j6c@U>AYbtzIWL)Dz?XE2bsJxMuWueYTlNlsP0>%tI zxW7M#XA#C(0Spp3&Rtz+hEp2sUWdGxcbAI6jV9&b;CS6Uoa(r0`^d_wea_0tikOq2 zblBz!BknP!wE4RZzarH3V=JM3-P^m2rl~vGsSqNcaD{ z^NRFO;Xm)z=)vab2_*9Mr%yDfEQ%H7gzvV80u{oH6F$2%7+5WIyY8kna=67N_v1wO z!pv&C1dqW=&u+GFY4>duZd$94UbkQ4n(HaU8=5LscGO}TeFtL}@3{hBL8dF!g5|y6 zL`b|BPzlgYVmq7j>blVtnG}#~&K!T!*Wc4V!*=%e*YB%Q*8PFv3pMLW3WDL(aw*L* z+1ah5X4_ng=N6tY8#}ieW*Dg`DWP<9f5CH~hKGp~tmVl@70pFqV{`MfU@aK7^L5#u zMUb43f1;>VOzp5)_pw}GM>da~jZ0}IQ@%!f$KHAPHXTPhfsnG-!z zaJ0#-%-L^z$DdeO970oHb&@n9oGpemq$MTu+j@NU;mRZ-FCVDskffeXgCpU*)0zaq}c0fzGeA z#z}$Q zM_GhzX-7v#^-WBOKvA^WXq^Qla{=$74}TLM57vs!&2)ocBTWN?1RW>nd!j#Z5BF7N z``K=ulcJ*bv&Kq4G~baaJ(i`5%}bqmYVtJs7%8=x=1@oLy6tF`;KP1T?2p7=$>=9_ z`sG#QEBSV3#`KS$HdznHM!UK^UzG>I2sS&oX|QItc?hEn5u-?C9KRH>Nci(e;9GTd z(2pOo?Q8hITe+4W@SljEfCaFSFEaMS=o{g`AhgwqdC0rv)U-70yCniddKK0ZO(#A0@D=94}rLBE9Au(*? zr}*}t^?h9oqSTZO_RDvzwea)RrP=`F5@wS--7x__*tt`vl#i`fT$9-Bx`T{5o5yNw zXWr6KVQ+_(TyNLjU{CYoShVeC)iPO*vj!g|` zc64@qZ?3EbEMu&Z8M7ZxiGM8zkTNSdrJ*f-+tvu(>?YikC!LxvnD#S7v zr?gL!wzbR^U;NnSqCdMCnd^7be=l9}a#&L7_PK;8F2F`;=SaJ{oGu19?|`J-2;H zx<$QEAGO9{YnycGsy+SeY**aIPl=E8Q$lLUbiwr8Vc9&=st{q1wzhj4Z%W)%O0N7h zDO!e<((in7k~+PgIZp_`v%Dn1vlClN^aVb=mq~s){e0)L?n+f*p7&rB_YGV@g}o*h z4@I-XH|n%uhb`kVmCnbpkutqj?o?YjahmY-%g7`U*Y(BO3QqG zmw~~niLkB_X_e5eH6qIos-r}&5Q~>=l9h@>;fv^s_(3RywGSTrPT-lTw~`e@`P0;%$3V@ajX#DFqmeG1qn)mkZAe zq4ru}Txs{zf7C~Zi+D~z@I*^`;uh}wne|g98a$Sxs$MT%95n!k#MPO&9D=;O*S=OA zD_fji_w!?Rg73SN|7l(8;t+iv;@K*F_N9*E`CsuDSDnfO9C;|Q%Sqa=Tum?Kh$cnn z>iH!7tez?|+XWY@G=FG+dluE5TH%OuKB7&VIxq^~zSi@)f`VVy`kEZ-NXsO(dGjPS ztKHCpH0<*6v@auG!tb92pL3prtgpPo->mO<_tXID70X?>3?=&25lw43-Z^TKo9aqM zK^-W^#LOHR8VVlome7jXIrx$<4zhcDdoF#(bHeAuGZR33tz%Z5Hb>BYH12Zs6uPdi zK4Pxsm<%PF=MxsJEe;N*hgc|{p88)=Tj1Z`^Dz0z)hSCn*cqzJ2)8^Y&JwDt8Vs>_dk#=MJL^Ct`a}zo7@q#g0g$eGCe2v|%#m+7+ zo4#mb==JV}pw&r;)2I+M?XWyYy3oU|QjvHRV`NDM1)3RKVeIgPO}2W0ed}H3pnhkX?qQg zjm0{tTCh{|)uva!<%qKS=dCL?268%=>cBuD5K zR=i37IOVH<={YYN>D%Ya{h+ohFJ21kbjSZU-9Mi2$5+MBNIkN&Y|B8`C8{n=PC~MM z@Up}OrQWO>(RFp2J$ocmnyav|`eCVQ)!L;O<#2fZmw5n+jCP9Oa4=BMNOh7;Y~<3I zslNAFKV3DTJy$1P^&QkR5EAqkERTH_W}~NX8k7{_G8nG*@kGMLMg4Gan3cA~0ZRXh@y4Z`^h^v&+meZ*Rp~>P81@{{@?pl>3{!O%Eeb z8KKvg+qunkl;2OPelV-0fsH|&GUA7pVz=vILOX^K|*3IZ(5e$tk(@6BBv`XJLgAzx_Qv6S6rBYZU7KO4}8Xd zRoAJhq&07`G71LC*gfNdU|vAUeC~C2_FgpiP;rY#t)iQB`JzKg^5xod_&!J(8GYzo z@b}+E@E-|RZ8UdqJ)m8VNH=5QMmGlAN20lxmGy65rebOB`k4hZ65bwUnog^{KnRA0 zhbRBU1P}(V8M=hP8jLJ>sG+Gr#4RC)e#BoME$L$zMV>ub&P=d33zwz``r^hmKonni zCVx2f@+#t6c4KR4T5OUyc0bb za#sM<8dc29&3S*j^9<3gS1^G4W!Y}@5R}GHU2o64smfzCw6q8_IOIL(@HeG!(bOV5 zH+#x*G~CYtwz0Qhh7k6amEIUlxWm&E$NODiK8BXyNTvI2l zwHM{24je)wgtGUe{o)kqcrF??;9OazJtfZb*J$IC*VT{_|Fqd?k$xw&pX$GF&;4!) zl5j*91A+5fSg^)@=>tB7fYX24@d{$Oeh3d|>F@84+qaF9#!pIjIhuR9qO|prmpSLe z2}TrSzLMYd(+Es!%Uz2O$OZdC3s(+-k`ilq)4MRlgKO`O8JSdZ`Sj+l^HQ5p(MWVX zAAev)oJa)Vtg8B|jh&KT+56oa;?V#4SR*!;U)p#R z!fyk(w{yF3E~T?xu(T*#RFF8m2|)qp&42HVv>iIyE~1&3+m^egTs@n}6FEo8nHX){ znFl7hk)l#!M}`qI&@3ueR@RTfIt~K{9hfMa&5hi`Mh{BLCit#AMjJ&JBFvvjT^gIh zeSm{$%fw{Z_3Z|R%TZy*Ip35Yls>PFnVS_N8sk}^Z3#JvpV#l&DO@Q_Tlju??l9IQeC}L^+)DD&+}n~*Xrv8}OG!(_xU}u?{Mtof z5h3cN@w+C9+i9hbO|tBBWlS>Ht6fSKDtg?PB9#;^lDuuP8ohjco`al?CyDy`w>#|& zaltyHNFF}Mb+kQTd_1SU;_nsryHdo2i~IU_q0{%Tj8oK@seNa&nb0k6m8etM zxFkmN>n(ydQwISa_wuU@v+ms+-=e9a604v4a6kt6L_I5u(@;TQcz~QhS-sP?4~-9O zC5o~mzETHpQ35hMZL4A`V~A$~snLpxdx$2;ppmOx#3>=S&0JZ#G1MS|$!{A0{bLEE z%L!mVc(5#k`}(mjZG|lS?zPDv^lQ1vujZ{&j zB-A#Al2;Xkw}0e4#h~r!x#FQcLGPOnx%W#!t7Pe5Y0zr^r`}gdy<|Q%C(%Lu2UpUP zLi!B}#M<7(l{!T4^RA{qEQ$8P|FV%*|6r%57n^iDw@EoL`}OOhaq=qk%yFqqC#n6& zU2joZo$@P7Y1a63hhV+tQes8NL4jgUj@i+g=_P!8XBTqkSacb(?rFtn}z9O2L>?J=Fx@I>S!Y{ef(Kh7j4NX z(eI8uD5{O

tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory.html index 4b08db6712..cdb12be2fd 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_context_factory.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder-members.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder-members.html index 165e089493..9f816207d4 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder-members.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder-members.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder.html b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder.html index c896aafb9b..ac11342c1b 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder.html +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder.html @@ -25,7 +25,7 @@ Logo
tgstation-server -  4.4.0 +  4.4.1
The /tg/station 13 server suite
@@ -286,10 +286,10 @@ Private Attributes

Implements Tgstation.Server.Host.Database.IDatabaseSeeder.

-

Definition at line 234 of file DatabaseSeeder.cs.

+

Definition at line 237 of file DatabaseSeeder.cs.

References Tgstation.Server.Host.Database.IDatabaseContext.SchemaDowngradeForServerVersion().

-
235  {
236  if (databaseContext == null)
237  throw new ArgumentNullException(nameof(databaseContext));
238  if (downgradeVersion == null)
239  throw new ArgumentNullException(nameof(downgradeVersion));
240 
241  return databaseContext.SchemaDowngradeForServerVersion(databaseLogger, downgradeVersion, databaseConfiguration.DatabaseType, cancellationToken);
242  }
DatabaseType DatabaseType
The Configuration.DatabaseType to create
+
238  {
239  if (databaseContext == null)
240  throw new ArgumentNullException(nameof(databaseContext));
241  if (downgradeVersion == null)
242  throw new ArgumentNullException(nameof(downgradeVersion));
243 
244  return databaseContext.SchemaDowngradeForServerVersion(databaseLogger, downgradeVersion, databaseConfiguration.DatabaseType, cancellationToken);
245  }
DatabaseType DatabaseType
The Configuration.DatabaseType to create
readonly ILogger< DatabaseContext > databaseLogger
The ILogger used for IDatabaseContexts.
readonly DatabaseConfiguration databaseConfiguration
The DatabaseConfiguration for the DatabaseSeeder.
@@ -347,10 +347,10 @@ Here is the call graph for this function:
Returns
A Task<TResult> resulting in the admin User or . If , IDatabaseContext.Save(CancellationToken) must be called on databaseContext .
-

Definition at line 189 of file DatabaseSeeder.cs.

+

Definition at line 192 of file DatabaseSeeder.cs.

References Tgstation.Server.Host.Models.User.CanonicalizeName(), and Tgstation.Server.Host.Database.IDatabaseContext.Users.

-
190  {
191  var admin = await databaseContext
192  .Users
193  .AsQueryable()
194  .Where(x => x.CanonicalName == User.CanonicalizeName(Api.Models.User.AdminName))
195  .FirstOrDefaultAsync(cancellationToken)
196  .ConfigureAwait(false);
197  if (admin == default)
198  SeedAdminUser(databaseContext);
199 
200  return admin;
201  }
+
193  {
194  var admin = await databaseContext
195  .Users
196  .AsQueryable()
197  .Where(x => x.CanonicalName == User.CanonicalizeName(Api.Models.User.AdminName))
198  .FirstOrDefaultAsync(cancellationToken)
199  .ConfigureAwait(false);
200  if (admin == default)
201  SeedAdminUser(databaseContext);
202 
203  return admin;
204  }
static string CanonicalizeName(string name)
Change a Api.Models.Internal.User.Name into a CanonicalName.
void SeedAdminUser(IDatabaseContext databaseContext)
Add a default admin User to a given databaseContext
@@ -395,12 +395,12 @@ Here is the call graph for this function:

Implements Tgstation.Server.Host.Database.IDatabaseSeeder.

-

Definition at line 204 of file DatabaseSeeder.cs.

+

Definition at line 207 of file DatabaseSeeder.cs.

References Tgstation.Server.Host.Database.IDatabaseContext.Drop(), and Tgstation.Server.Host.Database.IDatabaseContext.Migrate().

-
205  {
206  if (databaseContext == null)
207  throw new ArgumentNullException(nameof(databaseContext));
208 
210  {
211  logger.LogCritical("DropDatabase configuration option set! Dropping any existing database...");
212  await databaseContext.Drop(cancellationToken).ConfigureAwait(false);
213  }
214 
215  var wasEmpty = await databaseContext.Migrate(databaseLogger, cancellationToken).ConfigureAwait(false);
216  if (wasEmpty)
217  {
218  logger.LogInformation("Seeding database...");
219  await SeedDatabase(databaseContext, cancellationToken).ConfigureAwait(false);
220  }
221  else
222  {
224  {
225  logger.LogWarning("Enabling and resetting admin password due to configuration!");
226  await ResetAdminPassword(databaseContext, cancellationToken).ConfigureAwait(false);
227  }
228 
229  await SanitizeDatabase(databaseContext, cancellationToken).ConfigureAwait(false);
230  }
231  }
async Task SanitizeDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Correct invalid database data caused by previous versions.
+
208  {
209  if (databaseContext == null)
210  throw new ArgumentNullException(nameof(databaseContext));
211 
213  {
214  logger.LogCritical("DropDatabase configuration option set! Dropping any existing database...");
215  await databaseContext.Drop(cancellationToken).ConfigureAwait(false);
216  }
217 
218  var wasEmpty = await databaseContext.Migrate(databaseLogger, cancellationToken).ConfigureAwait(false);
219  if (wasEmpty)
220  {
221  logger.LogInformation("Seeding database...");
222  await SeedDatabase(databaseContext, cancellationToken).ConfigureAwait(false);
223  }
224  else
225  {
227  {
228  logger.LogWarning("Enabling and resetting admin password due to configuration!");
229  await ResetAdminPassword(databaseContext, cancellationToken).ConfigureAwait(false);
230  }
231 
232  await SanitizeDatabase(databaseContext, cancellationToken).ConfigureAwait(false);
233  }
234  }
async Task SanitizeDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Correct invalid database data caused by previous versions.
async Task SeedDatabase(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Initially seed a given databaseContext
-
async Task ResetAdminPassword(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Changes the admin password in IDatabaseContext back to it&#39;s default and enables the account ...
+
async Task ResetAdminPassword(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Changes the admin password in IDatabaseContext back to it&#39;s default and enables the account ...
bool ResetAdminPassword
If the admin user should be enabled and have it&#39;s password reset
readonly ILogger< DatabaseContext > databaseLogger
The ILogger used for IDatabaseContexts.
readonly DatabaseConfiguration databaseConfiguration
The DatabaseConfiguration for the DatabaseSeeder.
@@ -462,13 +462,13 @@ Here is the call graph for this function:
Returns
A Task representing the running operation
-

Definition at line 171 of file DatabaseSeeder.cs.

+

Definition at line 174 of file DatabaseSeeder.cs.

References Tgstation.Server.Host.Database.IDatabaseContext.Save().

-
172  {
173  var admin = await GetAdminUser(databaseContext, cancellationToken).ConfigureAwait(false);
174  if (admin != null)
175  {
176  admin.Enabled = true;
177  cryptographySuite.SetUserPassword(admin, Api.Models.User.DefaultAdminPassword, false);
178  }
179 
180  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
181  }
+
175  {
176  var admin = await GetAdminUser(databaseContext, cancellationToken).ConfigureAwait(false);
177  if (admin != null)
178  {
179  admin.Enabled = true;
180  cryptographySuite.SetUserPassword(admin, Api.Models.User.DefaultAdminPassword, false);
181  }
182 
183  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
184  }
readonly ICryptographySuite cryptographySuite
The ICryptographySuite for the DatabaseSeeder
void SetUserPassword(User user, string newPassword, bool newUser)
Sets a User.PasswordHash for a given user
-
async Task< User > GetAdminUser(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Get or create the admin User.
+
async Task< User > GetAdminUser(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Get or create the admin User.

Here is the call graph for this function:
@@ -526,8 +526,8 @@ Here is the call graph for this function:

Definition at line 112 of file DatabaseSeeder.cs.

-

References Tgstation.Server.Host.Database.IDatabaseContext.DreamDaemonSettings, Tgstation.Server.Host.Database.IDatabaseContext.Instances, and Tgstation.Server.Api.Models.Internal.DreamDaemonLaunchParameters.TopicRequestTimeout.

-
113  {
114  var admin = await GetAdminUser(databaseContext, cancellationToken).ConfigureAwait(false);
115  if (admin != null)
116  {
117  // Fix the issue with ulong enums
118  // https://github.com/tgstation/tgstation-server/commit/db341d43b3dab74fe3681f5172ca9bfeaafa6b6d#diff-09f06ec4584665cf89bb77b97f5ccfb9R36-R39
119  // https://github.com/JamesNK/Newtonsoft.Json/issues/2301
120  admin.AdministrationRights &= RightsHelper.AllRights<AdministrationRights>();
121  admin.InstanceManagerRights &= RightsHelper.AllRights<InstanceManagerRights>();
122  }
123 
125  {
126  // normalize backslashes to forward slashes
127  var allInstances = await databaseContext
128  .Instances
129  .AsQueryable()
130  .ToListAsync(cancellationToken)
131  .ConfigureAwait(false);
132  foreach (var instance in allInstances)
133  instance.Path = instance.Path.Replace('\\', '/');
134  }
135 
136  var ids = await databaseContext
137  .DreamDaemonSettings
138  .AsQueryable()
139  .Where(x => x.TopicRequestTimeout == 0)
140  .Select(x => x.Id)
141  .ToListAsync(cancellationToken)
142  .ConfigureAwait(false);
143 
144  var rowsUpdated = ids.Count;
145  foreach (var id in ids)
146  {
147  var newDDSettings = new DreamDaemonSettings
148  {
149  Id = id
150  };
151 
152  databaseContext.DreamDaemonSettings.Attach(newDDSettings);
154  }
155 
156  if (rowsUpdated > 0)
157  logger.LogInformation(
158  "Updated {0} instances to use database backed BYOND topic timeouts from configuration setting of {1}",
159  rowsUpdated,
161 
162  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
163  }
uint ByondTopicTimeout
The timeout in milliseconds for sending and receiving topics to/from DreamDaemon. Note that a single ...
+

References Tgstation.Server.Host.Database.IDatabaseCollection< TModel >.Attach(), Tgstation.Server.Host.Database.IDatabaseContext.DreamDaemonSettings, Tgstation.Server.Host.Database.IDatabaseContext.Instances, and Tgstation.Server.Host.Database.IDatabaseContext.Save().

+
113  {
114  var admin = await GetAdminUser(databaseContext, cancellationToken).ConfigureAwait(false);
115  if (admin != null)
116  {
117  // Fix the issue with ulong enums
118  // https://github.com/tgstation/tgstation-server/commit/db341d43b3dab74fe3681f5172ca9bfeaafa6b6d#diff-09f06ec4584665cf89bb77b97f5ccfb9R36-R39
119  // https://github.com/JamesNK/Newtonsoft.Json/issues/2301
120  admin.AdministrationRights &= RightsHelper.AllRights<AdministrationRights>();
121  admin.InstanceManagerRights &= RightsHelper.AllRights<InstanceManagerRights>();
122  }
123 
125  {
126  // normalize backslashes to forward slashes
127  var allInstances = await databaseContext
128  .Instances
129  .AsQueryable()
130  .ToListAsync(cancellationToken)
131  .ConfigureAwait(false);
132  foreach (var instance in allInstances)
133  instance.Path = instance.Path.Replace('\\', '/');
134  }
135 
137  {
138  var ids = await databaseContext
139  .DreamDaemonSettings
140  .AsQueryable()
141  .Where(x => x.TopicRequestTimeout == 0)
142  .Select(x => x.Id)
143  .ToListAsync(cancellationToken)
144  .ConfigureAwait(false);
145 
146  var rowsUpdated = ids.Count;
147  foreach (var id in ids)
148  {
149  var newDDSettings = new DreamDaemonSettings
150  {
151  Id = id
152  };
153 
154  databaseContext.DreamDaemonSettings.Attach(newDDSettings);
156  }
157 
158  if (rowsUpdated > 0)
159  logger.LogInformation(
160  "Updated {0} instances to use database backed BYOND topic timeouts from configuration setting of {1}",
161  rowsUpdated,
163  }
164 
165  await databaseContext.Save(cancellationToken).ConfigureAwait(false);
166  }
uint ByondTopicTimeout
The timeout in milliseconds for sending and receiving topics to/from DreamDaemon. Note that a single ...
readonly GeneralConfiguration generalConfiguration
The GeneralConfiguration for the DatabaseSeeder.
@@ -536,9 +536,20 @@ Here is the call graph for this function:
InstanceManagerRights
Rights for managing Models.Instances
readonly IPlatformIdentifier platformIdentifier
The IPlatformIdentifier for the DatabaseSeeder.
readonly ILogger< DatabaseSeeder > logger
The ILogger for the DatabaseSeeder.
-
async Task< User > GetAdminUser(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Get or create the admin User.
+
async Task< User > GetAdminUser(IDatabaseContext databaseContext, CancellationToken cancellationToken)
Get or create the admin User.
bool IsWindows
If the current platform is a Windows platform
+

+Here is the call graph for this function:
+
+
+ + + + +
+

+
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.map b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.map index da7c8fdde8..c10952272d 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.map +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.map @@ -1,3 +1,4 @@ - + + diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.md5 b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.md5 index 7a8db0dcdd..3784af4463 100644 --- a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.md5 +++ b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.md5 @@ -1 +1 @@ -1d48f842ea43484204aaba4b47aca2ef \ No newline at end of file +d8f81cf9b8dfc7cbe85c0500dfae59c1 \ No newline at end of file diff --git a/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.png b/class_tgstation_1_1_server_1_1_host_1_1_database_1_1_database_seeder_a1ed443f053ba4e1098f0e4099d23b774_cgraph.png index 13e410015dfbadc7ff31ff338133a9a4a8091213..c65de98129cc72d5ecef05f1aa00457528c96f54 100644 GIT binary patch literal 8825 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 literal 5194 zcmZ`-cRbW_+&__IkIG82g%C0_yG|U(StXHiWo6IIqYxKD_B>QB%1VwSl9`d?WF>p= zoz3&rGhWXh&-1z0>-W8T-S2+)`F_Ux{r-G0db%2P)Ev|h2!sx<2{V8|&ai>^GE`^4 zRfDyU4=j`@Z4DUYT_tg z4ookj+gEif-cLw+Sch0I6|=LGpI>{=Yq1Y8TC^~)Du#i*0KP!fOkUFA$-$do8*&T< zSoO|p@}GXxQsX59s}ZVli`&b~%e2Bd@MwSA(w7`U9$bBD2bTWp7VaLWc5a9Uq6fKt zy)ZPC0(>;vD2BO%n?HRLQ&g-b^QM7NMzytRg?7bi@f#PLmzS4wIch+HubG&b6crUE zU_vbq{w|ZxGC^p?Zrr#Lviw2}kH;%0D1AE}N5@QO=HmGH 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