org.kde.koala
Class DCOPClient

java.lang.Object
  extended by org.kde.qt.Qt
      extended by org.kde.qt.QObject
          extended by org.kde.koala.DCOPClient
All Implemented Interfaces:
org.kde.qt.QtSupport

public class DCOPClient
extends org.kde.qt.QObject

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 byte[] that you actually intend to send the data in. An example of how you might do this:

   byte[] data;
   QDataStream arg(data, IO_WriteOnly);
   arg << String("This is text I am serializing");
   client.send("someApp", "someObject", "someFunction(String)", data);
 
See DCOPClientSignals for signals emitted by DCOPClient

Author:
Preston Brown , Matthias Ettrich
See Also:
KApplication.dcopClient()

Field Summary
 
Fields inherited from class org.kde.qt.Qt
AlignAuto, AlignBottom, AlignCenter, AlignHCenter, AlignHorizontal_Mask, AlignJustify, AlignLeft, AlignRight, AlignTop, AlignVCenter, AlignVertical_Mask, AlphaDither_Mask, ALT, AltButton, AnchorHref, AnchorName, AndNotROP, AndROP, ArrowCursor, Ascending, ASCII_ACCEL, AutoColor, AutoDither, AutoText, AvoidDither, BDiagPattern, BeginsWith, BevelJoin, BitmapCursor, BlankCursor, Bottom, BottomLeft, BottomRight, BreakAnywhere, BusyCursor, CaseSensitive, ClearROP, ColorMode_Mask, ColorOnly, Contains, ControlButton, CopyROP, CrossCursor, CrossPattern, CTRL, CustomPattern, DashDotDotLine, DashDotLine, DashLine, Dense1Pattern, Dense2Pattern, Dense3Pattern, Dense4Pattern, Dense5Pattern, Dense6Pattern, Dense7Pattern, Descending, DiagCrossPattern, DiffuseAlphaDither, DiffuseDither, Dither_Mask, DitherMode_Mask, DockBottom, DockLeft, DockMinimized, DockRight, DockTop, DockTornOff, DockUnmanaged, DontClip, DontPrint, DotLine, DownArrow, EndsWith, EraseROP, ExactMatch, ExpandTabs, FDiagPattern, FixedColor, FixedPixmap, FlatCap, ForbiddenCursor, HiEnglishUnit, HiMetricUnit, Horizontal, HorPattern, IbeamCursor, Identical, IncludeTrailingSpaces, ISODate, Key_0, Key_1, Key_2, Key_3, Key_4, Key_5, Key_6, Key_7, Key_8, Key_9, Key_A, Key_aacute, Key_Aacute, Key_acircumflex, Key_Acircumflex, Key_acute, Key_adiaeresis, Key_Adiaeresis, Key_ae, Key_AE, Key_agrave, Key_Agrave, Key_Alt, Key_Ampersand, Key_Any, Key_Apostrophe, Key_aring, Key_Aring, Key_AsciiCircum, Key_AsciiTilde, Key_Asterisk, Key_At, Key_atilde, Key_Atilde, Key_B, Key_Back, Key_Backslash, Key_Backspace, Key_BackSpace, Key_Backtab, Key_BackTab, Key_Bar, Key_BassBoost, Key_BassDown, Key_BassUp, Key_BraceLeft, Key_BraceRight, Key_BracketLeft, Key_BracketRight, Key_brokenbar, Key_C, Key_CapsLock, Key_ccedilla, Key_Ccedilla, Key_cedilla, Key_cent, Key_Clear, Key_Colon, Key_Comma, Key_Control, Key_copyright, Key_currency, Key_D, Key_degree, Key_Delete, Key_diaeresis, Key_Direction_L, Key_Direction_R, Key_division, Key_Dollar, Key_Down, Key_E, Key_eacute, Key_Eacute, Key_ecircumflex, Key_Ecircumflex, Key_ediaeresis, Key_Ediaeresis, Key_egrave, Key_Egrave, Key_End, Key_Enter, Key_Equal, Key_Escape, Key_eth, Key_ETH, Key_Exclam, Key_exclamdown, Key_F, Key_F1, Key_F10, Key_F11, Key_F12, Key_F13, Key_F14, Key_F15, Key_F16, Key_F17, Key_F18, Key_F19, Key_F2, Key_F20, Key_F21, Key_F22, Key_F23, Key_F24, Key_F25, Key_F26, Key_F27, Key_F28, Key_F29, Key_F3, Key_F30, Key_F31, Key_F32, Key_F33, Key_F34, Key_F35, Key_F4, Key_F5, Key_F6, Key_F7, Key_F8, Key_F9, Key_Favorites, Key_Forward, Key_G, Key_Greater, Key_guillemotleft, Key_guillemotright, Key_H, Key_Help, Key_Home, Key_HomePage, Key_Hyper_L, Key_Hyper_R, Key_hyphen, Key_I, Key_iacute, Key_Iacute, Key_icircumflex, Key_Icircumflex, Key_idiaeresis, Key_Idiaeresis, Key_igrave, Key_Igrave, Key_Insert, Key_J, Key_K, Key_L, Key_Launch0, Key_Launch1, Key_Launch2, Key_Launch3, Key_Launch4, Key_Launch5, Key_Launch6, Key_Launch7, Key_Launch8, Key_Launch9, Key_LaunchA, Key_LaunchB, Key_LaunchC, Key_LaunchD, Key_LaunchE, Key_LaunchF, Key_LaunchMail, Key_LaunchMedia, Key_Left, Key_Less, Key_M, Key_macron, Key_masculine, Key_MediaLast, Key_MediaNext, Key_MediaPlay, Key_MediaPrev, Key_MediaRecord, Key_MediaStop, Key_Menu, Key_Meta, Key_Minus, Key_mu, Key_multiply, Key_N, Key_Next, Key_nobreakspace, Key_notsign, Key_ntilde, Key_Ntilde, Key_NumberSign, Key_NumLock, Key_O, Key_oacute, Key_Oacute, Key_ocircumflex, Key_Ocircumflex, Key_odiaeresis, Key_Odiaeresis, Key_ograve, Key_Ograve, Key_onehalf, Key_onequarter, Key_onesuperior, Key_Ooblique, Key_OpenUrl, Key_ordfeminine, Key_oslash, Key_otilde, Key_Otilde, Key_P, Key_PageDown, Key_PageUp, Key_paragraph, Key_ParenLeft, Key_ParenRight, Key_Pause, Key_Percent, Key_Period, Key_periodcentered, Key_Plus, Key_plusminus, Key_Print, Key_Prior, Key_Q, Key_Question, Key_questiondown, Key_QuoteDbl, Key_QuoteLeft, Key_R, Key_Refresh, Key_registered, Key_Return, Key_Right, Key_S, Key_ScrollLock, Key_Search, Key_section, Key_Semicolon, Key_Shift, Key_Slash, Key_Space, Key_ssharp, Key_Standby, Key_sterling, Key_Stop, Key_Super_L, Key_Super_R, Key_SysReq, Key_T, Key_Tab, Key_thorn, Key_THORN, Key_threequarters, Key_threesuperior, Key_TrebleDown, Key_TrebleUp, Key_twosuperior, Key_U, Key_uacute, Key_Uacute, Key_ucircumflex, Key_Ucircumflex, Key_udiaeresis, Key_Udiaeresis, Key_ugrave, Key_Ugrave, Key_Underscore, Key_unknown, Key_Up, Key_V, Key_VolumeDown, Key_VolumeMute, Key_VolumeUp, Key_W, Key_X, Key_Y, Key_yacute, Key_Yacute, Key_ydiaeresis, Key_yen, Key_Z, KeyButtonMask, Keypad, LastCursor, LastROP, Left, LeftArrow, LeftButton, LocalDate, LocalTime, LoEnglishUnit, LogText, LoMetricUnit, MacStyle, META, MetaButton, MidButton, Minimized, MiterJoin, MODIFIER_MASK, MonoOnly, MotifStyle, MouseButtonMask, MPenCapStyle, MPenJoinStyle, MPenStyle, MV_10_DOT_0, MV_10_DOT_1, MV_10_DOT_2, MV_10_DOT_3, MV_10_DOT_4, MV_9, MV_CHEETAH, MV_JAGUAR, MV_PANTHER, MV_PUMA, MV_TIGER, MV_Unknown, NandROP, NoAccel, NoAlpha, NoBackground, NoBrush, NoButton, NoMatch, NoPen, NopROP, NorROP, NotAndROP, NotCopyROP, NotEraseROP, NotOrROP, NotROP, NotXorROP, OpaqueMode, OrderedAlphaDither, OrderedDither, OrNotROP, OrROP, Overline, PaletteBackground, PaletteBase, PaletteBrightText, PaletteButton, PaletteButtonText, PaletteDark, PaletteForeground, PaletteHighlight, PaletteHighlightedText, PaletteLight, PaletteLink, PaletteLinkVisited, PaletteMid, PaletteMidlight, PaletteShadow, PaletteText, PartialMatch, PixelUnit, PlainText, PMStyle, PointingHandCursor, PreferDither, RichText, Right, RightArrow, RightButton, RoundCap, RoundJoin, SetROP, SHIFT, ShiftButton, ShowPrefix, SingleLine, SizeAllCursor, SizeBDiagCursor, SizeFDiagCursor, SizeHorCursor, SizeVerCursor, SolidLine, SolidPattern, SplitHCursor, SplitVCursor, SquareCap, StrikeOut, TextDate, ThresholdAlphaDither, ThresholdDither, Top, TopLeft, TopRight, TornOff, TransparentMode, TwipsUnit, UI_AnimateCombo, UI_AnimateMenu, UI_AnimateToolBox, UI_AnimateTooltip, UI_FadeMenu, UI_FadeTooltip, UI_General, Underline, UNICODE_ACCEL, Unmanaged, UpArrow, UpArrowCursor, UTC, VerPattern, Vertical, WaitCursor, WDestructiveClose, WGroupLeader, WhatsThisCursor, Win3Style, WindowActive, WindowFullScreen, WindowMaximized, WindowMinimized, WindowNoState, WindowsStyle, WMacDrawer, WMacNoSheet, WMouseNoMask, WNoAutoErase, WNoMousePropagation, WNorthWestGravity, WordBreak, WPaintClever, WPaintDesktop, WPaintUnclipped, WRepaintNoErase, WResizeNoErase, WShowModal, WState_AutoMask, WState_BlockUpdates, WState_CompressKeys, WState_ConfigPending, WState_Created, WState_CreatedHidden, WState_Disabled, WState_DND, WState_Exposed, WState_ForceDisabled, WState_ForceHide, WState_FullScreen, WState_HasMouse, WState_InPaintEvent, WState_Maximized, WState_Minimized, WState_MouseTracking, WState_OwnCursor, WState_OwnSizePolicy, WState_Polished, WState_Reparented, WState_Reserved0, WState_Resized, WState_Visible, WStaticContents, WStyle_ContextHelp, WStyle_Customize, WStyle_Dialog, WStyle_DialogBorder, WStyle_Mask, WStyle_Maximize, WStyle_Minimize, WStyle_MinMax, WStyle_NoBorder, WStyle_NoBorderEx, WStyle_NormalBorder, WStyle_Reserved, WStyle_Splash, WStyle_StaysOnTop, WStyle_SysMenu, WStyle_Title, WStyle_Tool, WSubWindow, WType_Desktop, WType_Dialog, WType_Mask, WType_Modal, WType_Popup, WType_TopLevel, WV_2000, WV_2003, WV_32s, WV_95, WV_98, WV_CE, WV_CE_based, WV_CENET, WV_DOS_based, WV_Me, WV_NT, WV_NT_based, WV_XP, WWinOwnDC, WX11BypassWM, X11ParentRelative, XorROP
 
