Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

CAssocArrayBinding< T > Class Template Reference

#include <CAssocArrayBinding.h>

Inheritance diagram for CAssocArrayBinding< T >:

CBinding< T > CTypeFreeBinding List of all members.

Public Member Functions

 CAssocArrayBinding (const STD(string)&rName)
 CAssocArrayBinding (const char *pName)
 ~CAssocArrayBinding ()
 STD (map)< STD(string)
getArray () const
 < Get entire STD(map)
 STD (map)< STD(string)
T::iterator begin ()
 STD (map)< STD(string)
T::iterator end ()
T & operator[] (const char *pName)
T & operator[] (const STD(string)&rName)
 STD (map)< STD(string)
T::iterator find (const char *pName)
 STD (map)< STD(string)
T::iterator find (const STD(string)&rName)
 STD (string) getName() const
int getType () const
virtual void InitBindings (CTCLInterpreter &rInterp)
virtual void Commit (CTCLInterpreter &rInterp)
virtual void ShutdownBindings (CTCLInterpreter &rInterp)
virtual void Dump (int fd)

Private Member Functions

 STD (map)< STD(string)
 STD (string) m_sName
 TCL Name of array.
 CAssocArrayBinding (const CAssocArrayBinding &rhs)
CAssocArrayBindingoperator= (const CAssocArrayBinding &rhs)
int operator== (const CAssocArrayBinding &rhs)

Private Attributes

m_Array
 Data stored in this STD(map).
int m_TCLVariableType
 Type of data in the array.

Detailed Description

template<class T>
class CAssocArrayBinding< T >

Encapsulates the configuration of an associative array. Associative arrays are arrays whose indices are strings rather than numbers. One use of associative arrays is to provide meaningful subscripts to configuration items. For example, suppose I want to store the thresholds for all of my 'detector' adc's. I might have an associative array named thresholds with subscripts which indicate detector segment and subtype e.g. "seg1,de" could be an index. Some key properties of associative arrays:

Definition at line 326 of file CAssocArrayBinding.h.


Constructor & Destructor Documentation

template<class T>
CAssocArrayBinding< T >::CAssocArrayBinding const STD(string)&  rName  ) 
 

template<class T>
CAssocArrayBinding< T >::CAssocArrayBinding const char *  pName  ) 
 

Constructs an associative array configured from a TCL array. The TCL array name is speicified by a const char*

Parameters:
pName - Name of the configuration array.

Definition at line 327 of file CAssocArrayBinding.cpp.

References CAssocArrayBinding< T >::m_TCLVariableType, and CBinding< T >::VariableType().

template<class T>
CAssocArrayBinding< T >::~CAssocArrayBinding  ) 
 

The destructor will need to delete storage associated with character entries in the map.

Definition at line 339 of file CAssocArrayBinding.cpp.

References CAssocArrayBinding< T >::m_Array, and CAssocArrayBinding< T >::m_TCLVariableType.

template<class T>
CAssocArrayBinding< T >::CAssocArrayBinding const CAssocArrayBinding< T > &  rhs  )  [private]
 


Member Function Documentation

template<class T>
T ::iterator CAssocArrayBinding< T >::begin  )  [inline]
 

< get iterator to start of STD(map).

Definition at line 350 of file CAssocArrayBinding.h.

References CAssocArrayBinding< T >::m_Array.

template<class T>
void CAssocArrayBinding< T >::Commit CTCLInterpreter &  rInterp  )  [virtual]
 

Commits the bindings to the array. In this case we will determine the set of indices the variable has (by running a string script of the form "array names m_sName", and fetching the results from the result string. For each item in the TCL array an item is created in the m_Array. Note that if the type is TCL_BIND_STRING, dynamic memory is allocated to hold the result string.

Parameters:
rInterp - the interpreter which read in the config file. Used to fetch variable strings etc.

Implements CBinding< T >.

Definition at line 376 of file CAssocArrayBinding.cpp.

References CAssocArrayBinding< T >::m_Array.

template<class T>
void CAssocArrayBinding< T >::Dump int  fd  )  [virtual]
 

Dumps the contents of the array out in a form which allows the array to be recovered by reading the file.

Parameters:
fd - A file descriptor on which to write this data.

Implements CBinding< T >.

Definition at line 474 of file CAssocArrayBinding.cpp.

References CAssocArrayBinding< T >::m_Array.

template<class T>
T ::iterator CAssocArrayBinding< T >::end  )  [inline]
 

< get iterator to end of STD(map).

Definition at line 353 of file CAssocArrayBinding.h.

