// // aegis - project change supervisor // Copyright (C) 1991-1994, 2002, 2004-2006, 2008 Peter Miller. // // 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 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see // . // #ifndef UNDO_H #define UNDO_H #include #include /** \addtogroup Transaction * \ingroup AegisLibrary * @{ */ class nstring; // forward /** * The undo_rename funtion is used to submit an undo request * (rollback) to rename a file. * * \param from * path of file now * \param to * path of file after rollback. */ void undo_rename(string_ty *from, string_ty *to); /** * The undo_rename funtion is used to submit an undo request * (rollback) to rename a file. * * \param from * path of file now * \param to * path of file after rollback. */ void undo_rename(const nstring &from, const nstring &to); /** * The undo_rename_cancel function is used to cancel an undo request * submitted with undo_rename(). * * \param from * path of file now * \param to * path of file_after rollback. */ void undo_rename_cancel(string_ty *from, string_ty *to); /** * The undo_rename_cancel function is used to cancel an undo request * submitted with undo_rename(). * * \param from * path of file now * \param to * path of file_after rollback. */ void undo_rename_cancel(const nstring &from, const nstring &to); /** * The undo_chmod function is used to put a chmod operation in the undo queue. * * \param path * The path to have its mode changed. * \param mode * The mod to change the path to. */ void undo_chmod(string_ty *path, int mode); /** * The undo_chmod function is used to put a chmod operation in the undo queue. * * \param path * The path to have its mode changed. * \param mode * The mod to change the path to. */ void undo_chmod(const nstring &path, int mode); /** * The undo_chmod function is used to put a chmod operation in the undo * queue. Errors are ignored. * * \param path * The path to have its mode changed. * \param mode * The mod to change the path to. */ void undo_chmod_errok(string_ty *path, int mode); /** * The undo_chmod_errok function is used to put a chmod operation in * the undo queue. Errors are ignored. * * \param path * The path to have its mode changed. * \param mode * The mod to change the path to. */ void undo_chmod_errok(const nstring &path, int mode); /** * The undo_unlink_errok function si sued to put an unlink operation in * the undo queue. * * \param path * The path opf the file to be removed. */ void undo_unlink_errok(string_ty *path); /** * The undo_unlink_errok function si sued to put an unlink operation in * the undo queue. * * \param path * The path opf the file to be removed. */ void undo_unlink_errok(const nstring &path); /** * The undo_rmdir_bg function is used to put a rmdir (recursive * directory remove) operation in the undo queue. The operation is * performed in the background. * * \param path * The path of the directory to be removed. */ void undo_rmdir_bg(string_ty *path); /** * The undo_rmdir_bg function is used to put a rmdir (recursive * directory remove) operation in the undo queue. The operation is * performed in the background. * * \param path * The path of the directory to be removed. */ void undo_rmdir_bg(const nstring &path); /** * The undo_rmdir_errok function is used to put a rmdir (non-recursive) * operation in the undo queue. Any error (e.g. directory not empty) * will be ignored. * * \param path * The path of the directory to be removed. */ void undo_rmdir_errok(string_ty *path); /** * The undo_rmdir_errok function is used to put a rmdir (non-recursive) * operation in the undo queue. Any error (e.g. directory not empty) * will be ignored. * * \param path * The path of the directory to be removed. */ void undo_rmdir_errok(const nstring &path); /** * The undo_message function is used to print a message in the event of * failure. * * \param msg * The message to be printed. */ void undo_message(string_ty *msg); /** * The undo_message function is used to print a message in the event of * failure. * * \param msg * The message to be printed. */ void undo_message(const nstring &msg); /** * The undo function is used to pun all pending operation in the undo queue. */ void undo(void); extern quit_action_undo undo_quitter; /** * The undo_cancel function is used to cancel any pending operation * from the undo queue. */ void undo_cancel(void); /** @} */ #endif // UNDO_H