00001 /*! 00002 * \file PasswordTreeElementAbstractVisitor.h 00003 * \brief Defines the abstract visitor of the password composite 00004 * 00005 * \author Frederic RUAUDEL <grumz@users.sf.net> 00006 * 00007 * $Revision: 1.7 $ 00008 * $Date: 2003/02/20 14:19:30 $ 00009 * 00010 * \b PassGuardFramework 00011 * Copyleft (c) 2002 Frederic RUAUDEL, all rights reversed 00012 * 00013 * This program is free software which I release under the GNU General Public 00014 * License. You may redistribute and/or modify this program under the terms 00015 * of that license as published by the Free Software Foundation; either 00016 * version 2 of the License, or (at your option) any later version. 00017 * 00018 * This program is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 * GNU General Public License for more details. Version 2 is in the 00022 * COPYING file in the top level directory of this distribution. 00023 * 00024 * To get a copy of the GNU General Public License, write to the Free Software 00025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00026 **/ 00027 00028 #ifndef PASSWORD_TREE_ELEMENT_ABSTRACT_VISITOR_H 00029 #define PASSWORD_TREE_ELEMENT_ABSTRACT_VISITOR_H 00030 00031 #include <PassguardErrorManager.h> 00032 00033 class PasswordRootElement; 00034 class PasswordGroupElement; 00035 class PasswordManagerElement; 00036 00037 using namespace std; 00038 00039 /*! 00040 * \brief Abstract visitor of the password composite 00041 **/ 00042 class PasswordTreeElementAbstractVisitor : public PassguardErrorManager 00043 { 00044 public: 00045 virtual ~PasswordTreeElementAbstractVisitor () {}; 00046 00047 virtual int visitPasswordRootElement (PasswordRootElement* element) = 0; 00048 virtual int visitPasswordGroupElement (PasswordGroupElement* element) = 0; 00049 virtual int visitPasswordManagerElement (PasswordManagerElement* element) = 0; 00050 }; 00051 00052 /*! 00053 * \fn PasswordTreeElementAbstractVisitor::~PasswordTreeElementAbstractVisitor () 00054 * 00055 * \brief Destructor of the abstract visitor of the password composite 00056 * 00057 * \return none 00058 **/ 00059 00060 /*! 00061 * \fn int PasswordTreeElementAbstractVisitor::visitPasswordRootElement (PasswordRootElement* element) = 0 00062 * 00063 * \brief Defines what to do with a composite's root 00064 * 00065 * \param element the root to manipulate 00066 * 00067 * \retval -1 switch to next branch of the current level 00068 * \retval 0 stop running through 00069 * \retval 1 continue through this branch 00070 **/ 00071 00072 /*! 00073 * \fn int PasswordTreeElementAbstractVisitor::visitPasswordGroupElement (PasswordGroupElement* element) = 0 00074 * 00075 * \brief Defines what to do with a composite's branch 00076 * 00077 * \param element the branch to manipulate 00078 * 00079 * \retval -1 switch to next branch of the current level 00080 * \retval 0 stop running through 00081 * \retval 1 continue through this branch 00082 **/ 00083 00084 /*! 00085 * \fn int PasswordTreeElementAbstractVisitor::visitPasswordManagerElement (PasswordManagerElement* element) = 0 00086 * 00087 * \brief Defines what to do with a composite's leaf 00088 * 00089 * \param element the leaf to manipulate 00090 * 00091 * \retval -1 switch to next branch of the current level 00092 * \retval 0 stop running through 00093 * \retval 1 continue through this branch 00094 **/ 00095 00096 #endif /* PASSWORD_TREE_ELEMENT_ABSTRACT_VISITOR_H */