* Source/DKEndpoint.[hm]: Carry over information about the new endpoint when an
old one is being reused. Fix bug in -initWithConnectionTo: where the new
connection never got assigned. Rearrange method order. Improve documentation a
bit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31097 72102866-910b-0410-8b05-ffd578937521
* Header/DKNotificationCenter.h: Add notificationNames ivar.
* Source/DKNotificationCenter.m: Implement registration of signals and
notification names.
* DKIntrospectionParserDelegate.m: Parse signals and trigger their
registration with the appropriate notification center.
* Tests/TestDKProxy.m: Fix test for errors returned by remote objects.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31094 72102866-910b-0410-8b05-ffd578937521
Source/DKProxy.m:
Add DKDBus subclass for getting shared proxies to the org.freedesktop.DBus
services on their respective busses.
* Source/DKProxy.m
Source/DKProxy+Private.h:
Implement -_uniqueName to get the unique name of a service from the bus.
* Headers/DKPort.h: Add "don't know" member value to the bus type enumeration.
* Source/DKPort.m: Use DKDBus instead of -getBusObject magic.
* Source/DKEndpoint.[hm]: Implement -DBusBusType to get the type of bus an
endpoint is connected to.
* Source/DKInterface.[hm]: Add some more methods for signals/properties.
* Headers/DKNotificationCenter.h
Source/DKNotificationCenter.m
Source/GNUmakefile:
Add very much work-in-progress notification center class for managing D-Bus
signals.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31090 72102866-910b-0410-8b05-ffd578937521
Source/DKInterface.m
Source/DKIntrospectionNode.m
Source/DKMethod.m
Source/DKSignal.m
Source/DKObjectPathNode.m:
Fix various issues in -copyWithZone:.
* Source/DKInterface.[hm]: Begin adding plumbing for signals/properties.
* Source/DKIntrospectionNode.[hm]: Add -annotations method to get the
annotation dictionary for a node.
* Tests/TestDKMethod.m: Fix the copy test to use the correct selector.
Fix NSCopying for DKIntrospectionNode and subclasses.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31089 72102866-910b-0410-8b05-ffd578937521
Source/DKPort.m:
Add DKDBusBusType enumeration and related initializer.
* Source/DKArgument.m
Source/DKInterface.m
Source/DKIntrospectionNode.[hm]
Source/DKMethod.m
Source/DKObjectPathNode.m
Source/DKSignal.m:
Adopt NSCopying for DKIntrospectionNode and subclasses.
* Source/NSConnection+DBus.m: Add further integration methods (commented out
until DKPortNameServer can be committed).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31083 72102866-910b-0410-8b05-ffd578937521
Source/DKProxy.m:
Add an explicit NSCondition and a state variable to make synchronisation more
robust (and readable).
* Tests/TestDKProxy.m: Adopt to changed code and add test for calling methods
from multiple threads.
Thread safety improvements.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31061 72102866-910b-0410-8b05-ffd578937521
* Source/DKEndpoint.[hm]: Support watchers and timers on multiple run-loops.
* Source/DKProxy.m: Allow D-Bus methods to be called from multiple threads.
Also enable asynchronous generation of the method cache.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31057 72102866-910b-0410-8b05-ffd578937521
* Source/DKIntrospectionParserDelegate.m: Smarter handling of the root node.
* Source/DKArgument.m
Source/DKMethodCall.m
Source/DKProxy.m
Source/DKProxy+Private.m:
Move some more methods that are often used by the internal classes into
DKProxy+Private.h.
* Source/DKObjectPathNode.[mh]: Implement retrieval of a proxy for a
DKObjectPathNode.
More cleanup and minor improvements.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31050 72102866-910b-0410-8b05-ffd578937521
Source/DKMethod.[hm]
Source/DKSignal.[hm]:
Simplify (or remove) method and signal initalizer to not require the interface
name. Remove _DKMethodIntrospect.
* Source/DKProxy.m
Source/DKProxy+Private.h:
Implement _DKInterfaceIntrospectable to replace _DKMethodIntrospect.
* Source/DKInterface.m: Normalize selectors before table lookups/updates.
* Tests/TestDKMethod.m
Tests/TestDKMethodCall.m:
Adapt test cases to use _DKInterfaceIntrospectable.
Refactor the global introspection method into a global introspection interface
to allow simpler initializers for DKMethod and DKSignal.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31046 72102866-910b-0410-8b05-ffd578937521
Source/GNUmakefile
Source/DKObjectPathNode.[hm]
Source/DKProxy.m
Source/DKProxy+Private.h:
Add DKObjectPathNode class and protocol (handles object trees and interfaces).
Implement DKObjectPathNode protocol in DKProxy and expose it via
DKProxy+Private.h.
* Source/DKArgument.m
Source/DKIntrospectionNode.m
Source/DKMethod.m
Source/DKMethodCall.m
Source/DKOutgoingProxy.h
Source/DKPort.m
Source/DKProxy.m
Source/NSConnection+DBus.m:
Include new DKProxy+Private.h instead of the public header.
* Source/DKMethod.[hm]
Source/DKInterface.[hm]
Source/DKIntrospectionParserDelegate.m
Tests/TestDKMethod.m:
Rename initializers of DKMethod and DKInterface to follow the naming scheme of
the superclass more closely.
* Source/DKIntrospectionParserDelegate.[hm]: Use the parent to store the
introspection tree and not the parser delegate.
Clean up the generation of the introspection data so that the parser delegate
doesn't need to keep the generated tree around. Also be more consistent about
naming initializers in subclasses of DKIntrospectionNode.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31045 72102866-910b-0410-8b05-ffd578937521
Source/DKIntrospectionNode.[hm]
Source/DKMethod.m:
Remove parser delegate methods and ivars.
* Source/DKSignal.[hm]
Source/GNUmakefile:
Add stub for handling signals.
* Source/DKIntrospectionParserDelegate.[hm]: Consolidate XML parsing and keep a
stack for the XML tree.
Refactor introspection handling so that the generation of the introspection
graph happens entirely from within DKIntrospectionParserDelegate.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31041 72102866-910b-0410-8b05-ffd578937521
Source/NSConnection+DBus.m:
Add -proxyAtPath: method to obtain proxies for non-root objects of a D-Bus
service.
* Source/GNUmakefile: Add NSConnection+DBus.[hm] to build.
* Source/DKPort.m: Rearrange so that proxy generation is separated from encoding
the proxy for use in NSConnection.
* Headers/DBusKit.h: Add DKProxy.h and NSConnection+DBus.h.
* Tests/TestDKProxy.m: Test for fetching proxies to non-root objects.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@31012 72102866-910b-0410-8b05-ffd578937521
exception. Also more checking when generating the localized language string for
the UI.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@30996 72102866-910b-0410-8b05-ffd578937521
The Apertium.service hooks into the Apertium machine translation system via
D-Bus and exposes it as a service. You can thus use the translator from within
any GNUstep application. The DBusKit-specific portions are contained in
ApertiumTranslator.m and ApertiumInfo.m.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@30993 72102866-910b-0410-8b05-ffd578937521
Fix a bug where timers were not tracked, causing them to not be invalidated
properly (they would sometimes fire after the target object disappeared).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@30992 72102866-910b-0410-8b05-ffd578937521
should or shouldn't be boxed based on the related invocation.
* Source/DKMethodCall.[hm]
Source/DKProxy.m
Tests/TestDKMethodCall.m
Tests/TestDKProxy.m:
Remove references to the old argument types which did statically decide on a
boxing scheme.
* Headers/DKProxy.h: Remove unused ivar.
Make better use of D-Bus and Objective-C introspection data to decide on the fly
whether an argument to a D-Bus method should be boxed in an Objective-C object
or not.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@30979 72102866-910b-0410-8b05-ffd578937521
the interface.
* Source/DKIntrospectionNode.[hm]: Add -setParent: method that is needed to
reparent nodes from the parser delegate to the proxy that is using them.
* Source/DKIntrospectionParserDelegate.[hm]: Add class to hold the
constructed introspection graph.
* Source/DKMethod.m: Remove call to DKProxy's _installMethod:... method.
* Source/DKProxy.m: Remove parser delegate methods and reorganise the code so
that DKProxy itself is responsible for installing the methods found by
introspection.
* Source/GNUmakefile: Add DKIntrospectionParserDelegate.m to the build.
Separate parsing of introspection data from DKProxy, which is now also
responsible for installing methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@30976 72102866-910b-0410-8b05-ffd578937521
signature so that methods can be called unmangled without boxing the
arguments.
* Source/Tests/TestDKProxy.m: Implement test for unboxed method calls.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@30950 72102866-910b-0410-8b05-ffd578937521
* Source/Tests/TestDKProxy.m: Test for returning errors from D-Bus.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@30948 72102866-910b-0410-8b05-ffd578937521
* Source/AsyncBehavior.h: Minor addition.
* Source/DKArgument.[mh]: Remove -proxyParent method (now in superclass)
* Source/DKInterface.h: Declare -mangledName.
* Source/DKInterface.m: Implement selector/method-map and XML parser delegate
methods.
* Source/DKIntrospectionNode.[mh]: Move -proxyParent method here. Handle
annotations.
* Source/DKMethod.[hm]: Implement -selectorString method to generate selector
names. Also add XML parser delegate methods.
* Source/DKMethodCall.m: Fix bug where an D-Bus error was used unitialized.
* Source/DKProxy.m: Remove async stuff (pretty superfluous right now). Fix
various bugs in selector resolution and implement building the method cache.
* Source/Tests/TestDKProxy.m: Add tests for new functionality.
Implement the remaining bits of basic proxy functionality. Arbitrary D-Bus
methods can now be called when their arguments are boxed as Objective-C types.
Calling methods without boxing to come.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/dbuskit/trunk@30947 72102866-910b-0410-8b05-ffd578937521