org.kde.koala
Class Scheduler

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

public class Scheduler
extends org.kde.qt.QObject
implements DCOPObjectInterface

The KIO.Scheduler manages io-slaves for the application. It also queues jobs and assigns the job to a slave when one becomes available. There are 3 possible ways for a job to get a slave:

1. Direct

This is the default. When you create a job the KIO.Scheduler will be notified and will find either an existing slave that is idle or it will create a new slave for the job. Example:
    TransferJob job = KIO.get(KURL("http://www.kde.org"));
 

2. Scheduled

If you create a lot of jobs, you might want not want to have a slave for each job. If you schedule a job, a maximum number of slaves will be created. When more jobs arrive, they will be queued. When a slave is finished with a job, it will be assigned a job from the queue. Example:
    TransferJob job = KIO.get(KURL("http://www.kde.org"));
    KIO.Scheduler.scheduleJob(job);
 

3. Connection Oriented

For some operations it is important that multiple jobs use the same connection. This can only be ensured if all these jobs use the same slave. You can ask the scheduler to open a slave for connection oriented operations. You can then use the scheduler to assign jobs to this slave. The jobs will be queued and the slave will handle these jobs one after the other. Example:
    Slave slave = KIO.Scheduler.getConnectedSlave(
            KURL("pop3://bastian:password@mail.kde.org"));
    TransferJob job1 = KIO.get(
            KURL("pop3://bastian:password@mail.kde.org/msg1"));
    KIO.Scheduler.assignJobToSlave(slave, job1);
    TransferJob job2 = KIO.get(
            KURL("pop3://bastian:password@mail.kde.org/msg2"));
    KIO.Scheduler.assignJobToSlave(slave, job2);
    TransferJob job3 = KIO.get(
            KURL("pop3://bastian:password@mail.kde.org/msg3"));
    KIO.Scheduler.assignJobToSlave(slave, job3);
    // ... Wait for jobs to finish...
    KIO.Scheduler.disconnectSlave(slave);
 
Note that you need to explicitly disconnect the slave when the connection goes down, so your error handler should contain:
    if (error == KIO.ERR_CONNECTION_BROKEN)
        KIO.Scheduler.disconnectSlave(slave);
 
See SchedulerSignals for signals emitted by Scheduler

See Also:
Slave, Job

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
  Scheduler()
           
protected Scheduler(java.lang.Class dummy)
           
 
Method Summary
static boolean assignJobToSlave(Slave slave, SimpleJob job)
           
 DCOPClient callingDcopClient()
          Returns the DCOPClient responsible for making the call.
static void cancelJob(SimpleJob job)
          Stop the execution of a job.
static void checkSlaveOnHold(boolean b)
          When true, the next job will check whether KLauncher has a slave on hold that is suitable for the job.
 java.lang.String className()
           
static boolean connect(org.kde.qt.QObject sender, java.lang.String signal, org.kde.qt.QObject receiver, java.lang.String member)
           
 boolean connect(org.kde.qt.QObject sender, java.lang.String signal, java.lang.String member)
           
static boolean connect(java.lang.String signal, org.kde.qt.QObject receiver, java.lang.String member)
          Function to connect signals emitted by the scheduler.
 boolean connectDCOPSignal(java.lang.String sender, java.lang.String senderObj, java.lang.String signal, java.lang.String slot, boolean Volatile)
          Connects to a DCOP signal.
 void debug_info()
           
static boolean disconnect(org.kde.qt.QObject sender, java.lang.String signal, org.kde.qt.QObject receiver, java.lang.String member)
           
 boolean disconnectDCOPSignal(java.lang.String sender, java.lang.String senderObj, java.lang.String signal, java.lang.String slot)
          Disconnects a DCOP signal.
static boolean disconnectSlave(Slave slave)
           
static void doJob(SimpleJob job)
          Register job with the scheduler.
 void emitDCOPSignal(java.lang.String signal, byte[] data)
          Emit signal as DCOP signal from this object with data as arguments
