<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF99%3AD-Bus</id>
		<title>LXF99:D-Bus - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF99%3AD-Bus"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;action=history"/>
		<updated>2026-05-13T06:35:52Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=8901&amp;oldid=prev</id>
		<title>StavNight0ver: /* Подключайтесь! */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=8901&amp;oldid=prev"/>
				<updated>2009-10-11T11:41:28Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Подключайтесь!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 11:41, 11 октября 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 52:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 52:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  DBusMessage *call;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  DBusMessage *call;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  DBusMessage *reply;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  DBusMessage *reply;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  const char * arg = &amp;quot;PROTOCOL 6\n&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  const char * arg = &amp;quot;PROTOCOL 6\n&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  char * response = NULL;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  char * response = NULL;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  dbus_error_init(&amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  dbus_error_init(&amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>StavNight0ver</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=5659&amp;oldid=prev</id>
		<title>Crazy Rebel: /* D-Bus: шины для вашего Linux */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=5659&amp;oldid=prev"/>
				<updated>2008-11-27T07:11:36Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;D-Bus: шины для вашего Linux&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 07:11, 27 ноября 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===D-Bus: шины для вашего Linux===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===D-Bus: шины для вашего Linux===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Уже успели подумать о зимней резине или переломах и вывихах? Возвращайтесь обратно в виртуальный мир – '''Андрей Боровский''' имеет в виду шину для обмена данными между настольными приложениями!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;: &lt;/ins&gt;Уже успели подумать о зимней резине или переломах и вывихах? Возвращайтесь обратно в виртуальный мир – '''Андрей Боровский''' имеет в виду шину для обмена данными между настольными приложениями!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Что такое D-Bus? Самый простой ответ – еще одна система межпроцессного взаимодействия (Interprocess Communication или IPC). Ключевые слова здесь «еще одна». Высокоуровневых систем IPC для Unix/Linux существует много. Помимо систем высокого уровня Unix обладает развитыми средствами IPC низкого уровня (сокеты, каналы), каковые успешно используются многими приложениями напрямую. Зачем тогда нам может понадобиться D-Bus? Эта система замышлялась группой ''FreeDesktop.org'' как средство IPC, не зависящее от типа рабочего стола, призванное заменить как DCOP в KDE, так и CORBA/Bonobo в GNOME. Вытеснить родные средства IPC KDE и GNOME новой системе пока не удалось [правда, в KDE 4 D-Bus все-таки будет использоваться вместо DCOP, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;– прим. ред.''], но в процессе разработки D-Bus обрела несколько уникальных и полезных особенностей. Важными отличительными чертами D-Bus являются система сигналов и асинхронных вызовов методов, а также система управления выполнением приложений. Таким образом, ответ на вопрос, зачем вам может понадобиться программирование D-Bus, состоит из двух частей. Во-первых, многие важные приложения и системные компоненты (например, Linux HAL и NetworkManager) используют D-Bus как средство общения с внешним миром. Во вторых, D-Bus – это платформенно-независимая система IPC, которая присутствует практически в каждом дистрибутиве Linux и устанавливается по умолчанию во многих из них. Поэтому, если вы пишете приложение, которое должно предоставлять сервисы IPC, не являясь частью какого-либо рабочего стола, вам, безусловно, имеет смысл обратить внимание на D-Bus. При этом следует учитывать и минусы D-Bus. В системе все еще не реализована связь между разными машинами, хотя работа в этом направлении ведется. D-Bus легко может быть перенесена на другие Unix-платформы, но ее версия для Windows по-прежнему далека от завершения.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Что такое D-Bus? Самый простой ответ – еще одна система межпроцессного взаимодействия (Interprocess Communication или IPC). Ключевые слова здесь «еще одна». Высокоуровневых систем IPC для Unix/Linux существует много. Помимо систем высокого уровня Unix обладает развитыми средствами IPC низкого уровня (сокеты, каналы), каковые успешно используются многими приложениями напрямую. Зачем тогда нам может понадобиться D-Bus? Эта система замышлялась группой ''FreeDesktop.org'' как средство IPC, не зависящее от типа рабочего стола, призванное заменить как DCOP в KDE, так и CORBA/Bonobo в GNOME. Вытеснить родные средства IPC KDE и GNOME новой системе пока не удалось [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/ins&gt;правда, в KDE 4 D-Bus все-таки будет использоваться вместо DCOP, – прим. ред.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;''], но в процессе разработки D-Bus обрела несколько уникальных и полезных особенностей. Важными отличительными чертами D-Bus являются система сигналов и асинхронных вызовов методов, а также система управления выполнением приложений. Таким образом, ответ на вопрос, зачем вам может понадобиться программирование D-Bus, состоит из двух частей. Во-первых, многие важные приложения и системные компоненты (например, Linux HAL и NetworkManager) используют D-Bus как средство общения с внешним миром. Во вторых, D-Bus – это платформенно-независимая система IPC, которая присутствует практически в каждом дистрибутиве Linux и устанавливается по умолчанию во многих из них. Поэтому, если вы пишете приложение, которое должно предоставлять сервисы IPC, не являясь частью какого-либо рабочего стола, вам, безусловно, имеет смысл обратить внимание на D-Bus. При этом следует учитывать и минусы D-Bus. В системе все еще не реализована связь между разными машинами, хотя работа в этом направлении ведется. D-Bus легко может быть перенесена на другие Unix-платформы, но ее версия для Windows по-прежнему далека от завершения.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Среди конкурирующих технологий (в том смысле, что их зачастую можно использовать вместо D-Bus), следует отметить CORBA, SOAP, XML-RPC, DCOM, DCOP, Bonobo. Чем D-Bus отличается от них? CORBA, как и D-Bus, использует быстрый бинарный протокол. В отличие от D-Bus, CORBA предназначается для решения чрезвычайно широкого круга задач и может использоваться как в локальной, так и в распределенной системе. В CORBA отсутствуют такие элементы D-Bus, как система управления выполнением приложений и система сигналов. SOAP и XML-RPC представляют собой протоколы, в которых на низком уровне активно используется XML. Эти технологии межпроцессного взаимодействия хорошо подходят для Интернета, однако при обмене данными между приложениями, работающими на одной машине, использование механизмов XML приводит к пустой трате ресурсов (при этом надо отметить, конечно, что приложения, использующие эти протоколы, чрезвычайно легко масштабируются). Технологии DCOM, DCOP и Bonobo имеют один сходный недостаток – каждая из них предназначена для конкретной платформы (Windows, KDE и GNOME соответственно), и организовать взаимодействие между приложениями разных платформ с их помощью будет весьма непросто.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Среди конкурирующих технологий (в том смысле, что их зачастую можно использовать вместо D-Bus), следует отметить CORBA, SOAP, XML-RPC, DCOM, DCOP, Bonobo. Чем D-Bus отличается от них? CORBA, как и D-Bus, использует быстрый бинарный протокол. В отличие от D-Bus, CORBA предназначается для решения чрезвычайно широкого круга задач и может использоваться как в локальной, так и в распределенной системе. В CORBA отсутствуют такие элементы D-Bus, как система управления выполнением приложений и система сигналов. SOAP и XML-RPC представляют собой протоколы, в которых на низком уровне активно используется XML. Эти технологии межпроцессного взаимодействия хорошо подходят для Интернета, однако при обмене данными между приложениями, работающими на одной машине, использование механизмов XML приводит к пустой трате ресурсов (при этом надо отметить, конечно, что приложения, использующие эти протоколы, чрезвычайно легко масштабируются). Технологии DCOM, DCOP и Bonobo имеют один сходный недостаток – каждая из них предназначена для конкретной платформы (Windows, KDE и GNOME соответственно), и организовать взаимодействие между приложениями разных платформ с их помощью будет весьма непросто.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=5658&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Подключайтесь! */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=5658&amp;oldid=prev"/>
				<updated>2008-11-27T07:10:39Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Подключайтесь!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 07:10, 27 ноября 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 43:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Следующий код представляет собой минимальную программу, использующую возможности D-BUS.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Следующий код представляет собой минимальную программу, использующую возможности D-BUS.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;source lang=c&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; #include &amp;lt;stdio.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; #include &amp;lt;stdio.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; #include &amp;lt;dbus/dbus.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; #include &amp;lt;dbus/dbus.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 77:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 77:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;source&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Объявления типов и функций, связанные с D-Bus API, становятся доступны программе при включении в ее текст заголовочного файла '''dbus/dbus.h''' (где найти этот файл, знает команда ''pkg-config  --cflags dbus-1''). Соединение с сервером D-Bus устанавливается с помощью функции '''dbus_bus_get()'''. Ее первый параметр указывает, к какой шине, системной или пользовательской, мы хотим подключиться (в данном случае выбирается пользовательская шина – '''DBUS_BUS_SESSION'''). Вторым параметром должен быть указатель на переменную типа '''DBusError'''. Если в процессе подключения к шине произойдет сбой, функция '''dbus_bus_get()''' вернет значение '''NULL''', а в переменной ''error'' будет записана информация об ошибке.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Объявления типов и функций, связанные с D-Bus API, становятся доступны программе при включении в ее текст заголовочного файла '''dbus/dbus.h''' (где найти этот файл, знает команда ''pkg-config  --cflags dbus-1''). Соединение с сервером D-Bus устанавливается с помощью функции '''dbus_bus_get()'''. Ее первый параметр указывает, к какой шине, системной или пользовательской, мы хотим подключиться (в данном случае выбирается пользовательская шина – '''DBUS_BUS_SESSION'''). Вторым параметром должен быть указатель на переменную типа '''DBusError'''. Если в процессе подключения к шине произойдет сбой, функция '''dbus_bus_get()''' вернет значение '''NULL''', а в переменной ''error'' будет записана информация об ошибке.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 90:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;На этом работа нашей программы окончена. С помощью функций '''dbus_message_unref()''' и '''dbus_connection_unref()''' мы сообщаем системе, что созданные нами объекты интерфейса D-Bus нам больше не нужны, и выделенную под них память можно освободить.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;На этом работа нашей программы окончена. С помощью функций '''dbus_message_unref()''' и '''dbus_connection_unref()''' мы сообщаем системе, что созданные нами объекты интерфейса D-Bus нам больше не нужны, и выделенную под них память можно освободить.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;====А дальше?====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;====А дальше?====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=5334&amp;oldid=prev</id>
		<title>Crazy Rebel в 07:30, 17 ноября 2008</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=5334&amp;oldid=prev"/>
				<updated>2008-11-17T07:30:38Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 07:30, 17 ноября 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Учебники]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===D-Bus: шины для вашего Linux===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;===D-Bus: шины для вашего Linux===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=4540&amp;oldid=prev</id>
		<title>Lockal: восстановление кавычек в коде  AWB</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=4540&amp;oldid=prev"/>
				<updated>2008-04-27T14:55:22Z</updated>
		
		<summary type="html">&lt;p&gt;восстановление кавычек в коде  &lt;a href=&quot;/wiki/index.php?title=Linuxformat:AutoWikiBrowser&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Linuxformat:AutoWikiBrowser (страница не существует)&quot;&gt;AWB&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 14:55, 27 апреля 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Совокупность методов и сигналов, предоставляемых объектом D-Bus, называется интерфейсом объекта D-Bus. Декларируя поддержку определенного интерфейса, объект гарантирует определенную реакцию на сообщения, поступающие извне. Каждый объект может поддерживать несколько интерфейсов, которые, естественно, различаются по именам. Некоторую путаницу создает тот факт, что имена интерфейсов имеют ту же структуру, что и имена соединений (и часто совпадают с ними). Например, объект '''/com/Skype''' экспортирует интерфейс '''com.Skype.API''' (такое же имя имеет соединение, которое создает клиент ''Skype''). Итак, для передачи сообщения другой программе с помощью D-Bus, необходимо знать имя соединения этой программы с демоном D-Bus, имя объекта и имя интерфейса. Для вызова метода, декларируемого интерфейсом, нужно, конечно, знать еще и имя метода. Вы можете придти к выводу, что для того, чтобы обмениваться сообщениями D-Bus с другой программой, вам всегда необходимо создавать объект D-Bus и декларировать поддержку некоторого интерфейса. На самом деле, это не обязательно. Если ваша программа использует D-Bus только для вызова методов объектов других приложений, никаких специальных действий по регистрации объектов выполнять не требуется. Более того, вам не придется придумывать для вашей программы и имя соединения – в процессе подключения к шине демон D-Bus создаст его автоматически. Сгенерированное имя будет иметь вид ''':x.y''', где '''x''' и '''y''' – некоторые числа. На самом деле, подобное имя создается для каждого соединения D-Bus в рамках данной сессии, и именно оно используется демоном для передачи сообщений. В случае с программами, зарегистрировавшими сервисы D-Bus, имя, начинающееся с двоеточия, является синонимом постоянного имени (такого как '''com.Skype.API''') в рамках текущей сессии. Если рассматривать программу, предоставляющую сервис D-Bus, как аналог web-сервера, то имя соединения, начинающееся с двоеточия, можно сравнить с IP-адресом сервера, а постоянное имя – с доменным именем. Иерархия различных элементов D-BUS представлена на Рис. 1.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Совокупность методов и сигналов, предоставляемых объектом D-Bus, называется интерфейсом объекта D-Bus. Декларируя поддержку определенного интерфейса, объект гарантирует определенную реакцию на сообщения, поступающие извне. Каждый объект может поддерживать несколько интерфейсов, которые, естественно, различаются по именам. Некоторую путаницу создает тот факт, что имена интерфейсов имеют ту же структуру, что и имена соединений (и часто совпадают с ними). Например, объект '''/com/Skype''' экспортирует интерфейс '''com.Skype.API''' (такое же имя имеет соединение, которое создает клиент ''Skype''). Итак, для передачи сообщения другой программе с помощью D-Bus, необходимо знать имя соединения этой программы с демоном D-Bus, имя объекта и имя интерфейса. Для вызова метода, декларируемого интерфейсом, нужно, конечно, знать еще и имя метода. Вы можете придти к выводу, что для того, чтобы обмениваться сообщениями D-Bus с другой программой, вам всегда необходимо создавать объект D-Bus и декларировать поддержку некоторого интерфейса. На самом деле, это не обязательно. Если ваша программа использует D-Bus только для вызова методов объектов других приложений, никаких специальных действий по регистрации объектов выполнять не требуется. Более того, вам не придется придумывать для вашей программы и имя соединения – в процессе подключения к шине демон D-Bus создаст его автоматически. Сгенерированное имя будет иметь вид ''':x.y''', где '''x''' и '''y''' – некоторые числа. На самом деле, подобное имя создается для каждого соединения D-Bus в рамках данной сессии, и именно оно используется демоном для передачи сообщений. В случае с программами, зарегистрировавшими сервисы D-Bus, имя, начинающееся с двоеточия, является синонимом постоянного имени (такого как '''com.Skype.API''') в рамках текущей сессии. Если рассматривать программу, предоставляющую сервис D-Bus, как аналог web-сервера, то имя соединения, начинающееся с двоеточия, можно сравнить с IP-адресом сервера, а постоянное имя – с доменным именем. Иерархия различных элементов D-BUS представлена на Рис. 1.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Изображение:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;LXF99_DBUS1&lt;/del&gt;.jpg|Рис. 1. Схема взаимодействия двух приложений с помощью D-Bus.]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Изображение:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;LXF99 DBUS1&lt;/ins&gt;.jpg|Рис. 1. Схема взаимодействия двух приложений с помощью D-Bus.]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Хотя вы и не можете работать с объектами D-Bus напрямую, система предоставляет программистам объектоподобный интерфейс, который реализуется с помощью так называемых прокси-объектов ('''proxy objects'''). Прокси можно считать представителем объекта D-Bus в вашей программе. Насколько прокси-объект похож на «настоящий» – зависит от реализации. В языках Java и Python работа с прокси осуществляется практически так же, как с «настоящими» объектами языка. При использовании интерфейсов библиотеки ''GLib'' для работы с прокси применяется специальный набор функций.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Хотя вы и не можете работать с объектами D-Bus напрямую, система предоставляет программистам объектоподобный интерфейс, который реализуется с помощью так называемых прокси-объектов ('''proxy objects'''). Прокси можно считать представителем объекта D-Bus в вашей программе. Насколько прокси-объект похож на «настоящий» – зависит от реализации. В языках Java и Python работа с прокси осуществляется практически так же, как с «настоящими» объектами языка. При использовании интерфейсов библиотеки ''GLib'' для работы с прокси применяется специальный набор функций.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  DBusMessage *call;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  DBusMessage *call;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  DBusMessage *reply;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  DBusMessage *reply;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  const char * arg = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“PROTOCOL &lt;/del&gt;6\&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;n”&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  const char * arg = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;PROTOCOL &lt;/ins&gt;6\&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;n&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  char * response = NULL;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  char * response = NULL;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  dbus_error_init(&amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  dbus_error_init(&amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  connection = dbus_bus_get(DBUS_BUS_SESSION, &amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  connection = dbus_bus_get(DBUS_BUS_SESSION, &amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  if (!connection) {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160;  if (!connection) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  printf(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“Ошибка &lt;/del&gt;соединения с D-BUS: %s\&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;n”&lt;/del&gt;, error.message);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  printf(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;Ошибка &lt;/ins&gt;соединения с D-BUS: %s\&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;n&amp;quot;&lt;/ins&gt;, error.message);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; dbus_error_free(&amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; dbus_error_free(&amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; call = dbus_message_new_method_call(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“com&lt;/del&gt;.Skype.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;API”&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“&lt;/del&gt;/com/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Skype”&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“com&lt;/del&gt;.Skype.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;API”&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“Invoke”&lt;/del&gt;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; call = dbus_message_new_method_call(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;com&lt;/ins&gt;.Skype.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;API&amp;quot;&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;/com/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Skype&amp;quot;&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;com&lt;/ins&gt;.Skype.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;API&amp;quot;&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;Invoke&amp;quot;&lt;/ins&gt;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; dbus_message_append_args (call, DBUS_TYPE_STRING, &amp;amp;arg, DBUS_TYPE_INVALID);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; dbus_message_append_args (call, DBUS_TYPE_STRING, &amp;amp;arg, DBUS_TYPE_INVALID);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; reply = dbus_connection_send_with_reply_and_block (connection, call, 100000, &amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; reply = dbus_connection_send_with_reply_and_block (connection, call, 100000, &amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; if (!reply) {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; if (!reply) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; printf(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“Ошибка &lt;/del&gt;вызова метода: %s\&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;n”&lt;/del&gt;, error.message);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; printf(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;Ошибка &lt;/ins&gt;вызова метода: %s\&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;n&amp;quot;&lt;/ins&gt;, error.message);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; dbus_error_free(&amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; dbus_error_free(&amp;amp;error);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 70:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 70:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; dbus_message_get_args (reply, &amp;amp;error, DBUS_TYPE_STRING, &amp;amp;response, DBUS_TYPE_INVALID);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; dbus_message_get_args (reply, &amp;amp;error, DBUS_TYPE_STRING, &amp;amp;response, DBUS_TYPE_INVALID);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; if (response != NULL)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; if (response != NULL)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; printf(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;“Ответ&lt;/del&gt;: %s\&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;n”&lt;/del&gt;, response);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; printf(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;Ответ&lt;/ins&gt;: %s\&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;n&amp;quot;&lt;/ins&gt;, response);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; dbus_message_unref(call);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; dbus_message_unref(call);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; dbus_message_unref(reply);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; dbus_message_unref(reply);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lockal</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=2369&amp;oldid=prev</id>
		<title>Crazy Rebel: /* Немного об архитектуре */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=2369&amp;oldid=prev"/>
				<updated>2008-03-17T09:27:37Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Немного об архитектуре&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 09:27, 17 марта 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 29:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 29:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Совокупность методов и сигналов, предоставляемых объектом D-Bus, называется интерфейсом объекта D-Bus. Декларируя поддержку определенного интерфейса, объект гарантирует определенную реакцию на сообщения, поступающие извне. Каждый объект может поддерживать несколько интерфейсов, которые, естественно, различаются по именам. Некоторую путаницу создает тот факт, что имена интерфейсов имеют ту же структуру, что и имена соединений (и часто совпадают с ними). Например, объект '''/com/Skype''' экспортирует интерфейс '''com.Skype.API''' (такое же имя имеет соединение, которое создает клиент ''Skype''). Итак, для передачи сообщения другой программе с помощью D-Bus, необходимо знать имя соединения этой программы с демоном D-Bus, имя объекта и имя интерфейса. Для вызова метода, декларируемого интерфейсом, нужно, конечно, знать еще и имя метода. Вы можете придти к выводу, что для того, чтобы обмениваться сообщениями D-Bus с другой программой, вам всегда необходимо создавать объект D-Bus и декларировать поддержку некоторого интерфейса. На самом деле, это не обязательно. Если ваша программа использует D-Bus только для вызова методов объектов других приложений, никаких специальных действий по регистрации объектов выполнять не требуется. Более того, вам не придется придумывать для вашей программы и имя соединения – в процессе подключения к шине демон D-Bus создаст его автоматически. Сгенерированное имя будет иметь вид ''':x.y''', где '''x''' и '''y''' – некоторые числа. На самом деле, подобное имя создается для каждого соединения D-Bus в рамках данной сессии, и именно оно используется демоном для передачи сообщений. В случае с программами, зарегистрировавшими сервисы D-Bus, имя, начинающееся с двоеточия, является синонимом постоянного имени (такого как '''com.Skype.API''') в рамках текущей сессии. Если рассматривать программу, предоставляющую сервис D-Bus, как аналог web-сервера, то имя соединения, начинающееся с двоеточия, можно сравнить с IP-адресом сервера, а постоянное имя – с доменным именем. Иерархия различных элементов D-BUS представлена на Рис. 1.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Совокупность методов и сигналов, предоставляемых объектом D-Bus, называется интерфейсом объекта D-Bus. Декларируя поддержку определенного интерфейса, объект гарантирует определенную реакцию на сообщения, поступающие извне. Каждый объект может поддерживать несколько интерфейсов, которые, естественно, различаются по именам. Некоторую путаницу создает тот факт, что имена интерфейсов имеют ту же структуру, что и имена соединений (и часто совпадают с ними). Например, объект '''/com/Skype''' экспортирует интерфейс '''com.Skype.API''' (такое же имя имеет соединение, которое создает клиент ''Skype''). Итак, для передачи сообщения другой программе с помощью D-Bus, необходимо знать имя соединения этой программы с демоном D-Bus, имя объекта и имя интерфейса. Для вызова метода, декларируемого интерфейсом, нужно, конечно, знать еще и имя метода. Вы можете придти к выводу, что для того, чтобы обмениваться сообщениями D-Bus с другой программой, вам всегда необходимо создавать объект D-Bus и декларировать поддержку некоторого интерфейса. На самом деле, это не обязательно. Если ваша программа использует D-Bus только для вызова методов объектов других приложений, никаких специальных действий по регистрации объектов выполнять не требуется. Более того, вам не придется придумывать для вашей программы и имя соединения – в процессе подключения к шине демон D-Bus создаст его автоматически. Сгенерированное имя будет иметь вид ''':x.y''', где '''x''' и '''y''' – некоторые числа. На самом деле, подобное имя создается для каждого соединения D-Bus в рамках данной сессии, и именно оно используется демоном для передачи сообщений. В случае с программами, зарегистрировавшими сервисы D-Bus, имя, начинающееся с двоеточия, является синонимом постоянного имени (такого как '''com.Skype.API''') в рамках текущей сессии. Если рассматривать программу, предоставляющую сервис D-Bus, как аналог web-сервера, то имя соединения, начинающееся с двоеточия, можно сравнить с IP-адресом сервера, а постоянное имя – с доменным именем. Иерархия различных элементов D-BUS представлена на Рис. 1.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Изображение:LXF99_DBUS1.jpg|Рис. 1. Схема взаимодействия двух приложений с помощью D-Bus.]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Хотя вы и не можете работать с объектами D-Bus напрямую, система предоставляет программистам объектоподобный интерфейс, который реализуется с помощью так называемых прокси-объектов ('''proxy objects'''). Прокси можно считать представителем объекта D-Bus в вашей программе. Насколько прокси-объект похож на «настоящий» – зависит от реализации. В языках Java и Python работа с прокси осуществляется практически так же, как с «настоящими» объектами языка. При использовании интерфейсов библиотеки ''GLib'' для работы с прокси применяется специальный набор функций.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Хотя вы и не можете работать с объектами D-Bus напрямую, система предоставляет программистам объектоподобный интерфейс, который реализуется с помощью так называемых прокси-объектов ('''proxy objects'''). Прокси можно считать представителем объекта D-Bus в вашей программе. Насколько прокси-объект похож на «настоящий» – зависит от реализации. В языках Java и Python работа с прокси осуществляется практически так же, как с «настоящими» объектами языка. При использовании интерфейсов библиотеки ''GLib'' для работы с прокси применяется специальный набор функций.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=1828&amp;oldid=prev</id>
		<title>Crazy Rebel: Новая: ===D-Bus: шины для вашего Linux===  Уже успели подумать о зимней резине или переломах и вывихах? Возвращайтесь...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;diff=1828&amp;oldid=prev"/>
				<updated>2008-03-14T06:44:55Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: ===D-Bus: шины для вашего Linux===  Уже успели подумать о зимней резине или переломах и вывихах? Возвращайтесь...&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF99:D-Bus&amp;amp;diff=1828&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>