Author: lslezak
Date: Wed Feb 11 07:59:08 2009
New Revision: 55401
URL: http://svn.opensuse.org/viewcvs/yast?rev=55401&view=rev
Log:
- DBus service - moved "Import" from /ModuleManeger object directly to
the service interface org.opensuse.yast.modules.ModuleManager
Modified:
branches/tmp/lslezak/core/dbus/namespace_service/DBusModulesServer.cc
branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.cc
branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.h
Modified: branches/tmp/lslezak/core/dbus/namespace_service/DBusModulesServer.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/lslezak/core/dbus/namespace_service/DBusModulesServer.cc?rev=55401&r1=55400&r2=55401&view=diff
==============================================================================
--- branches/tmp/lslezak/core/dbus/namespace_service/DBusModulesServer.cc (original)
+++ branches/tmp/lslezak/core/dbus/namespace_service/DBusModulesServer.cc Wed Feb 11 07:59:08 2009
@@ -222,7 +222,7 @@
sig.params = p;
// register the manager object: register_function(object, interface, method, signature, handler)
- register_method("ModuleManager", "org.opensuse.yast.modules.ModuleManager", "Import", sig, manager_callback);
+ register_method("", "org.opensuse.yast.modules.ModuleManager", "Import", sig, manager_callback);
}
std::string DBusModulesServer::Y2Dtype(constTypePtr type) const
@@ -522,7 +522,7 @@
YCPValue ret;
- if (object == "/ModuleManager")
+ if (object == "/")
{
if (interface == "org.opensuse.yast.modules.ModuleManager")
{
Modified: branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.cc?rev=55401&r1=55400&r2=55401&view=diff
==============================================================================
--- branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.cc (original)
+++ branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.cc Wed Feb 11 07:59:08 2009
@@ -73,6 +73,42 @@
return clients.size() == 0;
}
+std::string DBusServerBase::CreateObjectIntrospection(const ObjectData &od)
+{
+ std::string introspect;
+
+ // iterate over the interfaces
+ for(ObjectData::const_iterator ii = od.begin();
+ ii != od.end();
+ ++ii)
+ {
+ introspect += " <interface name='" + ii->first + "'>\n";
+
+ InterfaceData id = ii->second;
+
+ // iterate over all methods
+ for(InterfaceData::const_iterator iii = id.begin();
+ iii != id.end();
+ ++iii)
+ {
+ // iterate over the methods in the interface
+ introspect += " <method name='" + iii->first + "'>";
+
+ // iterate over all parameters
+ DBusSignature sig = iii->second.second;
+
+ // add somthing like "<arg name='xml_data' type='s' direction='out'/>"
+ introspect += sig.asXML();
+
+ introspect += "</method>\n";
+ }
+
+ introspect += " </interface>\n";
+ }
+
+ return introspect;
+}
+
/**
* Server that exposes a method call and waits for it to be called
*/
@@ -143,11 +179,22 @@
" </method>\n"
" </interface>\n";
+ // add "static" methods (with empty object)
+
for(Objects::const_iterator i = registered_objects.begin();
i != registered_objects.end();
++i)
{
- introspect += " <node name='" + i->first + "'/>\n";
+ std::string object(i->first);
+
+ if (!object.empty())
+ {
+ introspect += " <node name='" + object + "'/>\n";
+ }
+ else
+ {
+ introspect += CreateObjectIntrospection(i->second);
+ }
}
// close the node section
@@ -183,36 +230,7 @@
else
{
ObjectData od = i->second;
-
- // iterate over the interfaces
- for(ObjectData::const_iterator ii = od.begin();
- ii != od.end();
- ++ii)
- {
- introspect += " <interface name='" + ii->first + "'>\n";
-
- InterfaceData id = ii->second;
-
- // iterate over all methods
- for(InterfaceData::const_iterator iii = id.begin();
- iii != id.end();
- ++iii)
- {
- // iterate over the methods in the interface
- introspect += " <method name='" + iii->first + "'>";
-
- // iterate over all parameters
- DBusSignature sig = iii->second.second;
-
- // add somthing like "<arg name='xml_data' type='s' direction='out'/>"
- introspect += sig.asXML();
-
- introspect += "</method>\n";
- }
-
- introspect += " </interface>\n";
- }
-
+ introspect += CreateObjectIntrospection(od);
}
introspect += " </node>\n";
Modified: branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.h?rev=55401&r1=55400&r2=55401&view=diff
==============================================================================
--- branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.h (original)
+++ branches/tmp/lslezak/core/liby2dbus/src/DBusServerBase.h Wed Feb 11 07:59:08 2009
@@ -68,6 +68,8 @@
typedef std::map