Changeset 4fb16c for src/Patterns


Ignore:
Timestamp:
Feb 28, 2011, 2:20:23 PM (15 years ago)
Author:
Frederik Heber <heber@…>
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)
Message:

BUGFIX: ObservedIterator::operator* and ::operator-> have to be const members, added MapValue(Const)Iterator adaptors.

  • Library version is now 6:0:0, API version is still 1.0.12.
  • note: in order to comply with standards operator* and operator-> of iterators have to be const members (e.g. for use with boost::iterator_adaptor, or iterator_facade). Hence, ObservedIterator::protector is now mutable and AcquireLock() is const member as well.
  • Added const versions of both IteratorAdaptors.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Patterns/ObservedIterator.hpp

    r178da0 r4fb16c  
    109109  }
    110110
    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 {
    112119    // access is requested... time to get the lock
    113120    acquireLock();
     
    115122  }
    116123
    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 {
    118132    acquireLock();
    119133    return &(*iter);
     
    135149   * etc.
    136150   */
    137   void acquireLock(){
     151  void acquireLock() const {
    138152    if(!protector)
    139153      protector = new Observable::_Observable_protector(collection);
     
    152166  _Iter iter;
    153167  Observable *collection;
    154   Observable::_Observable_protector *protector;
     168  mutable Observable::_Observable_protector *protector;
    155169};
    156170
Note: See TracChangeset for help on using the changeset viewer.