Constructor Summary
  DCOPClient()
          Constructs a new DCOP client, but does not attach to any server.
protected DCOPClient(java.lang.Class dummy)
           
 
Method Summary
 boolean acceptCalls()
          Returns whether the client handles incoming calls.
 java.lang.String appId()
          Returns the current app id or a null string if the application hasn't yet been registered.
 boolean attach()
          Attaches to the DCOP server.
 void bindToApp()
          Internal function for KUniqueApplication to register the DCOPClient with the application in case the application didn't exist at the time the DCOPClient was created.
 boolean call(java.lang.String remApp, java.lang.String remObj, java.lang.String remFun, byte[] data, java.lang.StringBuffer replyType, byte[] replyData, boolean useEventLoop, int timeout)
          Performs a synchronous send and receive.
 int callAsync(java.lang.String remApp, java.lang.String remObj, java.lang.String remFun, byte[] data, org.kde.qt.QObject callBackObj, java.lang.String callBackSlot)
          Performs a asynchronous send with receive callback.
 java.lang.String className()
           
 boolean connectDCOPSignal(java.lang.String sender, java.lang.String senderObj, java.lang.String signal, java.lang.String receiverObj, java.lang.String slot, boolean Volatile)
          Connects to a DCOP signal.
static java.lang.String dcopServerFile()
           
