diff ui/taskscheduler.h @ 827:8de162b91a22

(Issue49) Create a Scheduled daily task to run trustbridge
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 23 Jul 2014 19:47:59 +0200
parents
children 78798d3af8f0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/taskscheduler.h	Wed Jul 23 19:47:59 2014 +0200
@@ -0,0 +1,51 @@
+/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
+ * Software engineering by Intevation GmbH
+ *
+ * This file is Free Software under the GNU GPL (v>=2)
+ * and comes with ABSOLUTELY NO WARRANTY!
+ * See LICENSE.txt for details.
+ */
+#ifndef TASKSCHEDULER_H
+#define TASKSCHEDULER_H
+
+/**
+ * @file Interface to the Task Scheduler API
+ * @brief Provides a Qt / C++ API to work with the windows task scheduler
+ */
+
+#include <QString>
+#include <QTime>
+#ifndef INITGUID
+#define INITGUID
+#include <mstask.h>
+#undef INITGUID
+#endif
+
+//struct ITaskScheduler;
+
+class TaskScheduler
+{
+public:
+    /** @brief Initializes the COM objects */
+    TaskScheduler();
+
+    /**@brief Uninitializes the COM objects */
+    ~TaskScheduler();
+    /** @brief create a task that is executed daily if the user is logged in.
+     *
+     * @param[in] executable Absolute path to the executable to run.
+     * @param[in] args the arguements to pass to the executable.
+     * @param[in] startTime the preferred time to start the task.
+     *
+     * @returns True on success, false on error */
+    bool createDailyTask(const QString &executable, const QString &args, const QTime &startTime);
+
+    /** @brief check if the Initialization was successful */
+    bool isInitialized() {return mInitialized;}
+
+private:
+    bool mInitialized;
+    ITaskScheduler *mTaskScheduler;
+};
+
+#endif // TASKSCHEDULER_H

http://wald.intevation.org/projects/trustbridge/