Package org.freedesktop.dbus
Class AbstractConnection
java.lang.Object
org.freedesktop.dbus.AbstractConnection
- Direct Known Subclasses:
DBusConnection
,DirectConnection
Handles a connection to DBus.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
protected class
protected class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
protected String
protected boolean
static final boolean
protected AbstractConnection.FallbackContainer
protected Map
<org.freedesktop.dbus.SignalTuple, Vector<DBusSigHandler<? extends DBusSignal>>> protected Map
<DBusInterface, org.freedesktop.dbus.RemoteObject> protected Map
<MethodCall, DBusAsyncReply<? extends Object>> protected Map
<MethodCall, CallbackHandler<? extends Object>> protected org.freedesktop.dbus.EfficientMap
protected LinkedList
<Runnable> protected org.freedesktop.dbus.AbstractConnection._sender
protected AbstractConnection._thread
protected static final int
Timeout in us on checking the BUS for incoming messages and sending outgoing messagesprotected Transport
protected boolean
protected LinkedList
<AbstractConnection._workerthread> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addFallback
(String objectprefix, DBusInterface object) Export an object as a fallback object.<T extends DBusSignal>
voidaddSigHandler
(Class<T> type, DBusInterface object, DBusSigHandler<T> handler) Add a Signal Handler.<T extends DBusSignal>
voidaddSigHandler
(Class<T> type, DBusSigHandler<T> handler) Add a Signal Handler.protected abstract <T extends DBusSignal>
voidaddSigHandler
(DBusMatchRule rule, DBusSigHandler<T> handler) protected <T extends DBusSignal>
voidaddSigHandlerWithoutMatch
(Class<? extends DBusSignal> signal, DBusSigHandler<T> handler) callMethodAsync
(DBusInterface object, String m, Object... parameters) Call a method asynchronously and get a handle with which to get the reply.<A> void
callWithCallback
(DBusInterface object, String m, CallbackHandler<A> callback, Object... parameters) Call a method asynchronously and set a callback.void
changeThreadCount
(byte newcount) Change the number of worker threads to receive method calls and handle signals.void
Disconnect from the Bus.void
exportObject
(String objectpath, DBusInterface object) Export an object so that its methods can be called on DBus.void
finalize()
Returns the address this connection is connected to.static DBusCallInfo
Returns a structure with information on the current method call.getError()
Return any DBus error which has been received.protected void
listen()
void
removeFallback
(String objectprefix) Remove a fallback<T extends DBusSignal>
voidremoveSigHandler
(Class<T> type, DBusInterface object, DBusSigHandler<T> handler) Remove a Signal Handler.<T extends DBusSignal>
voidremoveSigHandler
(Class<T> type, DBusSigHandler<T> handler) Remove a Signal Handler.protected abstract <T extends DBusSignal>
voidremoveSigHandler
(DBusMatchRule rule, DBusSigHandler<T> handler) protected void
void
sendSignal
(DBusSignal signal) Send a signal.void
setWeakReferences
(boolean weakreferences) If set to true the bus will not hold a strong reference to exported objects.void
unExportObject
(String objectpath) Stop Exporting an object
-
Field Details
-
TIMEOUT
protected static final int TIMEOUTTimeout in us on checking the BUS for incoming messages and sending outgoing messages- See Also:
-
exportedObjects
-
importedObjects
-
handledSignals
protected Map<org.freedesktop.dbus.SignalTuple,Vector<DBusSigHandler<? extends DBusSignal>>> handledSignals -
pendingCalls
protected org.freedesktop.dbus.EfficientMap pendingCalls -
pendingCallbacks
-
pendingCallbackReplys
-
runnables
-
workers
-
fallbackcontainer
-
_run
protected boolean _run -
thread
-
sender
protected org.freedesktop.dbus.AbstractConnection._sender sender -
transport
-
addr
-
weakreferences
protected boolean weakreferences -
EXCEPTION_DEBUG
public static final boolean EXCEPTION_DEBUG -
connected
protected boolean connected
-
-
Constructor Details
-
AbstractConnection
- Throws:
DBusException
-
-
Method Details
-
listen
protected void listen() -
changeThreadCount
public void changeThreadCount(byte newcount) Change the number of worker threads to receive method calls and handle signals. Default is 4 threads- Parameters:
newcount
- The new number of worker Threads to use.
-
getCallInfo
Returns a structure with information on the current method call.- Returns:
- the DBusCallInfo for this method call, or null if we are not in a method call.
-
setWeakReferences
public void setWeakReferences(boolean weakreferences) If set to true the bus will not hold a strong reference to exported objects. If they go out of scope they will automatically be unexported from the bus. The default is to hold a strong reference, which means objects must be explicitly unexported before they will be garbage collected. -
exportObject
Export an object so that its methods can be called on DBus.- Parameters:
objectpath
- The path to the object we are exposing. MUST be in slash-notation, like "/org/freedesktop/Local", and SHOULD end with a capitalised term. Only one object may be exposed on each path at any one time, but an object may be exposed on several paths at once.object
- The object to export.- Throws:
DBusException
- If the objectpath is already exporting an object. or if objectpath is incorrectly formatted,
-
addFallback
Export an object as a fallback object. This object will have it's methods invoked for all paths starting with this object path.- Parameters:
objectprefix
- The path below which the fallback handles calls. MUST be in slash-notation, like "/org/freedesktop/Local",object
- The object to export.- Throws:
DBusException
- If the objectpath is incorrectly formatted,
-
removeFallback
Remove a fallback- Parameters:
objectprefix
- The prefix to remove the fallback for.
-
unExportObject
Stop Exporting an object- Parameters:
objectpath
- The objectpath to stop exporting.
-
sendSignal
Send a signal.- Parameters:
signal
- The signal to send.
-
removeSigHandler
public <T extends DBusSignal> void removeSigHandler(Class<T> type, DBusSigHandler<T> handler) throws DBusException Remove a Signal Handler. Stops listening for this signal.- Parameters:
type
- The signal to watch for.- Throws:
DBusException
- If listening for the signal on the bus failed.ClassCastException
- If type is not a sub-type of DBusSignal.
-
removeSigHandler
public <T extends DBusSignal> void removeSigHandler(Class<T> type, DBusInterface object, DBusSigHandler<T> handler) throws DBusException Remove a Signal Handler. Stops listening for this signal.- Parameters:
type
- The signal to watch for.object
- The object emitting the signal.- Throws:
DBusException
- If listening for the signal on the bus failed.ClassCastException
- If type is not a sub-type of DBusSignal.
-
removeSigHandler
protected abstract <T extends DBusSignal> void removeSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException - Throws:
DBusException
-
addSigHandler
public <T extends DBusSignal> void addSigHandler(Class<T> type, DBusSigHandler<T> handler) throws DBusException Add a Signal Handler. Adds a signal handler to call when a signal is received which matches the specified type and name.- Parameters:
type
- The signal to watch for.handler
- The handler to call when a signal is received.- Throws:
DBusException
- If listening for the signal on the bus failed.ClassCastException
- If type is not a sub-type of DBusSignal.
-
addSigHandler
public <T extends DBusSignal> void addSigHandler(Class<T> type, DBusInterface object, DBusSigHandler<T> handler) throws DBusException Add a Signal Handler. Adds a signal handler to call when a signal is received which matches the specified type, name and object.- Parameters:
type
- The signal to watch for.object
- The object from which the signal will be emittedhandler
- The handler to call when a signal is received.- Throws:
DBusException
- If listening for the signal on the bus failed.ClassCastException
- If type is not a sub-type of DBusSignal.
-
addSigHandler
protected abstract <T extends DBusSignal> void addSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException - Throws:
DBusException
-
addSigHandlerWithoutMatch
protected <T extends DBusSignal> void addSigHandlerWithoutMatch(Class<? extends DBusSignal> signal, DBusSigHandler<T> handler) throws DBusException - Throws:
DBusException
-
disconnect
public void disconnect()Disconnect from the Bus. -
finalize
public void finalize() -
getError
Return any DBus error which has been received.- Returns:
- A DBusExecutionException, or null if no error is pending.
-
callWithCallback
public <A> void callWithCallback(DBusInterface object, String m, CallbackHandler<A> callback, Object... parameters) Call a method asynchronously and set a callback. This handler will be called in a separate thread.- Parameters:
object
- The remote object on which to call the method.m
- The name of the method on the interface to call.callback
- The callback handler.parameters
- The parameters to call the method with.
-
callMethodAsync
Call a method asynchronously and get a handle with which to get the reply.- Parameters:
object
- The remote object on which to call the method.m
- The name of the method on the interface to call.parameters
- The parameters to call the method with.- Returns:
- A handle to the call.
-
sendMessage
-
getAddress
Returns the address this connection is connected to.- Throws:
ParseException
-