static java.lang.String dcopServerFile(java.lang.String hostname)
          File with information how to reach the dcopserver.
 java.lang.String defaultObject()
          Returns the current default object or an empty string if no object is installed as default object.
 boolean detach()
          Detaches from the DCOP server.
 boolean disconnectDCOPSignal(java.lang.String sender, java.lang.String senderObj, java.lang.String signal, java.lang.String receiverObj, java.lang.String slot)
          Disconnects a DCOP signal.
 void dispose()
          Delete the wrapped C++ instance ahead of finalize()
static void emergencyClose()
           
 void emitDCOPSignal(java.lang.String signal, byte[] data)
           
 void emitDCOPSignal(java.lang.String object, java.lang.String signal, byte[] data)
          Emits signal as DCOP signal from object object with data as arguments.
protected  void finalize()
          Deletes the wrapped C++ instance
 boolean find(java.lang.String app, java.lang.String arg2, java.lang.String fun, byte[] data, java.lang.StringBuffer replyType, byte[] replyData)
          Receives a DCOPFind message from the server.
static DCOPClient findLocalClient(java.lang.String _appId)
          Look for the given client only in this process.
 boolean findObject(java.lang.String remApp, java.lang.String remObj, java.lang.String remFun, byte[] data, java.lang.StringBuffer foundApp, java.lang.StringBuffer foundObj, boolean useEventLoop, int timeout)
          Searches for an object which matches a criteria.
