<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://51.250.0.107/w/index.php?action=history&amp;feed=atom&amp;title=Control%5CCControlSystem</id>
	<title>Control\CControlSystem - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://51.250.0.107/w/index.php?action=history&amp;feed=atom&amp;title=Control%5CCControlSystem"/>
	<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=Control%5CCControlSystem&amp;action=history"/>
	<updated>2026-05-01T15:00:23Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://51.250.0.107/w/index.php?title=Control%5CCControlSystem&amp;diff=5391&amp;oldid=prev</id>
		<title>Андрей Чусов в 11:15, 3 декабря 2017</title>
		<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=Control%5CCControlSystem&amp;diff=5391&amp;oldid=prev"/>
		<updated>2017-12-03T11:15:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 21:15, 3 декабря 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Строка 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Типы===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Типы===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list begin&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list_begin_old_1&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list add&lt;/del&gt;|name_type|Тип имени элементов подсистемы управления. Наследуется из [[IControlSystem]].}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list_add_old_1&lt;/ins&gt;|name_type|Тип имени элементов подсистемы управления. Наследуется из [[IControlSystem]].}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list add&lt;/del&gt;|domain_name_type|Тип имени экземпляра подсистемы предметной области. Эквивалентно &amp;lt;tt&amp;gt;name_type&amp;lt;/tt&amp;gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list_add_old_1&lt;/ins&gt;|domain_name_type|Тип имени экземпляра подсистемы предметной области. Эквивалентно &amp;lt;tt&amp;gt;name_type&amp;lt;/tt&amp;gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list add&lt;/del&gt;|process_name_type|Тип имени процесса моделирования. Эквивалентно &amp;lt;tt&amp;gt;name_type&amp;lt;/tt&amp;gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list_add_old_1&lt;/ins&gt;|process_name_type|Тип имени процесса моделирования. Эквивалентно &amp;lt;tt&amp;gt;name_type&amp;lt;/tt&amp;gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list add&lt;/del&gt;|size_type|Целочисленный беззнаковый четырехбайтовый тип для описания размеров.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list_add_old_1&lt;/ins&gt;|size_type|Целочисленный беззнаковый четырехбайтовый тип для описания размеров.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list end&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type_list_end_old_1&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Методы===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Методы===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-2451:rev-5391 --&gt;
