casacore::MapIterRep< key, value > Class Template Reference

Abstract base class for associative array iterators. More...

#include <Map.h>

Inheritance diagram for casacore::MapIterRep< key, value >:
casacore::OrderedMapIterRep< key, value >

List of all members.

Public Types

enum  { MapIterRepVersion }

Public Member Functions

virtual Bool isValid () const =0
 Check to see if the iterator is in a valid state.
virtual Bool atEnd () const =0
 Check to see if the iterator position is at the end or beginning of the Map.
virtual Bool atStart () const =0
virtual void toStart ()=0
 Move the iterator to the start of the Map.
virtual void operator++ ()=0
 Advance to the next element of the Map.
virtual void operator++ (int)=0
virtual const key & getKey () const =0
 Get the key for the current position in the Map.
virtual value & getVal ()=0
 Return the value at the current location of the map iterator.
virtual const value & getVal () const =0
const value & defaultVal () const
 This returns the default value for the map that this iterator is tracking.
value & defaultVal ()
value & define (const key &ky, const value &val)
 These functions allow for the definition and removal of key/value relations.
void remove (const key &ky)
void clear ()
 Clear all of the mappings.
const value & operator() (const key &ky) const
 Allows mapping functions to be performed with the map on which this iterator operates.
value & operator() (const key &ky)
const value * isDefined (const key &ky) const
 Allows one to check to see if a given key is defined in the map which this iterator tracks.
value * isDefined (const key &ky)
uInt ndefined () const
 Returns the number of user defined mappings.
Map< key, value > & container ()
 Returns the container on which this iterator is operating.
const Map< key, value > & container () const
virtual MapIterRep< key, value > * Clone ()=0
 Duplicate a map iterator.
 MapIterRep (Map< key, value > &st)
 This allows a MapIter to be constructed from a Map.
 MapIterRep (Map< key, value > *st)
virtual ~MapIterRep ()

Protected Attributes

Map< key, value > * Container

Detailed Description

template<class key, class value>
class casacore::MapIterRep< key, value >

Abstract base class for associative array iterators.

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

This is the abstract base class for all (Const)MapIter "letters". That is all Map specializations must provide a "IterRep" for the particular specialization which will allow the (Const)MapIter envelope to traverse the new type of map.

Definition at line 274 of file Map.h.


Member Enumeration Documentation

template<class key, class value>
anonymous enum
Enumerator:
MapIterRepVersion 

Definition at line 404 of file Map.h.


Constructor & Destructor Documentation

template<class key, class value>
casacore::MapIterRep< key, value >::MapIterRep ( Map< key, value > &  st  ) 

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.

template<class key, class value>
casacore::MapIterRep< key, value >::MapIterRep ( Map< key, value > *  st  ) 
template<class key, class value>
virtual casacore::MapIterRep< key, value >::~MapIterRep (  )  [virtual]

Member Function Documentation

template<class key, class value>
virtual Bool casacore::MapIterRep< key, value >::atEnd (  )  const [pure virtual]

Check to see if the iterator position is at the end or beginning of the Map.

Implemented in casacore::OrderedMapIterRep< key, value >.

template<class key, class value>
virtual Bool casacore::MapIterRep< key, value >::atStart (  )  const [pure virtual]
template<class key, class value>
void casacore::MapIterRep< key, value >::clear (  ) 

Clear all of the mappings.

template<class key, class value>
virtual MapIterRep<key,value>* casacore::MapIterRep< key, value >::Clone (  )  [pure virtual]

Duplicate a map iterator.

Implemented in casacore::OrderedMapIterRep< key, value >.

template<class key, class value>
const Map<key,value>& casacore::MapIterRep< key, value >::container (  )  const
template<class key, class value>
Map<key,value>& casacore::MapIterRep< key, value >::container (  ) 
template<class key, class value>
value& casacore::MapIterRep< key, value >::defaultVal (  ) 
template<class key, class value>
const value& casacore::MapIterRep< key, value >::defaultVal (  )  const

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

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

template<class key, class value>
value& casacore::MapIterRep< key, value >::define ( const key &  ky,
const value &  val 
)

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.

template<class key, class value>
virtual const key& casacore::MapIterRep< key, value >::getKey (  )  const [pure virtual]

Get the key for the current position in the Map.

Implemented in casacore::OrderedMapIterRep< key, value >.

template<class key, class value>
virtual const value& casacore::MapIterRep< key, value >::getVal (  )  const [pure virtual]
template<class key, class value>
virtual value& casacore::MapIterRep< key, value >::getVal (  )  [pure virtual]

Return the value at the current location of the map iterator.

Should throw an exception if the iterator is "past the end of the Map" or if the iterator is invalid.

Implemented in casacore::OrderedMapIterRep< key, value >.

template<class key, class value>
value* casacore::MapIterRep< key, value >::isDefined ( const key &  ky  ) 
template<class key, class value>
const value* casacore::MapIterRep< key, value >::isDefined ( const key &  ky  )  const

Allows one to check to see if a given key is defined in the map which this iterator tracks.

If this iterator is invalid, then an exception will be thrown. With a non-const iterator the returned pointer can be used to change the value in the map.

template<class key, class value>
virtual Bool casacore::MapIterRep< key, value >::isValid (  )  const [pure virtual]

Check to see if the iterator is in a valid state.

Implemented in casacore::OrderedMapIterRep< key, value >.

template<class key, class value>
uInt casacore::MapIterRep< key, value >::ndefined (  )  const

Returns the number of user defined mappings.

template<class key, class value>
value& casacore::MapIterRep< key, value >::operator() ( const key &  ky  ) 
template<class key, class value>
const value& casacore::MapIterRep< key, value >::operator() ( const key &  ky  )  const

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.

template<class key, class value>
virtual void casacore::MapIterRep< key, value >::operator++ ( int   )  [pure virtual]
template<class key, class value>
virtual void casacore::MapIterRep< key, value >::operator++ (  )  [pure virtual]

Advance to the next element of the Map.

Implemented in casacore::OrderedMapIterRep< key, value >.

template<class key, class value>
void casacore::MapIterRep< key, value >::remove ( const key &  ky  ) 
template<class key, class value>
virtual void casacore::MapIterRep< key, value >::toStart (  )  [pure virtual]

Move the iterator to the start of the Map.

Implemented in casacore::OrderedMapIterRep< key, value >.


Member Data Documentation

template<class key, class value>
Map<key,value>* casacore::MapIterRep< key, value >::Container [protected]

Definition at line 408 of file Map.h.


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