static java.lang.String iceauthPath()
          Return the path of iceauth or an empty string if not found.
 boolean isApplicationRegistered(java.lang.String remApp)
          Checks whether remApp is registered with the DCOP server.
 boolean isAttached()
          Returns whether or not the client is attached to the server.
 boolean isAttachedToForeignServer()
          Returns whether the client is attached to a server owned by another user.
 boolean isDisposed()
          Has the wrapped C++ instance been deleted?
 boolean isRegistered()
          Returns whether or not the client is registered at the server.
 boolean isSuspended()
          Returns whether DCOP events are being processed.
static DCOPClient mainClient()
          Returns the application's main dcop client.
 org.kde.qt.QMetaObject metaObject()
           
static java.lang.String normalizeFunctionSignature(java.lang.String fun)
          Normalizes the function signature fun. A normalized signature doesn't contain any unnecessary whitespace anymore.
static java.lang.String postMortemFunction()
           
static java.lang.String postMortemObject()
           
static java.lang.String postMortemSender()
          Provides information about the last DCOP call for debugging purposes.
 boolean process(java.lang.String fun, byte[] data, java.lang.StringBuffer replyType, byte[] replyData)
          Reimplement this function to handle app-wide function calls unassociated w/an object.
protected  void processSocketData(int socknum)
          Process data from the socket.
 boolean qtBridgeEnabled()
          Returns whether the DCOP - Qt bridge is enabled.
 boolean receive(java.lang.String app, java.lang.String arg2, java.lang.String fun, byte[] data, java.lang.StringBuffer replyType, byte[] replyData)
          Receives a DCOPSend or DCOPCall message from the server.
 java.lang.String registerAs(java.lang.String appId)
           
 java.lang.String registerAs(java.lang.String appId, boolean addPID)
          Registers at the DCOP server.
 java.util.ArrayList registeredApplications()
          Retrieves the list of all currently registered applications from dcopserver.
 java.util.ArrayList remoteFunctions(java.lang.String remApp, java.lang.String remObj)
           
 java.util.ArrayList remoteFunctions(java.lang.String remApp, java.lang.String remObj, boolean[] ok)
          Retrieves the list of functions of the remote object remObj of application remApp
 java.util.ArrayList remoteInterfaces(java.lang.String remApp, java.lang.String remObj)
           
 java.util.ArrayList remoteInterfaces(java.lang.String remApp, java.lang.String remObj, boolean[] ok)
          Retrieves the list of interfaces of the remote object remObj of application remApp.
 java.util.ArrayList remoteObjects(java.lang.String remApp)
           
 java.util.ArrayList remoteObjects(java.lang.String remApp, boolean[] ok)
          Retrieves the list of objects of the remote application remApp.
 void resume()
          Resumes the processing of DCOP events.
 boolean send(java.lang.String remApp, java.lang.String remObj, java.lang.String remFun, byte[] data)
          Sends a data block to the server.
 boolean send(java.lang.String remApp, java.lang.String remObj, java.lang.String remFun, java.lang.String data)
          This function acts exactly the same as the above, but the data parameter can be specified as a String for convenience.
 java.lang.String senderId()
          Returns the appId of the last application that talked to us.
 void setAcceptCalls(boolean b)
          Specify whether the client should accept incoming calls.
 void setDaemonMode(boolean daemonMode)
          Tells the dcopserver to treat the client as daemon client, not as regular client.
 void setDefaultObject(java.lang.String objId)
          Installs object objId as application-wide default object.
static void setMainClient(DCOPClient mainClient)
          Sets the application's main dcop client.
 void setNotifications(boolean enabled)
          Enables / disables the applicationRegistered() / applicationRemoved() signals.
 void setPriorityCall(boolean arg1)
          Switch to priority call mode.
 void setQtBridgeEnabled(boolean b)
          Specify whether Qt objects of the application should be accessible via DCOP.
static void setServerAddress(java.lang.String addr)
          Sets the address of a server to use upon attaching.
 int socket()
          Returns the socket fd that is used for communication with the server.
 void suspend()
          Temporarily suspends processing of DCOP events.
 int transactionId()
          Test whether the current function call is delayed.
 
Methods inherited from class org.kde.qt.QObject
activate_filters, activate_signal_bool, activate_signal, activate_signal, activate_signal, activate_signal, blockSignals, checkConnectArgs, child, child, child, childEvent, children, connect, connect, connectInternal, connectNotify, customEvent, deleteLater, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnectInternal, disconnectNotify, dumpObjectInfo, dumpObjectTree, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, emit, event, eventFilter, highPriority, i18n, inherits, insertChild, installEventFilter, isA, isWidgetType, killTimer, killTimers, name, name, normalizeSignalSlot, objectTrees, parent, property, queryList, queryList, queryList, queryList, queryList, registerUserData, removeChild, removeEventFilter, sender, setName, setProperty, signalsBlocked, startTimer, timerEvent, tr, tr
 
