I want to use systemd service, so I created xml introspection file with help of Introspect() method at dbus interface:
sudo dbus-send --system --print-reply --reply-timeout=2000 --type=method_call --dest=org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.DBus.Introspectable.Introspect > org.freedesktop.systemd1.xml
Then I edited this file to remove some redundant formatting info and got this:
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.freedesktop.systemd1.Manager">
<method name="GetUnit">
<arg name="name" type="s" direction="in"/>
<arg name="unit" type="o" direction="out"/>
</method>
<method name="GetUnitByPID">
<arg name="pid" type="u" direction="in"/>
<arg name="unit" type="o" direction="out"/>
</method>
<method name="LoadUnit">
<arg name="name" type="s" direction="in"/>
<arg name="unit" type="o" direction="out"/>
</method>
<method name="StartUnit">
<arg name="name" type="s" direction="in"/>
<arg name="mode" type="s" direction="in"/>
<arg name="job" type="o" direction="out"/>
</method>
...
...
etc
But when I try to convert it to fidl, I am getting an error:
Loading D-Bus Introspection XML file 'file:/home/ygurin/workspace/dbus_test/api/org.freedesktop.systemd1.xml' ...
Error during load of D-Bus Introspection XML file 'file:/home/ygurin/workspace/dbus_test/api/org.freedesktop.systemd1.xml'
What does parser want?
but I still have problems with generating of arguments: if method has arguments, generator freezes.
I've tried to write a simple fidl and generated xml from it - it worked fine, but reversing generation from produced xml freezed generator. Is it general known issue?
For now I no longer need to generating of fidls from xml, but when I tried last time, it fails on every function argument what met in the xml.
But now I have other questions for you :)
1. Can I access system bus using Franca?
2. Is it possible to get known if attribute what I using on client side, was not assigned by value?
For example: server has some attribute; server starts but do not assign any value to it. Coud I know this on client side? I tried CallStatus, but it returns SUCCESS in any kind.
Why I need this - I have two components that starting one by one. When second component starts, it connects to the first and gets attribute value from it. But it can be situation when first component had not yet time to set it and value what second component readed will be incorrect. Offcourse this situation could be solved with additional "ready" methods, but, may be, this possibility was already integrated in the Franca?
PS: I use CommonAPI 2.1.5
I've also tried to convert the introspection file got from the systemd and got the same error message. For converting I've used Franca 0.10.0.201507291433 installed from the YAMAICA update site. Using Eclipse Luna under a Ubuntu Linux VM. Is it possible to get any additional debug output outside Eclipse?
Thanks in advance & Regards
Markus