summaryrefslogtreecommitdiffstats
path: root/tderesources/caldav/job.h
diff options
context:
space:
mode:
Diffstat (limited to 'tderesources/caldav/job.h')
-rw-r--r--tderesources/caldav/job.h290
1 files changed, 290 insertions, 0 deletions
diff --git a/tderesources/caldav/job.h b/tderesources/caldav/job.h
new file mode 100644
index 00000000..7d312d90
--- /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
+