Methods inherited from class org.kde.qt.Qt
arrowCursor, bin, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, bitBlt, black, blankCursor, blue, color0, color1, copyBlt, copyBlt, copyBlt, copyBlt, copyBlt, crossCursor, cyan, darkBlue, darkCyan, darkGray, darkGreen, darkMagenta, darkRed, darkYellow, dec, dynamicCast, endl, flush, forbiddenCursor, fromUtf8, gray, green, hex, ibeamCursor, lightGray, magenta, oct, op_div, op_div, op_div, op_div, op_equals, op_equals, op_equals, op_equals, op_minus, op_minus, op_minus, op_mult, op_mult, op_mult, op_mult, op_mult, op_mult, op_mult, op_mult, op_mult, op_not_equals, op_not_equals, op_not_equals, op_not_equals, op_plus, op_plus, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_read, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, op_write, pointingHandCursor, qAlpha, qApp, qAppName, qBlue, qCompress, qCompress, qDebug, qDebug, qDrawArrow, qDrawItem, qDrawItem, qDrawItem, qDrawPlainRect, qDrawPlainRect, qDrawPlainRect, qDrawPlainRect, qDrawPlainRect, qDrawPlainRect, qDrawShadeLine, qDrawShadeLine, qDrawShadeLine, qDrawShadeLine, qDrawShadeLine, qDrawShadeLine, qDrawShadeLine, qDrawShadeLine, qDrawShadePanel, qDrawShadePanel, qDrawShadePanel, qDrawShadePanel, qDrawShadePanel, qDrawShadePanel, qDrawShadePanel, qDrawShadePanel, qDrawShadeRect, qDrawShadeRect, qDrawShadeRect, qDrawShadeRect, qDrawShadeRect, qDrawShadeRect, qDrawShadeRect, qDrawShadeRect, qDrawShadeRect, qDrawShadeRect, qDrawWinButton, qDrawWinButton, qDrawWinButton, qDrawWinButton, qDrawWinButton, qDrawWinButton, qDrawWinPanel, qDrawWinPanel, qDrawWinPanel, qDrawWinPanel, qDrawWinPanel, qDrawWinPanel, qFatal, qFatal, qGLVersion, qGray, qGray, qGreen, qInitNetworkProtocols, qInstallPath, qInstallPathBins, qInstallPathData, qInstallPathDocs, qInstallPathHeaders, qInstallPathLibs, qInstallPathPlugins, qInstallPathSysconf, qInstallPathTranslations, qItemRect, qItemRect, qObsolete, qObsolete, qObsolete, qRed, qRgb, qRgba, qRound, qSharedBuild, qSuppressObsoleteWarnings, qSuppressObsoleteWarnings, qSysInfo, qSystemWarning, qSystemWarning, qUncompress, qUncompress, qVersion, qWarning, qWarning, red, reset, SIGNAL, sizeAllCursor, sizeBDiagCursor, sizeFDiagCursor, sizeHorCursor, sizeVerCursor, SLOT, splitHCursor, splitVCursor, upArrowCursor, waitCursor, whatsThisCursor, white, ws, yellow
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DCOPClient

protected DCOPClient(java.lang.Class dummy)

DCOPClient

public DCOPClient()
Constructs a new DCOP client, but does not attach to any server. @short Constructs a new DCOP client, but does not attach to any server.

Method Detail

metaObject

public org.kde.qt.QMetaObject metaObject()
Overrides:
metaObject in class org.kde.qt.QObject

className

public java.lang.String className()
Overrides:
className in class org.kde.qt.QObject

attach

public boolean attach()
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() + "-" + \. If no QApplication object exists the client registers itself as "anonymous". If you want to register differently, you should use registerAs() instead.

Returns:
true if attaching was successful.

bindToApp

public void bindToApp()
Internal function for KUniqueApplication to register the DCOPClient with the application in case the application didn't exist at the time the DCOPClient was created.


detach

public boolean detach()
Detaches from the DCOP server.

Returns:
true if successful, false otherwise

isAttached

public boolean isAttached()
Returns whether or not the client is attached to the server.

Returns:
true if attached, false if not

isAttachedToForeignServer

public boolean isAttachedToForeignServer()
Returns whether the client is attached to a server owned by another user.

Returns:
true if attached to a foreign server, false if not

acceptCalls

public boolean acceptCalls()
Returns whether the client handles incoming calls.

Returns:
true if the client accepts calls

setAcceptCalls

public void setAcceptCalls(boolean b)
Specify whether the client should accept incoming calls. By default clients accept incoming calls, but not when connected to a foreign server.

Parameters:
b - true to accept calls, false to reject them

qtBridgeEnabled

public boolean qtBridgeEnabled()
Returns whether the DCOP - Qt bridge is enabled. By default the DCOP - Qt bridge is enabled.

Returns:
true if Qt objects are accessible over DCOP

setQtBridgeEnabled

public void setQtBridgeEnabled(boolean b)
Specify whether Qt objects of the application should be accessible via DCOP. By default the DCOP - Qt bridge is enabled.

Parameters:
b - true to make Qt objects accessible over DCOP

registerAs

public java.lang.String registerAs(java.lang.String appId,
                                   boolean addPID)