References CAssocArrayBinding< T >::m_Array.

template<class T>
T ::iterator CAssocArrayBinding< T >::find const STD(string)&  rName  )  [inline]
 

Definition at line 366 of file CAssocArrayBinding.h.

References CAssocArrayBinding< T >::m_Array.

template<class T>
T ::iterator CAssocArrayBinding< T >::find const char *  pName  )  [inline]
 

Definition at line 363 of file CAssocArrayBinding.h.

References CAssocArrayBinding< T >::m_Array, and CAssocArrayBinding< T >::STD().

template<class T>
T CAssocArrayBinding< T >::getArray  )  const [inline]
 

< Get entire STD(map)

Definition at line 346 of file CAssocArrayBinding.h.

template<class T>
int CAssocArrayBinding< T >::getType  )  const [inline]
 

< Get data type.

Definition at line 374 of file CAssocArrayBinding.h.

template<class T>
void CAssocArrayBinding< T >::InitBindings CTCLInterpreter &  rInterp  )  [virtual]
 

Initialize the bindings prior to reading in the configuration file. for this class the actual binding operation is done in the commit phase so this is a no-op.

Parameters:
rInterp - Referencers the TCL interpreter which will be used to read in the configuration file.

Implements CBinding< T >.

Definition at line 359 of file CAssocArrayBinding.cpp.

template<class T>
CAssocArrayBinding& CAssocArrayBinding< T >::operator= const CAssocArrayBinding< T > &  rhs  )  [private]
 

template<class T>
int CAssocArrayBinding< T >::operator== const CAssocArrayBinding< T > &  rhs  )  [private]
 

template<class T>
T& CAssocArrayBinding< T >::operator[] const STD(string)&  rName  )  [inline]
 

< Index item by name.

Definition at line 360 of file CAssocArrayBinding.h.

References CAssocArrayBinding< T >::m_Array.

template<class T>
T& CAssocArrayBinding< T >::operator[] const char *  pName  )  [inline]
 

< Index item by name.

Definition at line 356 of file CAssocArrayBinding.h.

References CAssocArrayBinding< T >::m_Array, and CAssocArrayBinding< T >::STD().

template<class T>
void CAssocArrayBinding< T >::ShutdownBindings CTCLInterpreter &  rInterp  )  [virtual]
 

Closes out whatever needs closing prior to deleting the interpreter which was used to read the configuration file. In this case, no action is taken as the 'binding' is done at commit time and no real connection is made between the interpreter and the array.

Parameters:
rInterp - Interpreter which read the config file.

Implements CBinding< T >.

Definition at line 464 of file CAssocArrayBinding.cpp.

template<class T>
CAssocArrayBinding< T >::STD string   )  const [inline]
 

< Get name of TCL array.

Definition at line 370 of file CAssocArrayBinding.h.

template<class T>
CAssocArrayBinding< T >::STD map   ) 
 

template<class T>
CAssocArrayBinding< T >::STD map   ) 
 

template<class T>
CAssocArrayBinding< T >::STD map   ) 
 

template<class T>
CAssocArrayBinding< T >::STD map   ) 
 

template<class T>
CAssocArrayBinding< T >::STD map   ) 
 

template<class T>
CAssocArrayBinding< T >::STD string   )  [private]
 

TCL Name of array.

Reimplemented from CBinding< T >.

template<class T>
CAssocArrayBinding< T >::STD map   )  [private]
 

Referenced by CAssocArrayBinding< T >::find(), and CAssocArrayBinding< T >::operator[]().


Member Data Documentation

template<class T>
T CAssocArrayBinding< T >::m_Array [private]
 

Data stored in this STD(map).

Definition at line 330 of file CAssocArrayBinding.h.

Referenced by CAssocArrayBinding< T >::begin(), CAssocArrayBinding< T >::Commit(), CAssocArrayBinding< T >::Dump(), CAssocArrayBinding< T >::end(), CAssocArrayBinding< T >::find(), CAssocArrayBinding< T >::operator[](), and CAssocArrayBinding< T >::~CAssocArrayBinding().

template<class T>
int CAssocArrayBinding< T >::m_TCLVariableType [private]
 

Type of data in the array.

Definition at line 332 of file CAssocArrayBinding.h.

Referenced by CAssocArrayBinding< T >::CAssocArrayBinding(), and CAssocArrayBinding< T >::~CAssocArrayBinding().


The documentation for this class was generated from the following files:
Generated on Thu Jan 6 16:58:43 2005 for Spectrodaq External Event Framework by  doxygen 1.3.9.1