Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

AIDA_TupleVariableDescription.cpp

Go to the documentation of this file.
00001 #include "AIDA_TupleVariableDescription.h"
00002 #include "AIDA_TupleVariableStatistics.h"
00003 
00004 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::AIDA_TupleVariableDescription():
00005   m_name(""),
00006   m_type(""),
00007   m_variableDescriptions(),
00008   m_variableIndices(),
00009   m_statistics( 0 )
00010 {
00011   m_statistics = new Anaphe::AIDA_Tuple_native::AIDA_TupleVariableStatistics;
00012 }
00013 
00014 
00015 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::~AIDA_TupleVariableDescription()
00016 {
00017   for ( unsigned int i = 0; i < m_variableDescriptions.size(); ++i ) {
00018     if ( m_variableDescriptions[i].second ) delete m_variableDescriptions[i].first;
00019   }
00020 
00021   if ( m_statistics ) delete m_statistics;
00022 }
00023 
00024 
00025 bool
00026 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::setVariableDescription( AIDA::Dev::ITupleVariableDescription* description,
00027                                                                                   bool passOwnership )
00028 {
00029   std::map< std::string, int >::iterator iVariable = m_variableIndices.find( description->variableName() );
00030   if ( iVariable != m_variableIndices.end() ) {
00031     if ( m_variableDescriptions[ iVariable->second ].second ) delete m_variableDescriptions[ iVariable->second ].first;
00032     m_variableDescriptions[ iVariable->second ].first = description;
00033     m_variableDescriptions[ iVariable->second ].second = passOwnership;
00034   }
00035   else {
00036     m_variableIndices.insert( std::make_pair( description->variableName(), static_cast<int>(m_variableDescriptions.size()) ) );
00037     m_variableDescriptions.push_back( std::make_pair( description, passOwnership ) );
00038   }
00039   return true;
00040 }
00041 
00042 
00043 AIDA::Dev::ITupleVariableDescription*
00044 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::variableDescription( int subVariableIndex )
00045 {
00046   if ( subVariableIndex < 0 || subVariableIndex >= static_cast<int>(m_variableDescriptions.size()) ) return 0;
00047   return m_variableDescriptions[subVariableIndex].first;
00048 }
00049 
00050 
00051 const AIDA::Dev::ITupleVariableDescription*
00052 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::variableDescription( int subVariableIndex ) const
00053 {
00054   if ( subVariableIndex < 0 || subVariableIndex >= static_cast<int>(m_variableDescriptions.size()) ) return 0;
00055   return m_variableDescriptions[subVariableIndex].first;
00056 }
00057 
00058 
00059 int
00060 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::variableIndex( const std::string& variableName ) const
00061 {
00062   std::map< std::string, int >::const_iterator i = m_variableIndices.find( variableName );
00063   if ( i == m_variableIndices.end() ) return -1;
00064   else return i->second;
00065 }
00066 
00067 
00068 const AIDA::Dev::ITupleVariableStatistics&
00069 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::statistics() const
00070 {
00071   return *m_statistics;
00072 }
00073 
00074 
00075 AIDA::Dev::ITupleVariableStatistics&
00076 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::statistics()
00077 {
00078   return *m_statistics;
00079 }
00080 
00081 
00082 bool
00083 Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription::resetStatistics()
00084 {
00085   return m_statistics->reset();
00086 }

Generated on Tue Feb 18 17:51:19 2003 for AIDA_Tuple_native by doxygen1.2.16