Registers at the DCOP server. If the application was already registered, the registration will be re-done with the new appId. appId is a unique application/program id that the server will use to associate requests with. If there is already an application registered with the same name, the server will add a number to the id to unify it. If addPID is true, the PID of the current process will be added to id. Registration is necessary if you want to allow other clients to talk to you. They can do so using your appId as first parameter for send() or call(). If you just want to talk to other clients, you do not need to register at the server. In that case attach() is enough. It will implicitly register you as "anonymous".

Parameters:
appId - the id of the application
addPID - true to add the process id
Returns:
The actual appId used for the registration or a null string if the registration wasn't successful.

registerAs

public java.lang.String registerAs(java.lang.String appId)

isRegistered

public boolean isRegistered()
Returns whether or not the client is registered at the server.

Returns:
true if registered at the server

appId

public java.lang.String appId()
Returns the current app id or a null string if the application hasn't yet been registered.

Returns:
the application id, or null if not registered

socket

public int socket()
Returns the socket fd that is used for communication with the server.

Returns:
The socket over which DCOP is communicating with the server.

suspend

public void suspend()
Temporarily suspends processing of DCOP events. This can be useful 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.

See Also:
resume(), isSuspended()

resume

public void resume()
Resumes the processing of DCOP events.

See Also:
#suspend#, isSuspended()

isSuspended

public boolean isSuspended()
Returns whether DCOP events are being processed.

See Also:
suspend(), #resume#

send

public boolean send(java.lang.String remApp,
                    java.lang.String remObj,
                    java.lang.String remFun,
                    byte[] data)
Sends a data block to the server.

Parameters:
remApp - The remote application id.
remObj - The name of the remote object.
remFun - The remote function in the specified object to call.
data - The data to provide to the remote function.
Returns:
Whether or not the server was able to accept the send.

send

public boolean send(java.lang.String remApp,
                    java.lang.String remObj,
                    java.lang.String remFun,
                    java.lang.String data)
This function acts exactly the same as the above, but the data parameter can be specified as a String for convenience.

Parameters:
remApp - The remote application id.
remObj - The name of the remote object.
remFun - The remote function in the specified object to call.
data - The data to provide to the remote function.
Returns:
Whether or not the server was able to accept the send.

call

public boolean call(java.lang.String remApp,
                    java.lang.String remObj,
                    java.lang.String remFun,
                    byte[] data,
                    java.lang.StringBuffer replyType,
                    byte[] replyData,
                    boolean useEventLoop,
                    int timeout)
Performs a synchronous send and receive. The parameters are the same as for send, with the exception of another byte[] being provided for results to be (optionally) returned in. A call blocks the application until the process receives the answer. If useEventLoop is true, a local event loop will be started after 1/10th of a second in order to keep the user interface updated (by processing paint events and such) until an answer is received.

Parameters:
remApp - the remote application's id
remObj - the remote object id
remFun - the remote function id
data - the data to send
replyType - the type of the reply will be written here
replyData - the data of the reply will be written here
useEventLoop - if true the event loop will be started when the call blocks too long
timeout - timeout for the call in miliseconds, or -1 for no timeout
Returns:
true if successful, false otherwise
See Also:
send(java.lang.String, java.lang.String, java.lang.String, byte[])

callAsync

public int callAsync(java.lang.String remApp,
                     java.lang.String remObj,
                     java.lang.String remFun,
                     byte[] data,
                     org.kde.qt.QObject callBackObj,
                     java.lang.String callBackSlot)
Performs a asynchronous send with receive callback. The first four parameters are the same as for send. callBackObj and callBackSlot specify a call back slot that is called when an answer is received. The slot should have the following signature: callBackSlot(int callId, String replyType, const byte[] &replyData);

Parameters:
remApp - the remote application's id
remObj - the remote object id
remFun - the remote function id
data - the data to send
callBackObj - object to call back
callBackSlot - slot to call back
Returns:
0 on failure, on success a callId > 0 is returned that will be passed as first argument of the result call back
See Also:
send(java.lang.String, java.lang.String, java.lang.String, byte[]), #callback

findObject

public boolean findObject(java.lang.String remApp,
                          java.lang.String remObj,
                          java.lang.String remFun,
                          byte[] data,
                          java.lang.StringBuffer foundApp,
                          java.lang.StringBuffer foundObj,
                          boolean useEventLoop,
                          int timeout)
Searches for an object which matches a criteria. findObject calls remFun in the applications and objects identified by remApp and remObj until remFun returns true. The name of the application and object that returned true are returned in foundApp and foundObj respectively. If remFun is empty a default function is called in the object which always returns true. A findObject blocks the application until the process receives the answer. If useEventLoop is true, a local event loop will be started after 1/10th of a second in order to keep the user interface updated (by processing paint events and such) until an answer is received.