&lt;/table&gt;</summary>
		<author><name>Андрей Чусов</name></author>
	</entry>
	<entry>
		<id>http://51.250.0.107/w/index.php?title=Control%5CCControlSystem&amp;diff=2451&amp;oldid=prev</id>
		<title>Андрей Чусов: Новая страница: «{{NavBar|{{Системная иерархия:Реализация подсистемы управления}} \ CControlSystem}} {{co…»</title>
		<link rel="alternate" type="text/html" href="http://51.250.0.107/w/index.php?title=Control%5CCControlSystem&amp;diff=2451&amp;oldid=prev"/>
		<updated>2016-06-10T07:46:25Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{NavBar|{{Системная иерархия:Реализация подсистемы управления}} \ &lt;a href=&quot;/w/index.php/Control%5CCControlSystem&quot; title=&quot;Control\CControlSystem&quot;&gt;CControlSystem&lt;/a&gt;}} {{co…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NavBar|{{Системная иерархия:Реализация подсистемы управления}} \ [[control\CControlSystem|CControlSystem]]}}&lt;br /&gt;
{{control\CControlSystem brief}}&lt;br /&gt;
&lt;br /&gt;
===Типы===&lt;br /&gt;
{{type_list begin}}&lt;br /&gt;
{{type_list add|name_type|Тип имени элементов подсистемы управления. Наследуется из [[IControlSystem]].}}&lt;br /&gt;
{{type_list add|domain_name_type|Тип имени экземпляра подсистемы предметной области. Эквивалентно &amp;lt;tt&amp;gt;name_type&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
{{type_list add|process_name_type|Тип имени процесса моделирования. Эквивалентно &amp;lt;tt&amp;gt;name_type&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
{{type_list add|size_type|Целочисленный беззнаковый четырехбайтовый тип для описания размеров.}}&lt;br /&gt;
{{type_list end}}&lt;br /&gt;
&lt;br /&gt;
===Методы===&lt;br /&gt;
{{function_list_begin}}&lt;br /&gt;
{{function_list_add|''Конструкторы''|reference_name=control\CControlSystem::CControlSystem|description={{control\CControlSystem::CControlSystem brief}}}}&lt;br /&gt;
{{function_list_add|GetGeometrySystem|reference_name=control\CControlSystem::GetGeometrySystem|description={{control\CControlSystem::GetGeometrySystem brief}}}}&lt;br /&gt;
{{function_list_add|GetProcessDomainSystem|reference_name=control\CControlSystem::GetProcessDomainSystem|description={{control\CControlSystem::GetProcessDomainSystem brief}}}}&lt;br /&gt;
{{function_list_add|StartSimulation|reference_name=control\CControlSystem::StartSimulation|description={{control\CControlSystem::StartSimulation brief}}}}&lt;br /&gt;
{{function_list_add|CloseSimulation|reference_name=control\CControlSystem::CloseSimulation|description={{control\CControlSystem::CloseSimulation brief}}}}&lt;br /&gt;
{{function_list_add|Marshal|reference_name=control\CControlSystem::Marshal|description={{control\CControlSystem::Marshal brief}}}}&lt;br /&gt;
{{function_list_add|GetLoadBalancer|reference_name=control\CControlSystem::GetLoadBalancer|description={{control\CControlSystem::GetLoadBalancer brief}}}}&lt;br /&gt;
{{function_list_end}}&lt;br /&gt;
&lt;br /&gt;
{{relation_diagram|diagram=&amp;quot;Отношения класса CControlSystem&amp;quot;|content=&lt;br /&gt;
{{relation_diagram addref|class=IControlSystem|ref=[[IControlSystem]]}}&lt;br /&gt;
{{relation_diagram addref|class=IControlSystemDomainSide|ref=[[IControlSystemDomainSide]]}}&lt;br /&gt;
{{relation_diagram addref|class=IControlSystemServerSide|ref=[[control\IControlSystemServerSide]]}}&lt;br /&gt;
{{relation_diagram addref|class=IGeometrySystem|ref=[[control\IGeometrySystem]]}}&lt;br /&gt;
{{relation_diagram addref|class=IDomainSystem|ref=[[control\IDomainSystem]]}}&lt;br /&gt;
{{relation_diagram addref|class=ILoadBalancer|ref=[[control\ILoadBalancer]]}}&lt;br /&gt;
&lt;br /&gt;
{{relation_diagram add|inheritance|IControlSystemDomainSide|IControlSystem}}&lt;br /&gt;
{{relation_diagram add|inheritance|IControlSystemServerSide|IControlSystem}}&lt;br /&gt;
{{relation_diagram add|implementation|CControlSystem|IControlSystemServerSide}}&lt;br /&gt;
{{relation_diagram add|implementation|CControlSystem|IControlSystemDomainSide}}&lt;br /&gt;
&lt;br /&gt;
{{relation_diagram add|composition|CControlSystem|IGeometrySystem}}&lt;br /&gt;
{{relation_diagram add|aggregation|CControlSystem|IDomainSystem}}&lt;br /&gt;
{{relation_diagram add|aggregation|CControlSystem|ILoadBalancer}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Единственный экземпляр класса [[control\CControlSystem|CControlSystem]] осуществляет агрегирование других подсистем [[подсистема управления|системы управления]] и предоставляет доступ к ним по запросу из-вне.&lt;br /&gt;
&lt;br /&gt;
Агрегируемыми компонентами являются: один экземпляр подсистемы геометрического моделирования [[control\CGeometrySystem|CGeometrySystem]], хеш-таблицы (от имени) активных подсистем предметной области [[control\CDomainSystem|CDomainSystem]] и связынных с ними экземпляров балансировщика нагрузки [[control\CLoadBalancer|CLoadBalancer]], а также хеш-таблицы (от имени) активных (и, возможно, уже завершенных, но не закрытых) процессов моделирования. Доступ к этим подсистемам осуществляется строго через их интерфейсы ([[IGeometrySystem]], [[control\IDomainSystem|IDomainSystem]] и [[control\ILoadBalancer|ILoadBalancer]] соответственно).&lt;br /&gt;
&lt;br /&gt;
Непосредственное хранение балансировщиков нагрузки и экземпляров подсистем предметной области осуществляется с помощью смарт-указателей со счетчиком ссылок [http://en.cppreference.com/w/cpp/memory/shared_ptr std::shared_ptr] на [[ILoadBalancer]] и на [[IDomainSystem]]. Такие указатели хранятся в таблице активных процессов вместе со ссылками на строки таблицы активных подсистем предметной области.&lt;br /&gt;
&lt;br /&gt;
В свою очередь, таблица активных подсистем предметной области хранит указатели [http://en.cppreference.com/w/cpp/memory/weak_ptr weak_ptr] на те же экземпляры [[ILoadBalancer]] и [[IDomainSystem]]. Такие указатели не управляют временем жизни указываемых объектов.&lt;br /&gt;
&lt;br /&gt;
Экземпляр подсистемы предметной области создается в таблице активных экземпляров при запуске процесса моделирования, т.е. при вызове [[control\CControlSystem::StartSimulation|StartSimulation]], вместе с созданием экземпляра балансировщика нагрузки и внесением записи в таблицу активных процессов. Если на момент вызова [[control\CControlSystem::StartSimulation|StartSimulation]] указанный в запросе экземпляр  подсистемы предметной уже зарегистрирован в таблице активных экземпляров, используется существующая запись, в которой счетчики ссылок на экземпляры подсистем инкрементируются. В любом случае (при условии успешной обработки запроса) создается новый процесс моделирования, запись о котором вносится в таблицу активных процессов.&lt;br /&gt;
&lt;br /&gt;
При закрытии процесса вызовом [[control\CControlSystem::CloseSimulation|CloseSimulation]] происходит закрытие процесса моделирования и удаление записи о нем из таблицы активных процессов. При этом счетчики ссылок на экземпляры балансироващика и подсистемы предметной области декрементируется. При достижении ими нуля, соответствующая запись таблицы активных подсистем предметной области, а также сами экземпляры подсистемы и связанного балансировщика удаляются.&lt;/div&gt;</summary>
		<author><name>Андрей Чусов</name></author>
	</entry>
</feed>