Vaucanson 1.4
|
00001 // iterator.hh: this file is part of the Vaucanson project. 00002 // 00003 // Vaucanson, a generic library for finite state machines. 00004 // 00005 // Copyright (C) 2008 The Vaucanson Group. 00006 // 00007 // This program is free software; you can redistribute it and/or 00008 // modify it under the terms of the GNU General Public License 00009 // as published by the Free Software Foundation; either version 2 00010 // of the License, or (at your option) any later version. 00011 // 00012 // The complete GNU General Public Licence Notice can be found as the 00013 // `COPYING' file in the root directory. 00014 // 00015 // The Vaucanson Group consists of people listed in the `AUTHORS' file. 00016 // 00017 #ifndef VAUCANSON_AUTOMATA_IMPLEMENTATION_BMIG_ITERATOR_HH 00018 # define VAUCANSON_AUTOMATA_IMPLEMENTATION_BMIG_ITERATOR_HH 00019 00020 # include <map> 00021 00022 namespace vcsn 00023 { 00024 namespace bmig 00025 { 00033 template <typename Graph, typename I> 00034 class DeltaConstIterator 00035 { 00036 public: 00038 typedef Graph graph_type; 00040 typedef I iterator_type; 00042 typedef std::pair<I, I> range_type; 00043 typedef DeltaConstIterator<Graph, I> self_t; 00044 00050 DeltaConstIterator(const graph_type& g, typename graph_type::hstate_t s); 00051 ~DeltaConstIterator(); 00052 00056 void next(); 00061 bool done() const; 00062 00066 typename graph_type::htransition_t operator*() const; 00067 00068 private: 00069 const graph_type& graph_; 00070 iterator_type i_; 00071 iterator_type end_; 00072 00073 }; // End of class DeltaConstIterator 00074 00075 } // End of namespace bmig 00076 00077 } // End of namespace vcsn 00078 00079 # if !defined VCSN_USE_INTERFACE_ONLY 00080 # include <vaucanson/automata/implementation/bmig/iterator.hxx> 00081 # endif // ! VCSN_USE_INTERFACE_ONLY 00082 00083 #endif // ! VAUCANSON_AUTOMATA_IMPLEMENTATION_BMIG_ITERATOR_HH