Parameters:
remApp - The remote application id.
remObj - The name of the remote object.
remFun - The remote function in the specified object to call. This function should return a boolean and is used as criteria.
data - The data to provide to the remote function.
foundApp - The remote application id that matched the criteria.
foundObj - The remote object that matched the criteria.
useEventLoop - if true the event loop will be started when the call blocks too long
timeout - timeout for the call in miliseconds, or -1 for no timeout
Returns:
true is returned when an object was found for which remFun returned true. If no such object is the function returns false.
See Also:
send(java.lang.String, java.lang.String, java.lang.String, byte[])

emitDCOPSignal

public void emitDCOPSignal(java.lang.String object,
                           java.lang.String signal,
                           byte[] data)
Emits signal as DCOP signal from object object with data as arguments.


emitDCOPSignal

public void emitDCOPSignal(java.lang.String signal,
                           byte[] data)

connectDCOPSignal

public boolean connectDCOPSignal(java.lang.String sender,
                                 java.lang.String senderObj,
                                 java.lang.String signal,
                                 java.lang.String receiverObj,
                                 java.lang.String slot,
                                 boolean Volatile)
Connects to a DCOP signal.

Parameters:
sender - the name of the client that emits the signal. When empty the signal will be passed from any client.
senderObj - the name of the sending object that emits the signal.
signal - the name of the signal. The arguments should match with slot.
receiverObj - The name of the object to call
slot - The name of the slot to call. Its arguments should match with signal.
Volatile - If true, the connection will not be reestablished when sender unregisters and reregisters with DCOP. In this case the sender must be registered when the connection is made. If false, the connection will be reestablished when sender reregisters. In this case the connection can be made even if sender is not registered at that time.
  • Volatile is true and sender does not exist.
  • signal and slot do not have matching arguments.
  • @return false if a connection could not be established. This will be the case when

    disconnectDCOPSignal

    public boolean disconnectDCOPSignal(java.lang.String sender,
                                        java.lang.String senderObj,
                                        java.lang.String signal,
                                        java.lang.String receiverObj,
                                        java.lang.String slot)
    Disconnects a DCOP signal. A special case is when both sender & signal are empty. In this case all connections related to receiverObj in the current client are disconnected. (Both connections from as well as to this object!)

    Parameters:
    sender - the name of the client that emits the signal.
    senderObj - the name of the object that emits the signal. If empty all objects will be disconnected.
    signal - the name of the signal. The arguments should match with slot.
    receiverObj - The name of the object the signal is connected to. If empty all objects will be disconnected.
    slot - The name of the slot the signal is connected to. If empty all slots will be disconnected.
    Returns:
    false if no connection(s) where removed.

    process

    public boolean process(java.lang.String fun,
                           byte[] data,
                           java.lang.StringBuffer replyType,
                           byte[] replyData)
    Reimplement this function to handle app-wide function calls unassociated w/an object. Note that fun is normalized. See normalizeFunctionSignature(). If you do not want to reimplement this function for whatever reason, you can also use a default object or a DCOPObjectProxy.

    Parameters:
    fun - the normalized function signature
    data - the received data
    replyType - write the reply type in this string
    replyData - write the reply data in this array
    Returns:
    true if successful, false otherwise
    See Also:
    setDefaultObject(java.lang.String)

    transactionId

    public int transactionId()
    Test whether the current function call is delayed. Note: Should be called from inside process() only!

    Returns:
    The ID of the current transaction or 0 if no transaction is going on.
    See Also:
    process(java.lang.String, byte[], java.lang.StringBuffer, byte[]), #beginTransaction

    isApplicationRegistered

    public boolean isApplicationRegistered(java.lang.String remApp)
    Checks whether remApp is registered with the DCOP server.

    Parameters:
    remApp - the id of the remote application
    Returns:
    true if the remote application is registered, otherwise false.

    registeredApplications

    public java.util.ArrayList registeredApplications()
    Retrieves the list of all currently registered applications from dcopserver.

    Returns:
    a list of all regietered applications

    remoteObjects

    public java.util.ArrayList remoteObjects(java.lang.String remApp,
                                             boolean[] ok)
    Retrieves the list of objects of the remote application remApp.

    Parameters:
    remApp - he id of the application
    ok - if not null, the function sets ok to true if successful and false if an error occurred
    Returns:
    the list of object ids

    remoteObjects

    public java.util.ArrayList remoteObjects(java.lang.String remApp)

    remoteInterfaces

    public java.util.ArrayList remoteInterfaces(java.lang.String remApp,
                                                java.lang.String remObj,
                                                boolean[] ok)
    Retrieves the list of interfaces of the remote object remObj of application remApp.

    Parameters:
    remApp - the id of the application
    remObj - the id of the object
    ok - if not null, the function sets ok to true if successful and false if an error occurred
    Returns:
    the list of interfaces

    remoteInterfaces

    public java.util.ArrayList remoteInterfaces(java.lang.String remApp,
                                                java.lang.String remObj)

    remoteFunctions

    public java.util.ArrayList remoteFunctions(java.lang.String remApp,
                                               java.lang.String remObj,
                                               boolean[] ok)
    Retrieves the list of functions of the remote object remObj of application remApp

    Parameters:
    remApp - the id of the application
    remObj - the id of the object
    ok - if not null, the function sets ok to true if successful and false if an error occurred
    Returns:
    the list of function ids

    remoteFunctions

    public java.util.ArrayList remoteFunctions(java.lang.String remApp,
                                               java.lang.String remObj)

    receive

    public boolean receive(java.lang.String app,
                           java.lang.String arg2,
                           java.lang.String fun,
                           byte[] data,
                           java.lang.StringBuffer replyType,
                           byte[] replyData)
    Receives a DCOPSend or DCOPCall message from the server.

    Parameters:
    app - The application the message was intended for. Should be equal to our appId that we passed when the DCOPClient was created.
    obj - The name of the object to pass the data on to.
    fun - The name of the function in the object to call.
    data - The arguments for the function.
    replyType - write the reply type in this string
    replyData - write the reply data in this array
    Returns:
    true if successful, false otherwise

    find

    public boolean find(java.lang.String app,
                        java.lang.String arg2,
                        java.lang.String fun,
                        byte[] data,
                        java.lang.StringBuffer replyType,
                        byte[] replyData)
    Receives a DCOPFind message from the server.

    Parameters:
    app - The application the message was intended for. Should be equal to our appId that we passed when the DCOPClient was created.
    obj - The name of the object to pass the data on to.
    fun - The name of the function in the object to call.
    data - The arguments for the function.
    replyType - write the reply type in this string
    replyData - write the reply data in this array

    senderId

    public java.lang.String senderId()
    Returns the appId of the last application that talked to us.

    Returns:
    the application id of the last application that send a message to this client

    setDefaultObject

    public void setDefaultObject(java.lang.String objId)
    Installs object objId as application-wide default object. All app-wide messages that have not been processed by the dcopclient will be send further to objId.

    Parameters:
    objId - the id of the new default object

    defaultObject

    public java.lang.String defaultObject()
    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.

    Returns:
    the id of the new default object

    setNotifications

    public void setNotifications(boolean enabled)
    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 enabled set to true, notifications will be enabled until it was called with enabled set to false as often. They are disabled by default.

    Parameters:
    enabled - true to enable notifications, false to disable

    setDaemonMode

    public void setDaemonMode(boolean daemonMode)
    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.

    Parameters:
    daemonMode - true to enable daemon mode, false to disable

    setPriorityCall

    public void setPriorityCall(boolean arg1)
    Switch to priority call mode.


    setServerAddress

    public static void setServerAddress(java.lang.String addr)
    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.

    Parameters:
    addr - the new address of the server

    normalizeFunctionSignature

    public static java.lang.String normalizeFunctionSignature(java.lang.String fun)
    Normalizes the function signature fun. A normalized signature doesn't contain any unnecessary whitespace anymore. The remaining whitespace consists of single blanks only (0x20). Example for a normalized signature:
                       "someFunction(String,int)"
                     
    When using send() or call(), normalization is done automatically for you.

    Parameters:
    fun - the function signature to normalize
    Returns:
    the normalized function

    mainClient

    public static DCOPClient mainClient()
    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 KApplication.dcopClient().

    Returns:
    the application's main dcop client

    setMainClient

    public static void setMainClient(DCOPClient mainClient)
    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 KApplication.dcopClient().

    Parameters:
    mainClient - the new main dcop client

    findLocalClient

    public static DCOPClient findLocalClient(java.lang.String _appId)
    Look for the given client only in this process. This can be used to check whether a given client (by name) is running in the same process or in another one.


    emergencyClose

    public static void emergencyClose()

    postMortemSender

    public static java.lang.String postMortemSender()
    Provides information about the last DCOP call for debugging purposes.


    postMortemObject

    public static java.lang.String postMortemObject()

    postMortemFunction

    public static java.lang.String postMortemFunction()

    dcopServerFile

    public static java.lang.String dcopServerFile(java.lang.String hostname)
    File with information how to reach the dcopserver.

    Parameters:
    hostname - Hostname to use, if empty current hostname of the system is used.
    Returns:
    Filename that contains information how to contact the DCOPserver.

    dcopServerFile

    public static java.lang.String dcopServerFile()

    iceauthPath

    public static java.lang.String iceauthPath()
    Return the path of iceauth or an empty string if not found.


    processSocketData

    protected void processSocketData(int socknum)
    Process data from the socket.

    Parameters:
    socknum - the fd of the socket

    finalize

    protected void finalize()
                     throws java.lang.InternalError
    Deletes the wrapped C++ instance

    Overrides:
    finalize in class org.kde.qt.QObject
    Throws:
    java.lang.InternalError

    dispose

    public void dispose()
    Delete the wrapped C++ instance ahead of finalize()

    Overrides:
    dispose in class org.kde.qt.QObject

    isDisposed

    public boolean isDisposed()
    Has the wrapped C++ instance been deleted?

    Overrides:
    isDisposed in class org.kde.qt.QObject