casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | List of all members
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 >

Public Member Functions

val & getVal ()
 Get the key or value for the current position in the Map. More...
 
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. More...
 
void remove (const key &k)
 
const val & defaultVal () const
 This returns the default value for the map that this iterator is tracking. More...
 
val & defaultVal ()
 
void clear ()
 Clear all of the mappings. More...
 
const val & operator() (const key &ky) const
 Allows mapping functions to be performed with the map on which this iterator operates. More...
 
val & operator() (const key &ky)
 
 HashMapIter (HashMap< key, val > &st)
 This allows a MapIter to be constructed from a Map. More...
 
 HashMapIter (const HashMapIter< key, val > &other)
 This allows a MapIter to be constructed from another MapIter. More...
 
 HashMapIter ()
 Default constructor creates an invalid Map iterator. More...
 
virtual HashMapIter< key, val > & operator= (HashMap< key, val > &other)
 This assignment operator allows the Map which this MapIter tracks to be changed. More...
 
virtual HashMapIter< key, val > & operator= (const HashMapIter< key, val > &other)
 This assignment operator allows the Map which this MapIter tracks to be changed. More...
 
HashMap< key, val > & container ()
 Returns the container on which this iterator is operating. More...
 
const HashMap< key, val > & container () const
 
 ~HashMapIter ()
 dtor More...
 
- Public Member Functions inherited from casacore::ConstHashMapIter< key, val >
void toStart ()
 Move the iterator to the start of the Map. More...
 
void operator++ ()
 Advance to the next element of the Map. More...
 
void operator++ (int)
 
const key & getKey () const
 Get the key or value for the current position in the Map. More...
 
const val & getVal () const
 
Bool atEnd () const
 Check to see if the iterator position is at the end or beginning of the Map. More...
 
Bool atStart () const
 
Bool isValid () const
 Check to see if the iterator is in a valid state. More...
 
 ConstHashMapIter (const HashMap< key, val > &st)
 Constructs a Map iterator from a Map (with reference semantics). More...
 
 ConstHashMapIter (const ConstHashMapIter< key, val > &st)
 Constructs a Map iterator from another iterator (with reference semantics). More...
 
 ConstHashMapIter ()
 Default constructor creates an invalid Map iterator. More...
 
const val & defaultVal () const
 Returns the default value for the Map on which this iterator is operating if it is a valid iterator, otherwise it throws an exception. More...
 
const val & operator() (const key &ky) const
 Allows mapping functions to be performed with the map on which this iterator operates. More...
 
Bool isDefined (const key &ky) const
 Allows one to check to see if a given key is defined in the map which this iterator tracks. More...
 
uInt ndefined () const
 Returns the number of user defined mappings. More...
 
const HashMap< key, val > & container () const
 Returns the container on which this iterator is operating. More...
 
virtual ~ConstHashMapIter ()
 dtor More...
 

Protected Member Functions

ConstHashMapIter< key, val > & operator= (const HashMap< key, val > &)
 Assign one map iterator to a map (with reference semantics). More...
 
ConstHashMapIter< key, val > & operator= (const ConstHashMapIter< key, val > &)
 Assign one map iterator to another iterator (with reference semantics). More...
 
- Protected Member Functions inherited from casacore::ConstHashMapIter< key, val >
void step ()
 

Additional Inherited Members

- Protected Attributes inherited from casacore::ConstHashMapIter< key, val >
ListIter< OrderedPair< key, val > > iter
 
HashMap< key, val > * Container
 
uInt curBucket
 
Bool atEnd_
 

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 <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 257 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 338 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 346 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 351 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>
HashMap<key,val>& casacore::HashMapIter< key, val >::container ( )
inline

Returns the container on which this iterator is operating.

Definition at line 374 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>
const HashMap<key,val>& casacore::HashMapIter< key, val >::container ( ) const
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.

Definition at line 294 of file HashMapIter.h.

References casacore::ConstHashMapIter< key, val >::defaultVal().

template<class key, class val>
val& casacore::HashMapIter< key, val >::defaultVal ( )
inline
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 276 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 >::getVal ( )

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

template<class key, class val>
virtual const val& casacore::HashMapIter< key, val >::getVal ( ) const
virtual
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.

Definition at line 321 of file HashMapIter.h.

References casacore::ConstHashMapIter< key, val >::operator()().

template<class key, class val>
val& casacore::HashMapIter< key, val >::operator() ( const key &  ky)
inline
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>
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.

template<class key, class val>
ConstHashMapIter<key,val>& casacore::HashMapIter< key, val >::operator= ( const HashMap< key, val > &  other)
inlineprotectedvirtual

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

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

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 ConstHashMapIter< key, val > &  other)
inlineprotectedvirtual

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

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

Definition at line 400 of file HashMapIter.h.

References casacore::throw_hashmapiter_init_error().

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: