Changeset 4fb16c
- Timestamp:
- Feb 28, 2011, 2:20:23 PM (15 years ago)
- Children:
- 6b898c
- Parents:
- 178da0
- git-author:
- Frederik Heber <heber@…> (02/22/11 14:45:16)
- git-committer:
- Frederik Heber <heber@…> (02/28/11 14:20:23)
- Files:
-
- 3 edited
-
configure.ac (modified) (2 diffs)
-
src/Helpers/IteratorAdaptors.hpp (modified) (2 diffs)
-
src/Patterns/ObservedIterator.hpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
configure.ac
r178da0 r4fb16c 3 3 4 4 AC_PREREQ([2.65]) 5 AC_INIT([CodePatterns], [1.0.1 1], [heber@ins.uni-bonn.de], [codepatterns], [http://trac.ins.uni-bonn.de/projects/CodePatterns/])5 AC_INIT([CodePatterns], [1.0.12], [heber@ins.uni-bonn.de], [codepatterns], [http://trac.ins.uni-bonn.de/projects/CodePatterns/]) 6 6 AC_CONFIG_AUX_DIR(config) 7 7 AC_CONFIG_SRCDIR([src/Patterns/Singleton_impl.hpp]) … … 25 25 # refer to the libtool manual, section "Updating library version information": 26 26 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html 27 AC_SUBST([CODEPATTERNS_SO_VERSION], [ 5:1:5])28 AC_SUBST([CODEPATTERNS_API_VERSION], [1.0.1 1])27 AC_SUBST([CODEPATTERNS_SO_VERSION], [6:0:0]) 28 AC_SUBST([CODEPATTERNS_API_VERSION], [1.0.12]) 29 29 30 30 # Checks for libraries. -
src/Helpers/IteratorAdaptors.hpp
r178da0 r4fb16c 46 46 47 47 /** This class wraps an iterator and implements a dereferencer (operator*) that 48 * always returns the value 49 */ 50 template <class BaseIterator> 51 class MapValueConstIterator : 52 public boost::iterator_adaptor< 53 MapValueConstIterator<BaseIterator>, 54 BaseIterator, 55 const typename BaseIterator::value_type::second_type > 56 { 57 public: 58 typedef const typename BaseIterator::value_type::second_type& const_reference; 59 60 MapValueConstIterator() {} 61 62 explicit MapValueConstIterator(BaseIterator base) 63 : MapValueConstIterator::iterator_adaptor_(base) {} 64 65 private: 66 friend class boost::iterator_core_access; 67 const_reference dereference() const 68 {return this->base_reference()->second;} 69 }; 70 71 /** This class wraps an iterator and implements a dereferencer (operator*) that 48 72 * always returns the key 49 73 */ … … 69 93 }; 70 94 95 /** This class wraps an iterator and implements a dereferencer (operator*) that 96 * always returns the key 97 */ 98 template <class BaseIterator> 99 class MapKeyConstIterator : 100 public boost::iterator_adaptor< 101 MapKeyConstIterator<BaseIterator>, 102 BaseIterator, 103 const typename BaseIterator::value_type::first_type > 104 { 105 public: 106 typedef const typename BaseIterator::value_type::first_type& const_reference; 107 108 MapKeyConstIterator() {} 109 110 explicit MapKeyConstIterator(BaseIterator base) 111 : MapKeyConstIterator::iterator_adaptor_(base) {} 112 113 private: 114 friend class boost::iterator_core_access; 115 const_reference dereference() const 116 {return this->base_reference()->first;} 117 }; 118 71 119 #endif /* ITERATORADAPTORS_HPP_ */ -
src/Patterns/ObservedIterator.hpp
r178da0 r4fb16c 109 109 } 110 110 111 value_type operator*(){ 111 /** Returns the value_type this iterator represents. 112 * Activates a lock. 113 * 114 * \note In order to be conforming, dereference must be const member. 115 * 116 * @return value_type of iterator 117 */ 118 value_type operator*() const { 112 119 // access is requested... time to get the lock 113 120 acquireLock(); … … 115 122 } 116 123 117 value_type *operator->(){ 124 /** Returns pointer to value_type this iterator represents. 125 * Activates a lock. 126 * 127 * \note In order to be conforming, dereference must be const member. 128 * 129 * @return pointer to value_type of iterator 130 */ 131 value_type *operator->() const { 118 132 acquireLock(); 119 133 return &(*iter); … … 135 149 * etc. 136 150 */ 137 void acquireLock() {151 void acquireLock() const { 138 152 if(!protector) 139 153 protector = new Observable::_Observable_protector(collection); … … 152 166 _Iter iter; 153 167 Observable *collection; 154 Observable::_Observable_protector *protector;168 mutable Observable::_Observable_protector *protector; 155 169 }; 156 170
Note:
See TracChangeset
for help on using the changeset viewer.
