* Move Version checking to the ServiceRegistry: Currently, ensuring the interface-version based compatibility of the local proxy and a given remote service would be done asynchronously within the proxy right after its creation. The check should be moved to the service registry, so that a proxy only needs to ask for the locally cached version information of the remote service. According to the current CommonAPI Spec, it is required that a proxy remains "unavailable" when it's counterpart has an incompatible interface version. Feasibility of and alternatives to this approach remain to be determined. * Performance: Check especially message dispatching! Is it possible to do the dispatching without copying the interface name and object path strings? Check (de)serialization, improve where possible. * Implementation of Variants. * Dedicated Test of multiple connect/disconnect cycles * Life Cycle of connections: Disconnect/Destroy with ProxyFactory, how to do this otherwise? * DBusProxyHelper.h: // TODO: Must implement available checks on method calls, and wait for valid avalable status in sync case /* * XXX DBusProxy declares a private DBusReadonlyAttribute variable, which * cuases a circular dependency. As a workaround the DBusProxy must be * forward declared and set as default parameter to the template attribute * classes. * * Since DBus*Attribute use the DBusProxyHelper, we have to use the * DBusProxy class as a template typename. */ * DBusMultiEvent.h: /* * XXX DBusProxy declares a private DBusReadonlyAttribute variable, which * cuases a circular dependency. As a workaround the DBusProxy must be * forward declared and set as default parameter to the template attribute * classes. * * Since DBus*Attribute use the DBusProxyHelper, we have to use the * DBusProxy class as a template typename. */ //TODO: if rehashing occurs, then all iterators are invalidated. //TODO: rework with pointers, since this is D-Bus only typedef typename ListenersMap::iterator Subscription; * DBusAttribute.h: /* * XXX DBusProxy declares a private DBusReadonlyAttribute variable, which * causes a circular dependency. As a workaround the DBusProxy must be * forward declared and set as default parameter to the template attribute * classes. */ * DBusServiceRegistry.h: isServiceInstanceAlive: //TODO Fallback for services not in dbus object manager * DBus Generator: implizite Array-Deklaration via "[]" (z.B. UInt32[] in Methoden-Aufruf) unterstützen! Future development (2.1): * Request Name for DBusStubAdapter: The D-Bus specification states that a single D-Bus connection might own multiple names. We have to make sure that when a register request comes from the CommonAPI StubAdapter Factory that we make sure that the name is already owned by our DBusConnection. Probably we'll have to keep a list of all owned names and request a new one on registration if required. * Check static/dynamic loading of libraries, make it work. * Doxygen in CommonAPI source code. * Main Loop Integration - Per Factory or on Runtime level? - Which functions are needed? - Example with Glib on CommonAPI base (not D-Bus specific) - Christian Linke has some ideas - Handling of D-Bus properties!! Sollte auf Franca attributes gemapped sein (Grund: Interoperabilität) * getValue on attributes is inconsisten with other methods, CallStatus should be in signature not return