static DCOPObjectInterface find(java.lang.String objId)
          Try to find a dcop object with the given id.
 java.util.ArrayList functions()
           
 java.util.ArrayList functionsDynamic()
          This function is of interest when you used an IDL compiler to generate the implementation for functions() but you still want to list some functions dynamically.
static Slave getConnectedSlave(KURL url)
          Requests a slave for use in connection-oriented mode.
static boolean hasObject(java.lang.String objId)
          Checks whether an object with the given id is known in this process.
 java.util.ArrayList interfaces()
          Returns the names of the interfaces, specific ones last.
 java.util.ArrayList interfacesDynamic()
          This function is of interest when you used an IDL compiler to generate the implementation for interfaces() but you still want to list some interfaces dynamically.
static void jobFinished(SimpleJob job, Slave slave)
          Called when a job is done.
 org.kde.qt.QMetaObject metaObject()
           
static java.lang.String objectName(org.kde.qt.QObject arg1)
          Creates an object id for the QObject obj. This is done using the QObject.name() function.
 java.lang.String objId()
          Returns the object id of the DCOPObject.
 boolean process(java.lang.String fun, byte[] data, java.lang.StringBuffer replyType, byte[] replyData)
           
 boolean processDynamic(java.lang.String fun, byte[] data, java.lang.StringBuffer replyType, byte[] replyData)
          This function is of interest when you used an IDL compiler to generate the implementation for process() but you still want to dispatch some functions dynamically.
static void publishSlaveOnHold()
          Send the slave that was put on hold back to KLauncher.
static void putSlaveOnHold(SimpleJob job, KURL url)
          Puts a slave on notice.
static void registerWindow(org.kde.qt.QWidget wid)
          Send the slave that was put on hold back to KLauncher.
static void removeSlaveOnHold()
          Removes any slave that might have been put on hold.
static void scheduleJob(SimpleJob job)
          Calling ths function makes that job gets scheduled for later execution, if multiple jobs are registered it might wait for other jobs to finish.
 void setCallingDcopClient(DCOPClient arg1)
           
 boolean setObjId(java.lang.String objId)
          Renames a dcop object, if no other with the same name exists Use with care, all dcop signals are disconnected
protected  void setupSlave(Slave slave, KURL url, java.lang.String protocol, java.lang.String proxy, boolean newSlave)
           
protected  void slotCleanIdleSlaves()
           
protected  void slotScheduleCoSlave()
           
protected  void slotSlaveConnected()
           
 void slotSlaveDied(Slave slave)
           
protected  void slotSlaveError(int error, java.lang.String errorMsg)
           
 void slotSlaveStatus(int pid, java.lang.String protocol, java.lang.String host, boolean connected)
           
protected  void slotUnregisterWindow(org.kde.qt.QObject arg1)
           
protected  boolean startJobDirect()
           
protected  void startStep()
           
static void unregisterWindow(org.kde.qt.QObject wid)
          Unregisters the window registered by registerWindow().
 
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, connectInternal, connectNotify, customEvent, deleteLater, disconnect, disconnect, disconnect, disconnect, disconnect, disconnect, disconnectInternal, disconnectNotify, dispose, 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, finalize, highPriority, i18n, inherits, insertChild, installEventFilter, isA, isDisposed, 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

Scheduler

protected Scheduler(java.lang.Class dummy)

Scheduler

public Scheduler()
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

connect

public boolean connect(org.kde.qt.QObject sender,
                       java.lang.String signal,
                       java.lang.String member)
Overrides:
connect in class org.kde.qt.QObject

debug_info

public void debug_info()

process

public boolean process(java.lang.String fun,
                       byte[] data,
                       java.lang.StringBuffer replyType,
                       byte[] replyData)
Specified by:
process in interface DCOPObjectInterface

functions

public java.util.ArrayList functions()
Specified by:
functions in interface DCOPObjectInterface

slotSlaveDied

public void slotSlaveDied(Slave slave)

slotSlaveStatus

public void slotSlaveStatus(int pid,
                            java.lang.String protocol,
                            java.lang.String host,
                            boolean connected)

doJob

