diff options
Diffstat (limited to 'tderesources/caldav/job.h')
-rw-r--r-- | tderesources/caldav/job.h | 290 |
1 files changed, 290 insertions, 0 deletions
diff --git a/tderesources/caldav/job.h b/tderesources/caldav/job.h new file mode 100644 index 000000000..7d312d90b --- /dev/null +++ b/tderesources/caldav/job.h @@ -0,0 +1,290 @@ +/*========================================================================= +| KCalDAV +|-------------------------------------------------------------------------- +| (c) 2010 Timothy Pearson +| (c) 2009 Kumaran Santhanam (initial KDE4 version) +| +| This project is released under the GNU General Public License. +| Please see the file COPYING for more details. +|-------------------------------------------------------------------------- +| Job class for accessing remote calendars. + ========================================================================*/ + +/*========================================================================= +| INCLUDES + ========================================================================*/ + +#ifndef KCALDAV_JOB_H +#define KCALDAV_JOB_H + +#include <tqthread.h> +#include <tqstring.h> +#include <tqdatetime.h> +#include <tqapplication.h> + +extern "C" { + #include <caldav.h> +} + +namespace KCal { + +/*========================================================================= +| CLASS + ========================================================================*/ + +/** + * Calendar job. + */ +class CalDavJob : public TQThread { + +public: + + /** + * @param url URL to load. + */ + CalDavJob(const TQString& url = TQString()); + + virtual ~CalDavJob(); + + /** + * Sets a new URL to load. + */ + virtual void setUrl(const TQString& s) { + mUrl = s; + } + + /** + * Sets a new Tasks URL to load. + */ + virtual void setTasksUrl(const TQString& s) { + mTasksUrl = s; + } + + /** + * Sets a new Journals URL to load. + */ + virtual void setJournalsUrl(const TQString& s) { + mJournalsUrl = s; + } + + /** + * Sets the parent qobject. + */ + virtual void setParent(TQObject *s) { + mParent = s; + } + + /** + * Sets the type (0==read, 1==write) + */ + virtual void setType(int s) { + mType = s; + } + + /** + * @return URL to load. + */ + virtual TQString url() const { + return mUrl; + } + + /** + * @return Tasks URL to load. + */ + virtual TQString tasksUrl() const { + return mTasksUrl; + } + + /** + * @return Journals URL to load. + */ + virtual TQString journalsUrl() const { + return mJournalsUrl; + } + + /** + * @return parent object + */ + virtual TQObject *parent() { + return mParent; + } + + /** + * @return type + */ + virtual int type() { + return mType; + } + + /** + * @return true if events downloading process failed. + */ + virtual bool error() const { + return mError; + } + + /** + * @return true if tasks downloading process failed. + */ + virtual bool tasksError() const { + return mTasksError; + } + + /** + * @return true if journals downloading process failed. + */ + virtual bool journalsError() const { + return mJournalsError; + } + + /** + * @return an event error string. + */ + virtual TQString errorString() const { + return mErrorString; + } + + /** + * @return a task error string. + */ + virtual TQString tasksErrorString() const { + return mTasksErrorString; + } + + /** + * @return a journal error string. + */ + virtual TQString journalsErrorString() const { + return mJournalsErrorString; + } + + /** + * @return an event error number. + */ + virtual long errorNumber() const { + return mErrorNumber; + } + + /** + * @return a task error number. + */ + virtual long tasksErrorNumber() const { + return mTasksErrorNumber; + } + + /** + * @return a journal error number. + */ + virtual long journalsErrorNumber() const { + return mJournalsErrorNumber; + } + +protected: + + virtual void run(); + + /** + * Main run method for event jobs. Jobs should not override run() method. + * Instead of this they should override this one. + * @param caldavRuntime specific libcaldav runtime information. This pointer should not be saved for the usage + * outside of runJob. + * @return libcaldav response code (see CALDAV_RESPONSE) + */ + virtual int runJob(runtime_info* caldavRuntime) = 0; + + /** + * Main run method for task jobs. Jobs should not override run() method. + * Instead of this they should override this one. + * @param caldavRuntime specific libcaldav runtime information. This pointer should not be saved for the usage + * outside of runJob. + * @return libcaldav response code (see CALDAV_RESPONSE) + */ + virtual int runTasksJob(runtime_info* caldavRuntime) = 0; + + /** + * Main run method for journal jobs. Jobs should not override run() method. + * Instead of this they should override this one. + * @param caldavRuntime specific libcaldav runtime information. This pointer should not be saved for the usage + * outside of runJob. + * @return libcaldav response code (see CALDAV_RESPONSE) + */ + virtual int runJournalsJob(runtime_info* caldavRuntime) = 0; + + /** + * Some cleaning. Jobs may (and usually should) override this method. + */ + virtual void cleanJob() { + mError = false; + mErrorString = ""; + mErrorNumber = 0; + mTasksError = false; + mTasksErrorString = ""; + mTasksErrorNumber = 0; + mJournalsError = false; + mJournalsErrorString = ""; + mJournalsErrorNumber = 0; + } + + /** + * Sets an event error string to @p err. Also sets an error flag. + */ + void setErrorString(const TQString& str, const long number); + + /** + * Sets a task error string to @p err. Also sets an error flag. + */ + void setTasksErrorString(const TQString& str, const long number); + + /** + * Sets a journal error string to @p err. Also sets an error flag. + */ + void setJournalsErrorString(const TQString& str, const long number); + + /** + * Process an event error. + * Subclasses can overwrite this method, if some special error message handling + * should be done. Call setErrorString() to set the error after processing is done. + * @param err error structure. + */ + virtual void processError(const caldav_error* err); + + /** + * Process a task error. + * Subclasses can overwrite this method, if some special error message handling + * should be done. Call setErrorString() to set the error after processing is done. + * @param err error structure. + */ + virtual void processTasksError(const caldav_error* err); + + /** + * Process a journal error. + * Subclasses can overwrite this method, if some special error message handling + * should be done. Call setErrorString() to set the error after processing is done. + * @param err error structure. + */ + virtual void processJournalsError(const caldav_error* err); + +private: + + TQString mUrl; + TQString mTasksUrl; + TQString mJournalsUrl; + bool mError; + bool mTasksError; + bool mJournalsError; + TQString mErrorString; + TQString mTasksErrorString; + TQString mJournalsErrorString; + long mErrorNumber; + long mTasksErrorNumber; + long mJournalsErrorNumber; + TQObject *mParent; + int mType; + + void enableCaldavDebug(runtime_info*); +}; + +} // namespace KCal + +#endif // KCALDAV_JOB_H + |