ekiga r7428 - trunk/lib/engine/framework
- From: jpuydt svn gnome org
- To: svn-commits-list gnome org
- Subject: ekiga r7428 - trunk/lib/engine/framework
- Date: Fri, 5 Dec 2008 04:09:09 +0000 (UTC)
Author: jpuydt
Date: Fri Dec 5 04:09:08 2008
New Revision: 7428
URL: http://svn.gnome.org/viewvc/ekiga?rev=7428&view=rev
Log:
Added a const iterator on map keys to complete reflister
Added:
trunk/lib/engine/framework/map-key-const-iterator.h
Modified:
trunk/lib/engine/framework/reflister.h
Added: trunk/lib/engine/framework/map-key-const-iterator.h
==============================================================================
--- (empty file)
+++ trunk/lib/engine/framework/map-key-const-iterator.h Fri Dec 5 04:09:08 2008
@@ -0,0 +1,126 @@
+
+/*
+ * Ekiga -- A VoIP and Video-Conferencing application
+ * Copyright (C) 2000-2008 Damien Sandras
+
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version. This program is distributed in the hope
+ * that it will be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Ekiga is licensed under the GPL license and as a special exception, you
+ * have permission to link or otherwise combine this program with the
+ * programs OPAL, OpenH323 and PWLIB, and distribute the combination, without
+ * applying the requirements of the GNU GPL to the OPAL, OpenH323 and PWLIB
+ * programs, as long as you do follow the requirements of the GNU GPL for all
+ * the rest of the software thus combined.
+ */
+
+
+/*
+ * map-key-const-iterator.h - description
+ * ------------------------------------------
+ * begin : written in 2008 by Julien Puydt
+ * copyright : (c) 2008 by Julien Puydt
+ * description : iterator on the keys of a std::map
+ *
+ */
+
+#ifndef __MAP_KEY_CONST_ITERATOR_H__
+#define __MAP_KEY_CONST_ITERATOR_H__
+
+#include <map>
+
+namespace Ekiga
+{
+ template<typename map_type>
+ class map_key_const_iterator: public std::forward_iterator_tag
+ {
+ public:
+
+ map_key_const_iterator (typename map_type::const_iterator it_);
+
+ map_key_const_iterator& operator= (const map_key_const_iterator& other);
+
+ bool operator== (const map_key_const_iterator& other);
+ bool operator!= (const map_key_const_iterator& other);
+
+ map_key_const_iterator& operator++ ();
+ map_key_const_iterator operator++ (int);
+
+ const typename map_type::key_type operator* ();
+
+ const typename map_type::key_type* operator-> ();
+
+ private:
+ typename map_type::const_iterator it;
+ };
+
+};
+
+template<typename map_type>
+Ekiga::map_key_const_iterator<map_type>::map_key_const_iterator (typename map_type::const_iterator it_): it(it_)
+{
+}
+
+template<typename map_type>
+Ekiga::map_key_const_iterator<map_type>&
+Ekiga::map_key_const_iterator<map_type>::operator= (const map_key_const_iterator<map_type>& other)
+{
+ it = other.it;
+ return *this;
+}
+
+template<typename map_type>
+bool
+Ekiga::map_key_const_iterator<map_type>::operator== (const map_key_const_iterator<map_type>& other)
+{
+ return it == other.it;
+}
+
+template<typename map_type>
+bool
+Ekiga::map_key_const_iterator<map_type>::operator!= (const map_key_const_iterator<map_type>& other)
+{
+ return it != other.it;
+}
+
+template<typename map_type>
+Ekiga::map_key_const_iterator<map_type>&
+Ekiga::map_key_const_iterator<map_type>::operator++ ()
+{
+ it++;
+ return *this;
+}
+
+template<typename map_type>
+Ekiga::map_key_const_iterator<map_type>
+Ekiga::map_key_const_iterator<map_type>::operator++ (int)
+{
+ map_key_const_iterator<map_type> tmp = *this;
+ ++it;
+ return tmp;
+}
+
+template<typename map_type>
+const typename map_type::key_type
+Ekiga::map_key_const_iterator<map_type>::operator* ()
+{
+ return it->first;
+}
+
+template<typename map_type>
+const typename map_type::key_type*
+Ekiga::map_key_const_iterator<map_type>::operator-> ()
+{
+ return it->first;
+}
+
+#endif
Modified: trunk/lib/engine/framework/reflister.h
==============================================================================
--- trunk/lib/engine/framework/reflister.h (original)
+++ trunk/lib/engine/framework/reflister.h Fri Dec 5 04:09:08 2008
@@ -42,6 +42,7 @@
#include "gmref.h"
#include "map-key-iterator.h"
+#include "map-key-const-iterator.h"
namespace Ekiga
{
@@ -52,6 +53,7 @@
typedef std::map<gmref_ptr<ObjectType>,std::list<sigc::connection> > container_type;
typedef Ekiga::map_key_iterator<container_type> iterator;
+ typedef Ekiga::map_key_const_iterator<container_type> const_iterator;
virtual ~RefLister ();
@@ -69,6 +71,9 @@
iterator begin ();
iterator end ();
+ const_iterator begin () const;
+ const_iterator end () const;
+
sigc::signal1<void, gmref_ptr<ObjectType> > object_added;
sigc::signal1<void, gmref_ptr<ObjectType> > object_removed;
sigc::signal1<void, gmref_ptr<ObjectType> > object_updated;
@@ -160,4 +165,18 @@
return iterator (objects.end ());
}
+template<typename ObjectType>
+typename Ekiga::RefLister<ObjectType>::const_iterator
+Ekiga::RefLister<ObjectType>::begin () const
+{
+ return const_iterator (objects.begin ());
+}
+
+template<typename ObjectType>
+typename Ekiga::RefLister<ObjectType>::const_iterator
+Ekiga::RefLister<ObjectType>::end () const
+{
+ return const_iterator (objects.end ());
+}
+
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]