public static void doJob(SimpleJob job)
Register job with the scheduler. The default is to create a new slave for the job if no slave is available. This can be changed by calling scheduleJob.

Parameters:
job - the job to register

scheduleJob

public static void scheduleJob(SimpleJob job)
Calling ths function makes that job gets scheduled for later execution, if multiple jobs are registered it might wait for other jobs to finish.

Parameters:
job - the job to schedule

cancelJob

public static void cancelJob(SimpleJob job)
Stop the execution of a job.

Parameters:
job - the job to cancel

jobFinished

public static void jobFinished(SimpleJob job,
                               Slave slave)
Called when a job is done.

Parameters:
job - the finished job
slave - the slave that executed the job

putSlaveOnHold

public static void putSlaveOnHold(SimpleJob job,
                                  KURL url)
Puts a slave on notice. A next job may reuse this slave if it requests the same URL. A job can be put on hold after it has emit'ed its mimetype. Based on the mimetype, the program can give control to another component in the same process which can then resume the job by simply asking for the same URL again.

Parameters:
job - the job that should be stopped
url - the URL that is handled by the url

removeSlaveOnHold

public static void removeSlaveOnHold()
Removes any slave that might have been put on hold. If a slave was put on hold it will be killed.


publishSlaveOnHold

public static void publishSlaveOnHold()
Send the slave that was put on hold back to KLauncher. This allows another process to take over the slave and resume the job that was started.


getConnectedSlave

public static Slave getConnectedSlave(KURL url)
Requests a slave for use in connection-oriented mode.

Parameters:
url - This defines the username,password,host & port to connect with.
config - Configuration data for the slave.
Returns:
A pointer to a connected slave or 0 if an error occurred.
See Also:
assignJobToSlave(org.kde.koala.Slave, org.kde.koala.SimpleJob), disconnectSlave(org.kde.koala.Slave)

assignJobToSlave

public static boolean assignJobToSlave(Slave slave,
                                       SimpleJob job)

disconnectSlave

public static boolean disconnectSlave(Slave slave)

registerWindow

public static void registerWindow(org.kde.qt.QWidget wid)
Send the slave that was put on hold back to KLauncher. This allows another process to take over the slave and resume the job the that was started. Register the mainwindow wid with the KIO subsystem Do not call this, it is called automatically from void KIO.Job.setWindow(QWidget).

Parameters:
wid - the window to register

unregisterWindow

public static void unregisterWindow(org.kde.qt.QObject wid)
Unregisters the window registered by registerWindow().


connect

public static boolean connect(java.lang.String signal,
                              org.kde.qt.QObject receiver,
                              java.lang.String member)
Function to connect signals emitted by the scheduler.

See Also:
#slaveConnected, #slaveError

connect

public static boolean connect(org.kde.qt.QObject sender,
                              java.lang.String signal,
                              org.kde.qt.QObject receiver,
                              java.lang.String member)

disconnect

public static boolean disconnect(org.kde.qt.QObject sender,
                                 java.lang.String signal,
                                 org.kde.qt.QObject receiver,
                                 java.lang.String member)

checkSlaveOnHold

public static void checkSlaveOnHold(boolean b)
When true, the next job will check whether KLauncher has a slave on hold that is suitable for the job.

Parameters:
b - true when KLauncher has a job on hold

setupSlave

protected void setupSlave(Slave slave,
                          KURL url,
                          java.lang.String protocol,
                          java.lang.String proxy,
                          boolean newSlave)

startJobDirect

protected boolean startJobDirect()

startStep

protected void startStep()

slotCleanIdleSlaves

protected void slotCleanIdleSlaves()

slotSlaveConnected

protected void slotSlaveConnected()

slotSlaveError

protected void slotSlaveError(int error,
                              java.lang.String errorMsg)

slotScheduleCoSlave

protected void slotScheduleCoSlave()

slotUnregisterWindow

protected void slotUnregisterWindow(org.kde.qt.QObject arg1)

objId

public java.lang.String objId()
Returns the object id of the DCOPObject.

