DCOPClient Class Reference
Inter-process communication and remote procedure calls for KDE applications. More...
#include <dcopclient.h>
Inheritance diagram for DCOPClient:


Signals | |
void | applicationRegistered (const QCString &appId) |
Indicates that the application appId has been registered with the server we are attached to. | |
void | applicationRemoved (const QCString &appId) |
Indicates that the formerly registered application appId has been removed. | |
void | attachFailed (const QString &msg) |
Indicates that the process of establishing DCOP communications failed in some manner. | |
void | blockUserInput (bool block) |
Indicates that user input shall be blocked or released, depending on the argument. | |
Public Member Functions | |
DCOPClient () | |
Constructs a new DCOP client, but does not attach to any server. | |
virtual | ~DCOPClient () |
Cleans up any open connections and dynamic data. | |
bool | attach () |
Attaches to the DCOP server. | |
void | bindToApp () |
bool | detach () |
Detaches from the DCOP server. | |
bool | isAttached () const |
Returns whether or not the client is attached to the server. | |
bool | isAttachedToForeignServer () const |
Returns whether the client is attached to a server owned by another user. | |
bool | acceptCalls () const |
Returns whether the client handles incoming calls. | |
void | setAcceptCalls (bool b) |
Specify whether the client should accept incoming calls. | |
bool | qtBridgeEnabled () |
Returns whether the DCOP - Qt bridge is enabled. | |
void | setQtBridgeEnabled (bool b) |
Specify whether Qt objects of the application should be accessible via DCOP. | |
QCString | registerAs (const QCString &appId, bool addPID=true) |
Registers at the DCOP server. | |
bool | isRegistered () const |
Returns whether or not the client is registered at the server. | |
QCString | appId () const |
Returns the current app id or a null string if the application hasn't yet been registered. | |
int | socket () const |
Returns the socket fd that is used for communication with the server. | |
void | suspend () |
Temporarily suspends processing of DCOP events. | |
void | resume () |
Resumes the processing of DCOP events. | |
bool | isSuspended () const |
Returns whether DCOP events are being processed. | |
bool | send (const QCString &remApp, const QCString &remObj, const QCString &remFun, const QByteArray &data) |
Sends a data block to the server. | |
bool | send (const QCString &remApp, const QCString &remObj, const QCString &remFun, const QString &data) |
This function acts exactly the same as the above, but the data parameter can be specified as a QString for convenience. | |
bool | call (const QCString &remApp, const QCString &remObj, const QCString &remFun, const QByteArray &data, QCString &replyType, QByteArray &replyData, bool useEventLoop=false) |
Performs a synchronous send and receive. | |
bool | findObject (const QCString &remApp, const QCString &remObj, const QCString &remFun, const QByteArray &data, QCString &foundApp, QCString &foundObj, bool useEventLoop=false) |
Searches for an object which matches a criteria. | |
void | emitDCOPSignal (const QCString &object, const QCString &signal, const QByteArray &data) |
Emits signal as DCOP signal from object object with data as arguments. | |
void | emitDCOPSignal (const QCString &signal, const QByteArray &data) |
bool | connectDCOPSignal (const QCString &sender, const QCString &senderObj, const QCString &signal, const QCString &receiverObj, const QCString &slot, bool Volatile) |
Connects to a DCOP signal. | |
bool | connectDCOPSignal (const QCString &sender, const QCString &signal, const QCString &receiverObj, const QCString &slot, bool Volatile) |
This class or method is obsolete, it is provided for compatibility only. For backwards compatibility | |
bool | disconnectDCOPSignal (const QCString &sender, const QCString &senderObj, const QCString &signal, const QCString &receiverObj, const QCString &slot) |
Disconnects a DCOP signal. | |
bool | disconnectDCOPSignal (const QCString &sender, const QCString &signal, const QCString &receiverObj, const QCString &slot) |
This class or method is obsolete, it is provided for compatibility only. For backwards compatibility | |
virtual bool | process (const QCString &fun, const QByteArray &data, QCString &replyType, QByteArray &replyData) |
Reimplement this function to handle app-wide function calls unassociated w/an object. | |
DCOPClientTransaction * | beginTransaction () |
Delays the reply of the current function call until endTransaction() is called. | |
void | endTransaction (DCOPClientTransaction *t, QCString &replyType, QByteArray &replyData) |
Sends the delayed reply of a function call. | |
Q_INT32 | transactionId () const |
Test whether the current function call is delayed. | |
bool | isApplicationRegistered (const QCString &remApp) |
Checks whether remApp is registered with the DCOP server. | |
QCStringList | registeredApplications () |
Retrieves the list of all currently registered applications from dcopserver. | |
QCStringList | remoteObjects (const QCString &remApp, bool *ok=0) |
Retrieves the list of objects of the remote application remApp . | |
QCStringList | remoteInterfaces (const QCString &remApp, const QCString &remObj, bool *ok=0) |
Retrieves the list of interfaces of the remote object remObj of application remApp . | |
QCStringList | remoteFunctions (const QCString &remApp, const QCString &remObj, bool *ok=0) |
Retrieves the list of functions of the remote object remObj of application remApp . | |
bool | receive (const QCString &app, const QCString &obj, const QCString &fun, const QByteArray &data, QCString &replyType, QByteArray &replyData) |
bool | find (const QCString &app, const QCString &obj, const QCString &fun, const QByteArray &data, QCString &replyType, QByteArray &replyData) |
QCString | senderId () const |
Returns the appId of the last application that talked to us. | |
void | setDefaultObject (const QCString &objId) |
Installs object objId as application-wide default object. | |
QCString | defaultObject () const |
Returns the current default object or an empty string if no object is installed as default object. | |
void | setNotifications (bool enabled) |
Enables / disables the applicationRegistered() / applicationRemoved() signals. | |
void | setDaemonMode (bool daemonMode) |
Tells the dcopserver to treat the client as daemon client, not as regular client. | |
Static Public Member Functions | |
void | setServerAddress (const QCString &addr) |
Sets the address of a server to use upon attaching. | |
QCString | normalizeFunctionSignature (const QCString &fun) |
Normalizes the function signature fun . | |
DCOPClient * | mainClient () |
Returns the application's main dcop client. | |
void | setMainClient (DCOPClient *mainClient) |
Sets the application's main dcop client. | |
void | emergencyClose () |
const char * | postMortemSender () |
const char * | postMortemObject () |
const char * | postMortemFunction () |
QCString | dcopServerFile (const QCString &hostname=0) |
File with information how to reach the dcopserver. | |
QCString | dcopServerFileOld (const QCString &hostname=0) |
This class or method is obsolete, it is provided for compatibility only. For backwards compatibility with KDE 2.x | |
Protected Slots | |
void | processSocketData (int socknum) |
Process data from the socket. | |
Protected Member Functions | |
virtual void | virtual_hook (int id, void *data) |
Detailed Description
Inter-process communication and remote procedure calls for KDE applications.This class provides IPC and RPC for KDE applications. Usually you will not have to instantiate one yourself because KApplication contains a method to return a pointer to a DCOPClient object which can be used for your whole application.
Before being able to send or receive any DCOP messages, you will have to attach your client object to the DCOP server, and then register your application with a specific name. See attach() and registerAs() for more information.
Data to be sent should be serialized into a QDataStream which was initialized with the QByteArray that you actually intend to send the data in. An example of how you might do this:
QByteArray data; QDataStream arg(data, IO_WriteOnly); arg << QString("This is text I am serializing"); client->send("someApp", "someObject", "someFunction", arg);
- See also:
- KApplication::dcopClient()
- Author:
- Preston Brown <pbrown@kde.org>, Matthias Ettrich <ettrich@kde.org>
Definition at line 67 of file dcopclient.h.
Constructor & Destructor Documentation
|
Constructs a new DCOP client, but does not attach to any server.
Definition at line 490 of file dcopclient.cpp. References QObject::connect(), mainClient(), and setMainClient(). |
|
Cleans up any open connections and dynamic data.
Definition at line 514 of file dcopclient.cpp. References detach(), mainClient(), and setMainClient(). |
Member Function Documentation
|
Sets the address of a server to use upon attaching. If no server address is ever specified, attach will try its best to find the server anyway.
Definition at line 531 of file dcopclient.cpp. |
|
Attaches to the DCOP server. If the connection was already attached, the connection will be re-established with the current server address. Naturally, only attached application can use DCOP services. If a QApplication object exists then client registers itself as QApplication::name() + "-" + <pid>. If no QApplication object exists the client registers itself as "anonymous". If you want to register differently, you should use registerAs() instead.
Definition at line 539 of file dcopclient.cpp. |
|
Detaches from the DCOP server.
Definition at line 752 of file dcopclient.cpp. Referenced by processSocketData(), registerAs(), and ~DCOPClient(). |
|
Returns whether or not the client is attached to the server.
Definition at line 775 of file dcopclient.cpp. Referenced by acceptCalls(), endTransaction(), isAttachedToForeignServer(), registerAs(), and send(). |
|
Returns whether the client is attached to a server owned by another user.
Definition at line 783 of file dcopclient.cpp. References isAttached(). |
|
Returns whether the client handles incoming calls.
Definition at line 788 of file dcopclient.cpp. References isAttached(). |
|
Specify whether the client should accept incoming calls. By default clients accept incoming calls, but not when connected to a foreign server.
Definition at line 793 of file dcopclient.cpp. |
|
Returns whether the DCOP - Qt bridge is enabled. By default the DCOP - Qt bridge is enabled.
Definition at line 799 of file dcopclient.cpp. |
|
Specify whether Qt objects of the application should be accessible via DCOP. By default the DCOP - Qt bridge is enabled.
Definition at line 804 of file dcopclient.cpp. |
|
Registers at the DCOP server. If the application was already registered, the registration will be re-done with the new appId.
Registration is necessary if you want to allow other clients to talk to you. They can do so using your
Definition at line 809 of file dcopclient.cpp. References call(), detach(), isAttached(), QCString::isNull(), isRegistered(), and QCString::sprintf(). |
|
Returns whether or not the client is registered at the server.
Definition at line 856 of file dcopclient.cpp. Referenced by registerAs(). |
|
Returns the current app id or a null string if the application hasn't yet been registered.
Definition at line 862 of file dcopclient.cpp. |
|
Returns the socket fd that is used for communication with the server.
Definition at line 868 of file dcopclient.cpp. |
|
Temporarily suspends processing of DCOP events. This can be usefull if you need to show e.g. a dialog before your application is ready to accept DCOP requests. Normally the dialog would start an event loop and in this event loop DCOP requests will be handled. Be aware that not responding to DCOP requests may cause other programs that want to communicate with your application, to hang.
Definition at line 561 of file dcopclient.cpp. |
|
Resumes the processing of DCOP events.
Definition at line 567 of file dcopclient.cpp. |
|
Returns whether DCOP events are being processed.
Definition at line 573 of file dcopclient.cpp. |
|
Sends a data block to the server.
Definition at line 916 of file dcopclient.cpp. References isAttached(), QCString::isEmpty(), normalizeFunctionSignature(), and receive(). Referenced by emitDCOPSignal(), and send(). |
|
This function acts exactly the same as the above, but the data parameter can be specified as a QString for convenience.
Definition at line 963 of file dcopclient.cpp. References send(). |
|
Performs a synchronous send and receive. The parameters are the same as for send, with the exception of another QByteArray being provided for results to be (optionally) returned in. A call blocks the application until the process receives the answer.
If
Definition at line 1543 of file dcopclient.cpp. References QCString::isEmpty(), and receive(). Referenced by connectDCOPSignal(), disconnectDCOPSignal(), isApplicationRegistered(), registerAs(), registeredApplications(), remoteFunctions(), remoteInterfaces(), remoteObjects(), setDaemonMode(), and setNotifications(). |
|
Searches for an object which matches a criteria.
findObject calls
If A findObject blocks the application until the process receives the answer.
If
Definition at line 972 of file dcopclient.cpp. References QValueList::append(), QValueList::begin(), QValueList::end(), QCString::isEmpty(), QCString::length(), and registeredApplications(). |
|
Emits
Definition at line 1762 of file dcopclient.cpp. References normalizeFunctionSignature(), and send(). Referenced by DCOPObject::emitDCOPSignal(). |
|
Connects to a DCOP signal.
Definition at line 1775 of file dcopclient.cpp. References call(), and normalizeFunctionSignature(). Referenced by DCOPObject::connectDCOPSignal(), and connectDCOPSignal(). |
|
This class or method is obsolete, it is provided for compatibility only. For backwards compatibility
Definition at line 1801 of file dcopclient.cpp. References connectDCOPSignal(). |
|
Disconnects a DCOP signal.
A special case is when both
Definition at line 1808 of file dcopclient.cpp. References call(), and normalizeFunctionSignature(). Referenced by DCOPObject::disconnectDCOPSignal(), disconnectDCOPSignal(), DCOPObject::setObjId(), and DCOPObject::~DCOPObject(). |
|
This class or method is obsolete, it is provided for compatibility only. For backwards compatibility
Definition at line 1833 of file dcopclient.cpp. References disconnectDCOPSignal(). |
|
Reimplement this function to handle app-wide function calls unassociated w/an object.
Note that If you do not want to reimplement this function for whatever reason, you can also use a default object or a DCOPObjectProxy.
Definition at line 1033 of file dcopclient.cpp. |
|
Delays the reply of the current function call until endTransaction() is called. This allows a server to queue requests. Note: Should be called from inside process() only!
Definition at line 1696 of file dcopclient.cpp. |
|
Sends the delayed reply of a function call.
Definition at line 1725 of file dcopclient.cpp. References isAttached(). |
|
Test whether the current function call is delayed. Note: Should be called from inside process() only!
Definition at line 1716 of file dcopclient.cpp. |
|
Checks whether
Definition at line 1039 of file dcopclient.cpp. References call(). |
|
Retrieves the list of all currently registered applications from dcopserver.
Definition at line 1053 of file dcopclient.cpp. References call(). Referenced by findObject(). |
|
Retrieves the list of objects of the remote application
Definition at line 1065 of file dcopclient.cpp. References call(). |
|
Retrieves the list of interfaces of the remote object
Definition at line 1081 of file dcopclient.cpp. References call(). |
|
Retrieves the list of functions of the remote object
Definition at line 1097 of file dcopclient.cpp. References call(). |
|
Normalizes the function signature A normalized signature doesn't contain any unnecessary whitespace anymore. The remaining whitespace consists of single blanks only (0x20). Example for a normalized signature:
Definition at line 882 of file dcopclient.cpp. References QCString::copy(), QCString::isEmpty(), and QCString::resize(). Referenced by connectDCOPSignal(), disconnectDCOPSignal(), emitDCOPSignal(), and send(). |
|
Returns the appId of the last application that talked to us.
Definition at line 910 of file dcopclient.cpp. |
|
Installs object
All app-wide messages that have not been processed by the dcopclient will be send further to
Definition at line 1684 of file dcopclient.cpp. |
|
Returns the current default object or an empty string if no object is installed as default object. A default object receives application-wide messages that have not been processed by the DCOPClient itself.
Definition at line 1690 of file dcopclient.cpp. |
|
Enables / disables the applicationRegistered() / applicationRemoved() signals.
Note that a counter is maintained about how often this method was called. If this method is called twice with They are disabled by default.
Definition at line 1113 of file dcopclient.cpp. References call(). |
|
Tells the dcopserver to treat the client as daemon client, not as regular client. If the number of regular clients drops down to zero, the dcopserver will emit a KDE termination signal after 10 seconds.
Definition at line 1125 of file dcopclient.cpp. References call(). |
|
Returns the application's main dcop client. The main client can be used by objects that do not have any specific access to a dcop client. In KDE applications, the main client usually is the same as KAppliction::dcopClient().
Definition at line 479 of file dcopclient.cpp. Referenced by DCOPObject::connectDCOPSignal(), DCOPStub::dcopClient(), DCOPRef::dcopClient(), DCOPClient(), DCOPObject::disconnectDCOPSignal(), DCOPObject::emitDCOPSignal(), DCOPObject::setObjId(), ~DCOPClient(), and DCOPObject::~DCOPObject(). |
|
Sets the application's main dcop client. The main client can be used by objects that do not have any specific access to a dcop client. In KDE applications, the main client usually is the same as KAppliction::dcopClient().
Definition at line 484 of file dcopclient.cpp. Referenced by DCOPClient(), and ~DCOPClient(). |
|
File with information how to reach the dcopserver.
Definition at line 232 of file dcopclient.cpp. |
|
This class or method is obsolete, it is provided for compatibility only. For backwards compatibility with KDE 2.x
Definition at line 239 of file dcopclient.cpp. |
|
Indicates that the application You need to call setNotifications() first, to tell the DCOP server that you want to get these events.
|
|
Indicates that the formerly registered application You need to call setNotifications() first, to tell the DCOP server that you want to get these events.
|
|
Indicates that the process of establishing DCOP communications failed in some manner. Usually attached to a dialog box or some other visual aid.
|
|
Indicates that user input shall be blocked or released, depending on the argument. The signal is emitted whenever the client has to wait too long (i.e. more than 1/10 of a second) for an answer to a synchronous call. In that case, it will enter a local event loop to keep the GUI updated until finally an answer arrives. In KDE, the KApplication object connects to this signal to be able to block any user input (i.e. mouse and key events) while we are waiting for an answer. If we did not do this, the application might end up in an illegal state, as a keyboard shortcut or a mouse action might cause another dcop call to be issued.
|
|
Process data from the socket.
Definition at line 1650 of file dcopclient.cpp. References detach(). |
The documentation for this class was generated from the following files: