21 #ifndef _tdeio_scheduler_h
22 #define _tdeio_scheduler_h
24 #include "tdeio/job.h"
25 #include "tdeio/jobclasses.h"
27 #include <tqptrdict.h>
30 #include <dcopobject.h>
110 class TDEIO_EXPORT
Scheduler :
public TQObject,
virtual public DCOPObject {
114 typedef TQPtrList<SimpleJob> JobList;
129 {
self()->_doJob(job); }
138 {
self()->_scheduleJob(job); }
145 {
self()->_cancelJob(job); }
153 {
self()->_jobFinished(job, slave); }
167 {
self()->_putSlaveOnHold(job, url); }
174 {
self()->_removeSlaveOnHold(); }
182 {
self()->_publishSlaveOnHold(); }
196 {
return self()->_getConnectedSlave(url, config); }
215 {
return self()->_assignJobToSlave(slave, job); }
230 {
return self()->_disconnectSlave(slave); }
243 {
self()->_registerWindow(wid); }
249 static void unregisterWindow(TQObject *wid)
250 {
self()->slotUnregisterWindow(wid); }
258 static bool connect(
const char *signal,
const TQObject *receiver,
260 {
return TQObject::connect(
self(), signal, receiver, member); }
262 static bool connect(
const TQObject* sender,
const char* signal,
263 const TQObject* receiver,
const char* member )
264 {
return TQObject::connect(sender, signal, receiver, member); }
266 static bool disconnect(
const TQObject* sender,
const char* signal,
267 const TQObject* receiver,
const char* member )
268 {
return TQObject::disconnect(sender, signal, receiver, member); }
270 bool connect(
const TQObject *sender,
const char *signal,
272 {
return TQObject::connect(sender, signal, member); }
283 virtual bool process(
const TQCString &fun,
const TQByteArray &data,
284 TQCString& replyType, TQByteArray &replyData);
286 virtual QCStringList functions();
290 void slotSlaveStatus(pid_t pid,
const TQCString &protocol,
291 const TQString &host,
bool connected);
294 void slaveError(
TDEIO::Slave *slave,
int error,
const TQString &errorMsg);
297 void setupSlave(
TDEIO::Slave *slave,
const KURL &url,
const TQString &protocol,
const TQString &proxy ,
bool newSlave,
const TDEIO::MetaData *config=0);
298 bool startJobScheduled(ProtocolInfo *protInfo);
299 bool startJobDirect();
304 void slotCleanIdleSlaves();
305 void slotSlaveConnected();
306 void slotSlaveError(
int error,
const TQString &errorMsg);
307 void slotScheduleCoSlave();
309 void slotUnregisterWindow(TQObject *);
312 class ProtocolInfoDict;
322 void _scheduleCleanup();
324 void _removeSlaveOnHold();
328 void _checkSlaveOnHold(
bool b);
329 void _publishSlaveOnHold();
330 void _registerWindow(TQWidget *wid);
332 Slave *findIdleSlave(ProtocolInfo *protInfo,
SimpleJob *job,
bool &exact);
333 Slave *createSlave(ProtocolInfo *protInfo,
SimpleJob *job,
const KURL &url);
337 TQTimer coSlaveTimer;
338 TQTimer cleanupTimer;
341 SlaveList *slaveList;
342 SlaveList *idleSlaves;
343 SlaveList *coIdleSlaves;
345 ProtocolInfoDict *protInfoDict;
350 TQPtrDict<JobList> coSlaves;
351 ExtraJobData *extraJobData;
353 SessionData *sessionData;
355 TQMap<TQObject *,WId> m_windowList;
357 virtual void virtual_hook(
int id,
void* data );
359 class SchedulerPrivate* d;
The TDEIO::Scheduler manages io-slaves for the application.
static void publishSlaveOnHold()
Send the slave that was put on hold back to TDELauncher.
static void scheduleJob(SimpleJob *job)
static bool connect(const char *signal, const TQObject *receiver, const char *member)
Function to connect signals emitted by the scheduler.
static void registerWindow(TQWidget *wid)
static void putSlaveOnHold(TDEIO::SimpleJob *job, const KURL &url)
static void removeSlaveOnHold()
Removes any slave that might have been put on hold.
static void cancelJob(SimpleJob *job)
static void jobFinished(TDEIO::SimpleJob *job, TDEIO::Slave *slave)
static TDEIO::Slave * getConnectedSlave(const KURL &url, const TDEIO::MetaData &config=MetaData())
Requests a slave for use in connection-oriented mode.
static void doJob(SimpleJob *job)
static void checkSlaveOnHold(bool b)
A simple job (one url and one command).
Attention developers: If you change the implementation of TDEIO::Slave, do not use connection() or sl...
A namespace for TDEIO globals.