22 #ifndef _kio_scheduler_h 23 #define _kio_scheduler_h 26 #include "kio/jobclasses.h" 28 #include <tqptrdict.h> 31 #include <dcopobject.h> 111 class KIO_EXPORT
Scheduler :
public TQObject,
virtual public DCOPObject {
115 typedef TQPtrList<SimpleJob> JobList;
130 {
self()->_doJob(job); }
139 {
self()->_scheduleJob(job); }
146 {
self()->_cancelJob(job); }
154 {
self()->_jobFinished(job, slave); }
168 {
self()->_putSlaveOnHold(job, url); }
175 {
self()->_removeSlaveOnHold(); }
183 {
self()->_publishSlaveOnHold(); }
197 {
return self()->_getConnectedSlave(url, config); }
216 {
return self()->_assignJobToSlave(slave, job); }
230 static bool disconnectSlave(
KIO::Slave *slave)
231 {
return self()->_disconnectSlave(slave); }
244 {
self()->_registerWindow(wid); }
250 static void unregisterWindow(TQObject *wid)
251 {
self()->slotUnregisterWindow(wid); }
259 static bool connect(
const char *signal,
const TQObject *receiver,
261 {
return TQObject::connect(
self(), signal, receiver, member); }
263 static bool connect(
const TQObject* sender,
const char* signal,
264 const TQObject* receiver,
const char* member )
265 {
return TQObject::connect(sender, signal, receiver, member); }
267 static bool disconnect(
const TQObject* sender,
const char* signal,
268 const TQObject* receiver,
const char* member )
269 {
return TQObject::disconnect(sender, signal, receiver, member); }
271 bool connect(
const TQObject *sender,
const char *signal,
273 {
return TQObject::connect(sender, signal, member); }
284 virtual bool process(
const TQCString &fun,
const TQByteArray &data,
285 TQCString& replyType, TQByteArray &replyData);
287 virtual QCStringList functions();
291 void slotSlaveStatus(pid_t pid,
const TQCString &protocol,
292 const TQString &host,
bool connected);
295 void slaveError(
KIO::Slave *slave,
int error,
const TQString &errorMsg);
298 void setupSlave(
KIO::Slave *slave,
const KURL &url,
const TQString &protocol,
const TQString &proxy ,
bool newSlave,
const KIO::MetaData *config=0);
299 bool startJobScheduled(ProtocolInfo *protInfo);
300 bool startJobDirect();
305 void slotCleanIdleSlaves();
306 void slotSlaveConnected();
307 void slotSlaveError(
int error,
const TQString &errorMsg);
308 void slotScheduleCoSlave();
310 void slotUnregisterWindow(TQObject *);
313 class ProtocolInfoDict;
323 void _scheduleCleanup();
325 void _removeSlaveOnHold();
329 void _checkSlaveOnHold(
bool b);
330 void _publishSlaveOnHold();
331 void _registerWindow(TQWidget *wid);
333 Slave *findIdleSlave(ProtocolInfo *protInfo,
SimpleJob *job,
bool &exact);
334 Slave *createSlave(ProtocolInfo *protInfo,
SimpleJob *job,
const KURL &url);
338 TQTimer coSlaveTimer;
339 TQTimer cleanupTimer;
342 SlaveList *slaveList;
343 SlaveList *idleSlaves;
344 SlaveList *coIdleSlaves;
346 ProtocolInfoDict *protInfoDict;
351 TQPtrDict<JobList> coSlaves;
352 ExtraJobData *extraJobData;
354 SessionData *sessionData;
356 TQMap<TQObject *,WId> m_windowList;
358 virtual void virtual_hook(
int id,
void* data );
360 class SchedulerPrivate* d;
A namespace for KIO globals.
static void checkSlaveOnHold(bool b)
When true, the next job will check whether KLauncher has a slave on hold that is suitable for the job...
static void scheduleJob(SimpleJob *job)
Calling ths function makes that job gets scheduled for later execution, if multiple jobs are register...
static bool connect(const char *signal, const TQObject *receiver, const char *member)
Function to connect signals emitted by the scheduler.
Attention developers: If you change the implementation of KIO::Slave, do not use connection() or slav...
static void doJob(SimpleJob *job)
Register job with the scheduler.
static KIO::Slave * getConnectedSlave(const KURL &url, const KIO::MetaData &config=MetaData())
Requests a slave for use in connection-oriented mode.
static void removeSlaveOnHold()
Removes any slave that might have been put on hold.
The KIO::Scheduler manages io-slaves for the application.
static void cancelJob(SimpleJob *job)
Stop the execution of a job.
static void publishSlaveOnHold()
Send the slave that was put on hold back to KLauncher.
static void putSlaveOnHold(KIO::SimpleJob *job, const KURL &url)
Puts a slave on notice.
static void registerWindow(TQWidget *wid)
Send the slave that was put on hold back to KLauncher.
static void jobFinished(KIO::SimpleJob *job, KIO::Slave *slave)
Called when a job is done.
A simple job (one url and one command).