public class DBusConnection extends AbstractConnection
This is a Singleton class, only 1 connection to the SYSTEM or SESSION busses can be made. Repeated calls to getConnection will return the same reference.
Signal Handlers and method calls from remote objects are run in their own threads, you MUST handle the concurrency issues.
| Modifier and Type | Class and Description |
|---|---|
class |
DBusConnection.PeerSet
Add addresses of peers to a set which will watch for them to
disappear and automatically remove them from the set.
|
AbstractConnection._thread, AbstractConnection._workerthread, AbstractConnection.FallbackContainer| Modifier and Type | Field and Description |
|---|---|
static String |
DEFAULT_SYSTEM_BUS_ADDRESS |
static int |
SESSION
Session Bus
|
static int |
SYSTEM
System Bus
|
_run, addr, connected, EXCEPTION_DEBUG, exportedObjects, fallbackcontainer, handledSignals, importedObjects, pendingCallbackReplys, pendingCallbacks, pendingCalls, runnables, sender, thread, TIMEOUT, transport, weakreferences, workers| Modifier and Type | Method and Description |
|---|---|
<T extends DBusSignal> |
addSigHandler(Class<T> type,
String source,
DBusInterface object,
DBusSigHandler<T> handler)
Add a Signal Handler.
|
<T extends DBusSignal> |
addSigHandler(Class<T> type,
String source,
DBusSigHandler<T> handler)
Add a Signal Handler.
|
protected <T extends DBusSignal> |
addSigHandler(DBusMatchRule rule,
DBusSigHandler<T> handler) |
void |
disconnect()
Disconnect from the Bus.
|
static DBusConnection |
getConnection(int bustype)
Connect to the BUS.
|
static DBusConnection |
getConnection(String address)
Connect to the BUS.
|
String[] |
getNames()
Returns all the names owned by this connection.
|
DBusInterface |
getPeerRemoteObject(String busname,
String objectpath)
Return a reference to a remote object.
|
<I extends DBusInterface> |
getPeerRemoteObject(String busname,
String objectpath,
Class<I> type) |
<I extends DBusInterface> |
getPeerRemoteObject(String busname,
String objectpath,
Class<I> type,
boolean autostart)
Return a reference to a remote object.
|
DBusInterface |
getRemoteObject(String busname,
String objectpath)
Return a reference to a remote object.
|
<I extends DBusInterface> |
getRemoteObject(String busname,
String objectpath,
Class<I> type)
Return a reference to a remote object.
|
<I extends DBusInterface> |
getRemoteObject(String busname,
String objectpath,
Class<I> type,
boolean autostart)
Return a reference to a remote object.
|
String |
getUniqueName()
Returns the unique name of this connection.
|
void |
releaseBusName(String busname)
Release a bus name.
|
<T extends DBusSignal> |
removeSigHandler(Class<T> type,
String source,
DBusInterface object,
DBusSigHandler<T> handler)
Remove a Signal Handler.
|
<T extends DBusSignal> |
removeSigHandler(Class<T> type,
String source,
DBusSigHandler<T> handler)
Remove a Signal Handler.
|
protected <T extends DBusSignal> |
removeSigHandler(DBusMatchRule rule,
DBusSigHandler<T> handler) |
void |
requestBusName(String busname)
Request a bus name.
|
addFallback, addSigHandler, addSigHandler, addSigHandlerWithoutMatch, callMethodAsync, callWithCallback, changeThreadCount, exportObject, finalize, getAddress, getCallInfo, getError, listen, removeFallback, removeSigHandler, removeSigHandler, sendMessage, sendSignal, setWeakReferences, unExportObjectpublic static final int SYSTEM
public static final int SESSION
public static final String DEFAULT_SYSTEM_BUS_ADDRESS
public static DBusConnection getConnection(String address) throws DBusException
address - The address of the bus to connect toDBusException - If there is a problem connecting to the Bus.public static DBusConnection getConnection(int bustype) throws DBusException
bustype - The Bus to connect to.DBusException - If there is a problem connecting to the Bus.SYSTEM,
SESSIONpublic void releaseBusName(String busname) throws DBusException
busname - The name to release. MUST be in dot-notation like "org.freedesktop.local"DBusException - If the busname is incorrectly formatted.public void requestBusName(String busname) throws DBusException
busname - The name to respond to. MUST be in dot-notation like "org.freedesktop.local"DBusException - If the register name failed, or our name already exists on the bus.
or if busname is incorrectly formatted.public String getUniqueName()
public String[] getNames()
public <I extends DBusInterface> I getPeerRemoteObject(String busname, String objectpath, Class<I> type) throws DBusException
DBusExceptionpublic DBusInterface getPeerRemoteObject(String busname, String objectpath) throws DBusException
This method will use bus introspection to determine the interfaces on a remote object and so may block and may fail. The resulting proxy object will, however, be castable to any interface it implements. It will also autostart the process if applicable. Also note that the resulting proxy may fail to execute the correct method with overloaded methods and that complex types may fail in interesting ways. Basically, if something odd happens, try specifying the interface explicitly.
busname - The bus name to connect to. Usually a well known bus name in dot-notation (such as "org.freedesktop.local")
or may be a DBus address such as ":1-16".objectpath - The path on which the process is exporting the object.$ClassCastException - If type is not a sub-type of DBusInterfaceDBusException - If busname or objectpath are incorrectly formatted.public DBusInterface getRemoteObject(String busname, String objectpath) throws DBusException
This method will use bus introspection to determine the interfaces on a remote object and so may block and may fail. The resulting proxy object will, however, be castable to any interface it implements. It will also autostart the process if applicable. Also note that the resulting proxy may fail to execute the correct method with overloaded methods and that complex types may fail in interesting ways. Basically, if something odd happens, try specifying the interface explicitly.
busname - The bus name to connect to. Usually a well known bus name name in dot-notation (such as "org.freedesktop.local")
or may be a DBus address such as ":1-16".objectpath - The path on which the process is exporting the object.ClassCastException - If type is not a sub-type of DBusInterfaceDBusException - If busname or objectpath are incorrectly formatted.public <I extends DBusInterface> I getPeerRemoteObject(String busname, String objectpath, Class<I> type, boolean autostart) throws DBusException
busname - The bus name to connect to. Usually a well known bus name in dot-notation (such as "org.freedesktop.local")
or may be a DBus address such as ":1-16".objectpath - The path on which the process is exporting the object.$type - The interface they are exporting it on. This type must have the same full class name and exposed method signatures
as the interface the remote object is exporting.autostart - Disable/Enable auto-starting of services in response to calls on this object.
Default is enabled; when calling a method with auto-start enabled, if the destination is a well-known name
and is not owned the bus will attempt to start a process to take the name. When disabled an error is
returned immediately.ClassCastException - If type is not a sub-type of DBusInterfaceDBusException - If busname or objectpath are incorrectly formatted or type is not in a package.public <I extends DBusInterface> I getRemoteObject(String busname, String objectpath, Class<I> type) throws DBusException
busname - The bus name to connect to. Usually a well known bus name name in dot-notation (such as "org.freedesktop.local")
or may be a DBus address such as ":1-16".objectpath - The path on which the process is exporting the object.type - The interface they are exporting it on. This type must have the same full class name and exposed method signatures
as the interface the remote object is exporting.ClassCastException - If type is not a sub-type of DBusInterfaceDBusException - If busname or objectpath are incorrectly formatted or type is not in a package.public <I extends DBusInterface> I getRemoteObject(String busname, String objectpath, Class<I> type, boolean autostart) throws DBusException
busname - The bus name to connect to. Usually a well known bus name name in dot-notation (such as "org.freedesktop.local")
or may be a DBus address such as ":1-16".objectpath - The path on which the process is exporting the object.type - The interface they are exporting it on. This type must have the same full class name and exposed method signatures
as the interface the remote object is exporting.autostart - Disable/Enable auto-starting of services in response to calls on this object.
Default is enabled; when calling a method with auto-start enabled, if the destination is a well-known name
and is not owned the bus will attempt to start a process to take the name. When disabled an error is
returned immediately.ClassCastException - If type is not a sub-type of DBusInterfaceDBusException - If busname or objectpath are incorrectly formatted or type is not in a package.public <T extends DBusSignal> void removeSigHandler(Class<T> type, String source, DBusSigHandler<T> handler) throws DBusException
type - The signal to watch for.source - The source of the signal.DBusException - If listening for the signal on the bus failed.ClassCastException - If type is not a sub-type of DBusSignal.public <T extends DBusSignal> void removeSigHandler(Class<T> type, String source, DBusInterface object, DBusSigHandler<T> handler) throws DBusException
type - The signal to watch for.source - The source of the signal.object - The object emitting the signal.DBusException - If listening for the signal on the bus failed.ClassCastException - If type is not a sub-type of DBusSignal.protected <T extends DBusSignal> void removeSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException
removeSigHandler in class AbstractConnectionDBusExceptionpublic <T extends DBusSignal> void addSigHandler(Class<T> type, String source, DBusSigHandler<T> handler) throws DBusException
type - The signal to watch for.source - The process which will send the signal. This MUST be a unique bus name and not a well known name.handler - The handler to call when a signal is received.DBusException - If listening for the signal on the bus failed.ClassCastException - If type is not a sub-type of DBusSignal.public <T extends DBusSignal> void addSigHandler(Class<T> type, String source, DBusInterface object, DBusSigHandler<T> handler) throws DBusException
type - The signal to watch for.source - The process which will send the signal. This MUST be a unique bus name and not a well known name.object - The object from which the signal will be emittedhandler - The handler to call when a signal is received.DBusException - If listening for the signal on the bus failed.ClassCastException - If type is not a sub-type of DBusSignal.protected <T extends DBusSignal> void addSigHandler(DBusMatchRule rule, DBusSigHandler<T> handler) throws DBusException
addSigHandler in class AbstractConnectionDBusExceptionpublic void disconnect()
disconnect in class AbstractConnectionCopyright © 2019 JBoss by Red Hat. All rights reserved.