casacore::HashMapIter< key, val > Class Template Reference

Step through a non-const HashMap. More...

#include <HashMapIter.h>

Inheritance diagram for casacore::HashMapIter< key, val >:
casacore::ConstHashMapIter< key, val >

List of all members.

Public Member Functions

val & getVal ()
 Get the key or value for the current position in the Map.
virtual const val & getVal () const
val & define (const key &k, const val &v)
 These functions allow for the definition and removal of key/value relations.
void remove (const key &k)
const val & defaultVal () const
 This returns the default value for the map that this iterator is tracking.
val & defaultVal ()
void clear ()
 Clear all of the mappings.
const val & operator() (const key &ky) const
 Allows mapping functions to be performed with the map on which this iterator operates.
val & operator() (const key &ky)
 HashMapIter (HashMap< key, val > &st)
 This allows a MapIter to be constructed from a Map.
 HashMapIter (const HashMapIter< key, val > &other)
 This allows a MapIter to be constructed from another MapIter.
 HashMapIter ()
 Default constructor creates an invalid Map iterator.
virtual HashMapIter< key, val > & operator= (HashMap< key, val > &other)
 This assignment operator allows the Map which this MapIter tracks to be changed.
virtual HashMapIter< key, val > & operator= (const HashMapIter< key, val > &other)
 This assignment operator allows the Map which this MapIter tracks to be changed.
HashMap< key, val > & container ()
 Returns the container on which this iterator is operating.
const HashMap< key, val > & container () const
 Returns the container on which this iterator is operating.
 ~HashMapIter ()
 dtor

Protected Member Functions

ConstHashMapIter< key, val > & operator= (const HashMap< key, val > &)
 Assign one map iterator to a map (with reference semantics).
ConstHashMapIter< key, val > & operator= (const ConstHashMapIter< key, val > &)

Detailed Description

template<class key, class val>
class casacore::HashMapIter< key, val >

Step through a non-const HashMap.

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Synopsis

This class is an iterator, and it used to step through non-const HashMap s. This is useful when one wishes to find each of the user defined mappings in a particular map.

Example

 #include <aips/Containers/HashMap.h>
 #include <casacore/casa/BasicSL/String.h>
 #include <iostream>
 
 main() {
 HashMap<String,Int> hash;
 
 hash.define("one",1);
 hash.define("two",2);
 hash.define("three",3);
 hash.define("four",4);
 hash.define("five",5);
 hash.define("six",6);
 
 HashMapIter<String,Int> iter(hash);
 for ( iter.toStart(); ! iter.atEnd(); iter++ )
 cout << iter.getVal() << ": " << iter.getKey() << endl;
 }

Motivation

Same as ConstHashMapIter , but allows for modification of the underlying structure.

Definition at line 254 of file HashMapIter.h.


Constructor & Destructor Documentation

template<class key, class val>
casacore::HashMapIter< key, val >::HashMapIter ( HashMap< key, val > &  st  )  [inline]

This allows a MapIter to be constructed from a Map.

When created the new MapIter maintains a reference to the original Map. If the Map to which this MapIter points is deleted, then the MapIter is marked as invalid.

Definition at line 335 of file HashMapIter.h.

template<class key, class val>
casacore::HashMapIter< key, val >::HashMapIter ( const HashMapIter< key, val > &  other  )  [inline]

This allows a MapIter to be constructed from another MapIter.

When created the new MapIter maintains a reference to the Map which the MapIter parameter tracked. If this Map is deleted, then this MapIter is marked as invalid.

Definition at line 343 of file HashMapIter.h.

template<class key, class val>
casacore::HashMapIter< key, val >::HashMapIter (  )  [inline]

Default constructor creates an invalid Map iterator.

Definition at line 348 of file HashMapIter.h.

template<class key, class val>
casacore::HashMapIter< key, val >::~HashMapIter (  ) 

dtor


Member Function Documentation

template<class key, class val>
void casacore::HashMapIter< key, val >::clear (  )  [inline]
template<class key, class val>
const HashMap<key,val>& casacore::HashMapIter< key, val >::container (  )  const [inline]

