Mercurial > trustbridge
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