00001 00008 /* 00009 This file is part of Teapot Colony Wars. 00010 00011 Teapot Colony Wars is free software: you can redistribute it and/or modify 00012 it under the terms of the GNU General Public License as published by 00013 the Free Software Foundation, either version 2 of the License, or 00014 (at your option) any later version. 00015 00016 Teapot Colony Wars is distributed in the hope that it will be useful, 00017 but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 GNU General Public License for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with Teapot Colony Wars. If not, see <http://www.gnu.org/licenses/>. 00023 */ 00024 00025 #ifndef MOVEITERATOR_H 00026 #define MOVEITERATOR_H 00027 00028 #include "MoveCommand.h" 00029 00030 class Move; 00031 00035 class MoveIterator 00036 { 00037 protected: 00038 00039 friend class Move; 00040 00044 Move * _move; 00045 00051 MoveIterator(Move * move); 00052 00053 public: 00054 00058 MoveIterator(); 00059 00063 virtual ~MoveIterator(); 00064 00071 MoveIterator& operator=(const MoveIterator& m); 00072 00079 bool operator==(const MoveIterator & m) const; 00080 00087 bool operator<(const MoveIterator & m) const; 00088 00095 bool operator!=(const MoveIterator & m) const; 00096 00102 MoveIterator& operator++(); 00103 00109 move_command operator*(void) const; 00110 00116 Move * operator->(void) const; 00117 }; 00118 00119 00120 00121 00122 #endif // MOVEITERATOR_H