KIO
scheduler.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _kio_scheduler_h
00023 #define _kio_scheduler_h
00024
00025 #include "kio/job.h"
00026 #include "kio/jobclasses.h"
00027 #include <QtCore/QTimer>
00028 #include <QtCore/QMap>
00029 #include <QtGui/QWidgetList>
00030 #include <sys/types.h>
00031
00032 namespace KIO {
00033
00034 class Slave;
00035 class SlaveConfig;
00036 class SessionData;
00037
00038 class SchedulerPrivate;
00110 class KIO_EXPORT Scheduler : public QObject
00111 {
00112 Q_OBJECT
00113 Q_CLASSINFO("D-Bus Interface", "org.kde.KIO.Scheduler")
00114 public:
00121 static void doJob(SimpleJob *job);
00122
00129 static void scheduleJob(SimpleJob *job);
00130
00135 static void cancelJob(SimpleJob *job);
00136
00142 static void jobFinished(KIO::SimpleJob *job, KIO::Slave *slave);
00143
00155 static void putSlaveOnHold(KIO::SimpleJob *job, const KUrl &url);
00156
00161 static void removeSlaveOnHold();
00162
00168 static void publishSlaveOnHold();
00169
00181 static KIO::Slave *getConnectedSlave(const KUrl &url,
00182 const KIO::MetaData &config = MetaData() );
00183
00200 static bool assignJobToSlave(KIO::Slave *slave, KIO::SimpleJob *job);
00201
00214 static bool disconnectSlave(KIO::Slave *slave);
00215
00222 static void registerWindow(QWidget *wid);
00223
00228 static void unregisterWindow(QObject *wid);
00229
00236 static bool connect( const char *signal, const QObject *receiver,
00237 const char *member);
00238
00239 static bool connect( const QObject* sender, const char* signal,
00240 const QObject* receiver, const char* member );
00241
00242 static bool disconnect( const QObject* sender, const char* signal,
00243 const QObject* receiver, const char* member );
00244
00245 bool connect( const QObject *sender, const char *signal,
00246 const char *member );
00247
00253 static void checkSlaveOnHold(bool b);
00254
00255 static void emitReparseSlaveConfiguration();
00256
00257 Q_SIGNALS:
00258 void slaveConnected(KIO::Slave *slave);
00259 void slaveError(KIO::Slave *slave, int error, const QString &errorMsg);
00260
00261
00262 Q_SCRIPTABLE void reparseSlaveConfiguration(const QString &);
00263
00264 private:
00265 Q_DISABLE_COPY(Scheduler)
00266 Scheduler();
00267 ~Scheduler();
00268
00269 static Scheduler *self();
00270
00271 Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveDied(KIO::Slave *slave))
00272 Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveStatus(pid_t pid, const QByteArray &protocol,
00273 const QString &host, bool connected))
00274
00275
00276 Q_PRIVATE_SLOT(schedulerPrivate, void slotReparseSlaveConfiguration(const QString &))
00277
00278 Q_PRIVATE_SLOT(schedulerPrivate, void startStep())
00279 Q_PRIVATE_SLOT(schedulerPrivate, void slotCleanIdleSlaves())
00280 Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveConnected())
00281 Q_PRIVATE_SLOT(schedulerPrivate, void slotSlaveError(int error, const QString &errorMsg))
00282 Q_PRIVATE_SLOT(schedulerPrivate, void slotScheduleCoSlave())
00283 Q_PRIVATE_SLOT(schedulerPrivate, void slotUnregisterWindow(QObject *))
00284 private:
00285 friend class SchedulerPrivate;
00286 SchedulerPrivate * const d;
00287 };
00288
00289 }
00290 #endif