• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

knode

  • sources
  • kde-4.12
  • kdepim
  • knode
knjobdata.h
Go to the documentation of this file.
1 /*
2  KNode, the KDE newsreader
3  Copyright (c) 1999-2006 the KNode authors.
4  See file AUTHORS for details
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10  You should have received a copy of the GNU General Public License
11  along with this program; if not, write to the Free Software Foundation,
12  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
13 */
14 
15 #ifndef KNJOBDATA_H
16 #define KNJOBDATA_H
17 
18 #include "knserverinfo.h"
19 
20 #include <QPointer>
21 #include <kurl.h>
22 #include <kio/global.h>
23 #include <QObject>
24 #include <QList>
25 #include <libkdepim/progresswidget/progressmanager.h>
26 
27 
28 class KJob;
29 
30 namespace KIO {
31 class Job;
32 }
33 
34 class KNJobItem;
35 class KNJobData;
36 
37 
39 class KNJobConsumer {
40 
41  public:
42  KNJobConsumer();
43  virtual ~KNJobConsumer();
44 
48  void emitJob(KNJobData *j);
49 
53  void jobDone(KNJobData *j);
54 
58  bool jobsPending() const { return !mJobs.isEmpty(); }
59 
62  void cancelJobs( boost::shared_ptr<KNJobItem> item );
63 
64  protected:
66  virtual void processJob(KNJobData *j);
68  QList<KNJobData*> mJobs;
69 
70 };
71 
72 
74 class KNJobItem {
75 
76  public:
80  typedef boost::shared_ptr<KNJobItem> Ptr;
81 
82  KNJobItem() {}
83  virtual ~KNJobItem() {}
84 
85  virtual bool isLocked() { return false; }
86  virtual void setLocked(bool) { }
87 
88  virtual QString prepareForExecution() { return QString(); }
89 
90 };
91 
92 
101 class KNJobData : public QObject
102 {
103  Q_OBJECT
104 
105  public:
106 
107  friend class KNJobConsumer;
108 
109  enum jobType { JTLoadGroups=1,
110  JTFetchGroups,
111  JTfetchNewHeaders,
112  JTfetchArticle,
113  JTpostArticle,
114  JTmail,
115  JTfetchSource };
116 
117  KNJobData( jobType t, KNJobConsumer *c, KNServerInfo::Ptr a, KNJobItem::Ptr i );
118  ~KNJobData();
119 
120  jobType type() const { return t_ype; }
121 
122  KNServerInfo::Ptr account() const { return a_ccount; }
123  KNJobItem::Ptr data() const { return d_ata; }
124 
126  int error() const { return mError; }
128  QString errorString() const { return mErrorString; }
130  bool success() const { return mErrorString.isEmpty() && mError == 0; }
132  bool canceled() const { return mCanceled; }
133 
138  void cancel();
139 
144  void setError( int err, const QString &errMsg );
145 
146  void prepareForExecution() { mErrorString = d_ata->prepareForExecution(); }
147  void notifyConsumer();
148 
154  virtual void execute() = 0;
155 
157  KPIM::ProgressItem* progressItem() const { return mProgressItem; }
159  void createProgressItem();
160 
164  void setStatus( const QString &msg ) { if ( mProgressItem ) mProgressItem->setStatus( msg ); }
168  void setProgress( unsigned int progress ) { if ( mProgressItem ) mProgressItem->setProgress( progress ); }
172  void setComplete() { if ( mProgressItem ) { mProgressItem->setComplete(); mProgressItem = 0; } }
173 
174  signals:
178  void finished( KNJobData* );
179 
180  protected:
182  void emitFinished();
183 
187  KUrl baseUrl() const;
188 
193  void setupKJob( KJob *job );
194 
198  void setupKIOJob( KIO::Job *job );
199 
200  protected:
201  jobType t_ype;
202  KNJobItem::Ptr d_ata;
203  KNServerInfo::Ptr a_ccount;
205  int mError;
207  QString mErrorString;
209  bool mCanceled;
210  KNJobConsumer *c_onsumer;
212  QPointer<KJob> mJob;
214  KPIM::ProgressItem *mProgressItem;
215 
216  private slots:
218  void slotJobPercent( KJob *job, unsigned long percent );
220  void slotJobInfoMessage( KJob *job, const QString &msg );
222  void slotEmitFinished();
223 
224 };
225 
226 
227 #endif
KNJobData::setComplete
void setComplete()
Tells the progress item to indicate that the job has finished if available.
Definition: knjobdata.h:172
KNJobData::setStatus
void setStatus(const QString &msg)
Set the status message of the progress item if available.
Definition: knjobdata.h:164
KNJobData::a_ccount
KNServerInfo::Ptr a_ccount
Definition: knjobdata.h:203
KNJobData::JTLoadGroups
Definition: knjobdata.h:109
KNJobItem::prepareForExecution
virtual QString prepareForExecution()
Definition: knjobdata.h:88
KNJobConsumer::jobsPending
bool jobsPending() const
Returns true if we are waiting for at least one job to be completed.
Definition: knjobdata.h:58
KNJobConsumer::emitJob
void emitJob(KNJobData *j)
Send the job to the scheduler and append it to the job queue.
Definition: knjobdata.cpp:42
KNJobData::JTfetchArticle
Definition: knjobdata.h:112
KNJobData::finished
void finished(KNJobData *)
Emitted when a job has been finished.
KNJobData
Abstract base class for all KNode internal jobs.
Definition: knjobdata.h:101
KNJobData::t_ype
jobType t_ype
Definition: knjobdata.h:201
KNJobData::JTpostArticle
Definition: knjobdata.h:113
KNJobData::mProgressItem
KPIM::ProgressItem * mProgressItem
The progress item representing this job to the user.
Definition: knjobdata.h:214
KNJobData::cancel
void cancel()
Cancels this job.
Definition: knjobdata.cpp:105
KNJobConsumer::KNJobConsumer
KNJobConsumer()
Definition: knjobdata.cpp:30
QObject
KNJobData::mJob
QPointer< KJob > mJob
An associated KJob.
Definition: knjobdata.h:212
KNJobData::mError
int mError
The job error code (see KIO::Error).
Definition: knjobdata.h:205
KNJobData::KNJobData
KNJobData(jobType t, KNJobConsumer *c, KNServerInfo::Ptr a, KNJobItem::Ptr i)
Definition: knjobdata.cpp:75
KNJobData::c_onsumer
KNJobConsumer * c_onsumer
Definition: knjobdata.h:210
KNJobItem::~KNJobItem
virtual ~KNJobItem()
Definition: knjobdata.h:83
KNJobData::JTFetchGroups
Definition: knjobdata.h:110
KNJobData::mErrorString
QString mErrorString
The error message.
Definition: knjobdata.h:207
KNJobConsumer::mJobs
QList< KNJobData * > mJobs
List of all active jobs.
Definition: knjobdata.h:68
KPIM::ProgressItem::setComplete
void setComplete()
KNJobData::execute
virtual void execute()=0
Performs the actual operation of a job, needs to be reimplemented for every job.
KNJobData::type
jobType type() const
Definition: knjobdata.h:120
KNJobData::JTfetchSource
Definition: knjobdata.h:115
progressmanager.h
KNJobData::progressItem
KPIM::ProgressItem * progressItem() const
Returns the progress item for this job.
Definition: knjobdata.h:157
KNJobData::data
KNJobItem::Ptr data() const
Definition: knjobdata.h:123
KNJobData::account
KNServerInfo::Ptr account() const
Definition: knjobdata.h:122
KNJobData::~KNJobData
~KNJobData()
Definition: knjobdata.cpp:88
KNJobData::notifyConsumer
void notifyConsumer()
Definition: knjobdata.cpp:96
KNJobData::canceled
bool canceled() const
Returns true if the job has been canceled by the user.
Definition: knjobdata.h:132
KNJobData::jobType
jobType
Definition: knjobdata.h:109
KNJobData::JTfetchNewHeaders
Definition: knjobdata.h:111
KNJobItem::KNJobItem
KNJobItem()
Definition: knjobdata.h:82
KNJobData::prepareForExecution
void prepareForExecution()
Definition: knjobdata.h:146
KNJobData::setupKJob
void setupKJob(KJob *job)
Connects progress signals.
Definition: knjobdata.cpp:124
KPIM::ProgressItem::setProgress
void setProgress(unsigned int v)
KNJobConsumer
Base class for classes that want to create and schedule jobs.
Definition: knjobdata.h:39
KNJobItem::Ptr
boost::shared_ptr< KNJobItem > Ptr
Shared pointer to a KNJobItem.
Definition: knjobdata.h:80
KNJobConsumer::cancelJobs
void cancelJobs(boost::shared_ptr< KNJobItem > item)
Find any job related to a job item and cancel it.
Definition: knjobdata.cpp:57
KNJobData::errorString
QString errorString() const
Returns the error message.
Definition: knjobdata.h:128
KNJobData::baseUrl
KUrl baseUrl() const
Returns a correctly set up KUrl according to the encryption and authentication settings for KIO slave...
Definition: knjobdata.cpp:185
KNJobConsumer::~KNJobConsumer
virtual ~KNJobConsumer()
Definition: knjobdata.cpp:35
KNJobData::createProgressItem
void createProgressItem()
Creates a KPIM::ProgressItem for this job.
Definition: knjobdata.cpp:149
KNJobData::d_ata
KNJobItem::Ptr d_ata
Definition: knjobdata.h:202
KNJobData::setProgress
void setProgress(unsigned int progress)
Set the progress value of the progress item if available.
Definition: knjobdata.h:168
KNJobData::success
bool success() const
Returns true if the job finished successfully.
Definition: knjobdata.h:130
KPIM::ProgressItem
KNJobData::emitFinished
void emitFinished()
Emits the finished() signal via a single-shot timer.
Definition: knjobdata.cpp:119
KNJobItem
Base class for data structures used in jobs.
Definition: knjobdata.h:74
KNJobData::mCanceled
bool mCanceled
Cancel status flag.
Definition: knjobdata.h:209
KNServerInfo::Ptr
boost::shared_ptr< KNServerInfo > Ptr
Shared pointer to a KNServerInfo.
Definition: knserverinfo.h:37
KNJobItem::isLocked
virtual bool isLocked()
Definition: knjobdata.h:85
KNJobData::JTmail
Definition: knjobdata.h:114
KNJobData::error
int error() const
Returns the error code (see KIO::Error).
Definition: knjobdata.h:126
KNJobData::setError
void setError(int err, const QString &errMsg)
Set job error information.
Definition: knjobdata.cpp:201
KNJobConsumer::processJob
virtual void processJob(KNJobData *j)
The actual work is done here.
Definition: knjobdata.cpp:68
KNJobItem::setLocked
virtual void setLocked(bool)
Definition: knjobdata.h:86
KJob
KNJobData::setupKIOJob
void setupKIOJob(KIO::Job *job)
Sets TLS metadata and connects the given KIO job to the progress item.
Definition: knjobdata.cpp:135
KPIM::ProgressItem::setStatus
void setStatus(const QString &v)
QList< KNJobData * >
KNJobConsumer::jobDone
void jobDone(KNJobData *j)
Remove the job from the joblist and process it by calling processJob.
Definition: knjobdata.cpp:51
knserverinfo.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:58:36 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

knode

Skip menu "knode"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal