00001 /*************************************************************************** 00002 * Copyright (C) 2005 by Benjamin Hadorn (bhadorn@swissinfo.org) * 00003 *************************************************************************** 00004 * Projekt : Zeus 00005 * Module : IMapIterator 00006 * Package : System 00007 * Author : Benjamin Hadorn 00008 * Datum : 19.09.06 00009 * Ablage : $File$ 00010 * System : Cell Computing Model 00011 *************************************************************************** 00012 * Licence: * 00013 * This library is free software; you can redistribute it and/or modify * 00014 * it under the terms of the GNU Lesser General Public License as * 00015 * published by the Free Software Foundation; either version * 00016 * 2.1 of the License, or (at your option) any later version. * 00017 * * 00018 * This library 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 Lesser General Public License for more details. * 00022 * * 00023 * You should have received a copy of the GNU Lesser General Public * 00024 * License along with this library; if not, write to the Free Software * 00025 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA * 00026 ***************************************************************************/ 00027 00028 /*************************************************************************** 00029 Changes : 00030 $Log: /WinSteuerung2/dev/Zeus/src/zeusbase/System/Interfaces/IMapIterator.hpp $ 00031 ** 00032 ** 1 13.08.07 7:31 bha 00033 ** Created 00034 ***************************************************************************/ 00035 00036 #ifndef IMapIteratorHPP 00037 #define IMapIteratorHPP 00038 00039 #include <zeusbase/System/Interfaces/IListIterator.hpp> 00040 00041 BEGIN_NAMESPACE_Zeus 00042 00043 /*****************************************************************************/ 00046 /*****************************************************************************/ 00047 template <class TKeyType, class TValueType> class IMapIterator : public IListIterator<TValueType> 00048 { 00049 //causes errors of HIDE_ASSIGNMENT_OPERATOR(IMapIterator<TKeyType, TValueType>) 00050 typedef IMapIterator<TKeyType, TValueType> IMapIteratorTemplate; 00051 00052 HIDE_ASSIGNMENT_OPERATOR(IMapIteratorTemplate) 00053 00054 public: 00055 /*************************************************************************/ 00058 /*************************************************************************/ 00059 virtual Retval MQUALIFIER getNextKey(TKeyType& rKey) =0; 00060 00061 /*************************************************************************/ 00064 /*************************************************************************/ 00065 virtual Retval MQUALIFIER getNextKeyConst(TKeyType& rKey) const=0; 00066 00067 /*************************************************************************/ 00070 /*************************************************************************/ 00071 virtual TValueType& MQUALIFIER getNextItemWithKey(TKeyType& rKey) const=0; 00072 00073 /*************************************************************************/ 00076 /*************************************************************************/ 00077 virtual const TValueType& MQUALIFIER getNextItemWithKeyConst(TKeyType& rKey) const=0; 00078 }; 00079 00080 END_NAMESPACE_Zeus 00081 00082 #endif 00083