PureMVC PureMVC

include/PureMVC/Interfaces/IIterator.hpp

Go to the documentation of this file.
00001 //  IIterator.hpp
00002 //  PureMVC_C++
00003 //
00004 //  PureMVC Port to C++ by Tang Khai Phuong <phuong.tang@puremvc.org>
00005 //  PureMVC - Copyright(c) 2006-2011 Futurescale, Inc., Some rights reserved.
00006 //  Your reuse is governed by the Creative Commons Attribution 3.0 License
00007 //
00008 
00009 #if !defined(__PUREMVC_INTERFACES_IITERATOR_HPP__)
00010 #define __PUREMVC_INTERFACES_IITERATOR_HPP__
00011 
00012 // PureMVC include
00013 #if !defined(__PUREMVC_HPP__)
00014 #define __PUREMVC_INCLUDE__
00015 #include "../PureMVC.hpp"
00016 #endif /* __PUREMVC_HPP__ */
00017 
00018 namespace PureMVC
00019 {
00020     namespace Interfaces
00021     {
00025         template<typename _Type>
00026         struct IIterator
00027         {
00028             typedef _Type type;
00029 
00035             virtual _Type const& getCurrent(void) const = 0;
00036 
00042             virtual _Type const& operator*(void) const = 0;
00043 
00049             virtual bool moveNext(void) const = 0;
00050 
00054             virtual void reset(void) const = 0;
00055 
00059             virtual ~IIterator(void) { };
00060         };
00061     }
00062 }
00063 
00064 #endif /* __PUREMVC_INTERFACES_IITERATOR_HPP__ */