Returns the container on which this iterator is operating.

Reimplemented from casacore::ConstHashMapIter< key, val >.

Definition at line 376 of file HashMapIter.h.

References casacore::ConstHashMapIter< key, val >::Container, casacore::ConstHashMapIter< key, val >::isValid(), and casacore::throw_invalid_hashmapiter_error().

template<class key, class val>
HashMap<key,val>& casacore::HashMapIter< key, val >::container (  )  [inline]

Returns the container on which this iterator is operating.

Definition at line 371 of file HashMapIter.h.

References casacore::ConstHashMapIter< key, val >::Container, casacore::ConstHashMapIter< key, val >::isValid(), and casacore::throw_invalid_hashmapiter_error().

template<class key, class val>
val& casacore::HashMapIter< key, val >::defaultVal (  )  [inline]
template<class key, class val>
const val& casacore::HashMapIter< key, val >::defaultVal (  )  const [inline]

This returns the default value for the map that this iterator is tracking.

With a non-const iterator the default value can be changed.

Reimplemented from casacore::ConstHashMapIter< key, val >.

Definition at line 291 of file HashMapIter.h.

template<class key, class val>
val& casacore::HashMapIter< key, val >::define ( const key &  k,
const val &  v 
) [inline]

These functions allow for the definition and removal of key/value relations.

The "define(key &, value &)" function defines a key/value relation, and "remove(key &)" function removes a relation if it has been previously defined.

Definition at line 273 of file HashMapIter.h.

References casacore::ConstHashMapIter< key, val >::Container, casacore::ConstHashMapIter< key, val >::isValid(), and casacore::throw_invalid_hashmapiter_error().

template<class key, class val>
virtual const val& casacore::HashMapIter< key, val >::getVal (  )  const [virtual]
template<class key, class val>
val& casacore::HashMapIter< key, val >::getVal (  ) 

Get the key or value for the current position in the Map.

template<class key, class val>
val& casacore::HashMapIter< key, val >::operator() ( const key &  ky  )  [inline]
template<class key, class val>
const val& casacore::HashMapIter< key, val >::operator() ( const key &  ky  )  const [inline]

Allows mapping functions to be performed with the map on which this iterator operates.

If this iterator is invalid, then an exception will be thrown. With a non-const operator, the value can be changed.

Reimplemented from casacore::ConstHashMapIter< key, val >.

Definition at line 318 of file HashMapIter.h.

template<class key, class val>
ConstHashMapIter<key,val>& casacore::HashMapIter< key, val >::operator= ( const ConstHashMapIter< key, val > &   )  [inline, protected]

Definition at line 397 of file HashMapIter.h.

References casacore::throw_hashmapiter_init_error().

template<class key, class val>
ConstHashMapIter<key,val>& casacore::HashMapIter< key, val >::operator= ( const HashMap< key, val > &  other  )  [inline, protected, virtual]

Assign one map iterator to a map (with reference semantics).

Reimplemented from casacore::ConstHashMapIter< key, val >.

Definition at line 394 of file HashMapIter.h.

References casacore::throw_hashmapiter_init_error().

template<class key, class val>
virtual HashMapIter<key,val>& casacore::HashMapIter< key, val >::operator= ( const HashMapIter< key, val > &  other  )  [virtual]

This assignment operator allows the Map which this MapIter tracks to be changed.

After a call to this operator, this MapIter will track the Map which the MapIter parameter tracks, i.e. it will contain a reference to this new Map.

Reimplemented from casacore::ConstHashMapIter< key, val >.

template<class key, class val>
virtual HashMapIter<key,val>& casacore::HashMapIter< key, val >::operator= ( HashMap< key, val > &  other  )  [virtual]

This assignment operator allows the Map which this MapIter tracks to be changed.

After a call to this operator, the MapIter will track the Map parameter.

template<class key, class val>
void casacore::HashMapIter< key, val >::remove ( const key &  k  )  [inline]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1