diff options
Diffstat (limited to 'kcron/cthost.h')
-rw-r--r-- | kcron/cthost.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/kcron/cthost.h b/kcron/cthost.h new file mode 100644 index 0000000..6d601c3 --- /dev/null +++ b/kcron/cthost.h @@ -0,0 +1,118 @@ +/*************************************************************************** + * CT Host Header * + * -------------------------------------------------------------------- * + * Copyright (C) 1999, Gary Meyer <gary@meyer.net> * + * -------------------------------------------------------------------- * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + ***************************************************************************/ + +#ifndef CTHOST_H +#define CTHOST_H + +// Do not introduce any Qt or KDE dependencies into the "CT"-prefixed classes. +// I want to be able to reuse these classes with another GUI toolkit. -GM 11/99 + +#include <vector> +#include <string> + +#include <qstring.h> // Whatever + +class CTCron; +struct passwd; + +/** + * The host machine, or computer (encapsulation of crontab files on the + * host). + * + * If the user is the root user, the cron vector will have a member for + * each user of the host plus one for the system crontab. + * + * If the user is a non-root user, there will be only one member in the + * cron vector. + */ +class CTHost +{ +public: + +/** + * Constructs the user(s), scheduled tasks, and environment variables + * from crontab files. + */ + CTHost(); + +/** + * Destroys the user(s), scheduled tasks, and environment variable + * objects. Does not make any changes to the crontab files. Any unapplied + * changes are consequently "cancelled." + */ + ~CTHost(); + +/** + * Apply changes. + */ + void apply(); + +/** + * Cancel changes. + */ + void cancel(); + +/** + * Indicates whether or not dirty. + */ + bool dirty(); + +/** + * Indicates whether or not the user is the root user. + */ + bool root() const; + +/** + * Indicates an error has occured. + */ + bool isError() { return !error.isEmpty(); } + +/** + * Error message + */ + QString errorMessage() { QString r = error; error = QString::null; return r; } + + +/** + * User(s). + * + * If the user is the root user, the cron vector will have a member for + * each user of the host plus one for the system crontab. + * + * If the user is a non-root user, there will be only one member in the + * cron vector. + */ + std::vector<CTCron*> cron; + +private: + +/** + * Copy construction not allowed. + */ + CTHost(const CTHost& source); + +/** + * Assignment not allowed + */ + void operator = (const CTHost& source); + +/** + * Factory create a cron table. Appends to the end of cron. + */ + CTCron* createCTCron(bool _syscron = false, std::string _login = ""); + CTCron* createCTCron(const struct passwd *); + + QString error; +}; + +typedef std::vector<CTCron*>::iterator CTCronIterator; + +#endif // CTHOST_H |