Specified by:
objId in interface DCOPObjectInterface
Returns:
the object's id

setObjId

public boolean setObjId(java.lang.String objId)
Renames a dcop object, if no other with the same name exists Use with care, all dcop signals are disconnected

Specified by:
setObjId in interface DCOPObjectInterface
Parameters:
objId - the new object id

processDynamic

public boolean processDynamic(java.lang.String fun,
                              byte[] data,
                              java.lang.StringBuffer replyType,
                              byte[] replyData)
This function is of interest when you used an IDL compiler to generate the implementation for process() but you still want to dispatch some functions dynamically. Dynamically means that methods may appear and vanish during runtime.

Specified by:
processDynamic in interface DCOPObjectInterface
Parameters:
fun - is the normalized function signature. Such a signature usually looks like foobar(String,int). The return type, qualifiers like "const" etc. are not part of the 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. The default implementation returns always false.
See Also:
process(java.lang.String, byte[], java.lang.StringBuffer, byte[]), DCOPClient.normalizeFunctionSignature(java.lang.String), functions(), DCOPClient.process(java.lang.String, byte[], java.lang.StringBuffer, byte[])

functionsDynamic

public java.util.ArrayList functionsDynamic()
This function is of interest when you used an IDL compiler to generate the implementation for functions() but you still want to list some functions dynamically. Dynamically means that the methods may appear and vanish during runtime.

Specified by:
functionsDynamic in interface DCOPObjectInterface
Returns:
A list of the additional functions, default is an empty list.
See Also:
functions()

interfacesDynamic

public java.util.ArrayList interfacesDynamic()
This function is of interest when you used an IDL compiler to generate the implementation for interfaces() but you still want to list some interfaces dynamically. Dynamically means that they may appear and vanish during runtime.

Specified by:
interfacesDynamic in interface DCOPObjectInterface
Returns:
A list of the additional interfaces, default is an empty list.
See Also:
interfaces()

interfaces

public java.util.ArrayList interfaces()
Returns the names of the interfaces, specific ones last. The functions gets reimplemented by the IDL compiler. If you don't use the IDL compiler, consider implementing this function manually if you want your object to be easily explorable.

Specified by:
interfaces in interface DCOPObjectInterface
Returns:
a list of interfaces
See Also:
functions()

emitDCOPSignal

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

Specified by:
emitDCOPSignal in interface DCOPObjectInterface
Parameters:
signal - the signal to emit
data - the data to send

connectDCOPSignal

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

Specified by:
connectDCOPSignal in interface DCOPObjectInterface
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.
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 slot)
    Disconnects a DCOP signal. A special case is when both sender & signal are empty. In this case all connections related to this object in the current client are disconnected. (Both connections from as well as to this object!)

    Specified by:
    disconnectDCOPSignal in interface DCOPObjectInterface
    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. 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.

    callingDcopClient

    public DCOPClient callingDcopClient()
    Returns the DCOPClient responsible for making the call. Only call this function while you are handling a DCOP call.

    Specified by:
    callingDcopClient in interface DCOPObjectInterface
    Returns:
    the DCOPClient responsible for making the call. This information is only guaranteed to be correct when entering your DCOP function.

    setCallingDcopClient

    public void setCallingDcopClient(DCOPClient arg1)
    Specified by:
    setCallingDcopClient in interface DCOPObjectInterface

    hasObject

    public static boolean hasObject(java.lang.String objId)
    Checks whether an object with the given id is known in this process. DCOPObjectProxy

    Returns:
    true if an object with the questionable objId is known in this process. This query does not ask proxies.

    find

    public static DCOPObjectInterface find(java.lang.String objId)
    Try to find a dcop object with the given id. This function does not query the DCOPObjectProxy.

    Parameters:
    objId - the object id to search
    Returns:
    the DCOPObject for the id objId.

    objectName

    public static java.lang.String objectName(org.kde.qt.QObject arg1)
    Creates an object id for the QObject obj. This is done using the QObject.name() function.

    Parameters:
    obj - the object whose name will be used
    Returns:
    the created object id