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

AIDA_TupleVariableDescription.h

Go to the documentation of this file.
00001 // Emacs -*- C++ -*-
00002 #ifndef ANAPHE_AIDA_TUPLEVARIABLEDESCRIPTION
00003 #define ANAPHE_AIDA_TUPLEVARIABLEDESCRIPTION 1
00004 
00005 #include "AIDA_Dev/ITupleVariableDescription.h"
00006 #include <map>
00007 #include <vector>
00008 
00009 namespace Anaphe {
00010   namespace AIDA_Tuple_native {
00011 
00012 class AIDA_TupleVariableDescription : virtual public AIDA::Dev::ITupleVariableDescription {
00013 
00014 public:
00016   AIDA_TupleVariableDescription();
00018   ~AIDA_TupleVariableDescription();
00019 
00021   const std::string& variableName() const;
00022   bool setVariableName( const std::string& name );
00023   const std::string& variableType() const;
00024   bool setVariableType( const std::string& type );
00025   const AIDA::Dev::ITupleVariableStatistics& statistics() const;
00026   AIDA::Dev::ITupleVariableStatistics& statistics();
00027   bool resetStatistics();
00028 
00029   int numberOfVariables() const;
00030   bool setVariableDescription( AIDA::Dev::ITupleVariableDescription* description,
00031                                bool passOwnership );
00032   AIDA::Dev::ITupleVariableDescription* variableDescription( int subVariableIndex );
00033   const AIDA::Dev::ITupleVariableDescription* variableDescription( int subVariableIndex ) const;
00034   int variableIndex( const std::string& variableName ) const;
00035 
00036 private:
00037   std::string                                                           m_name;
00038   std::string                                                           m_type;
00039   std::vector< std::pair<AIDA::Dev::ITupleVariableDescription*, bool> > m_variableDescriptions;
00040   std::map< std::string, int >                                          m_variableIndices;
00041   AIDA::Dev::ITupleVariableStatistics*                                  m_statistics;
00042 
00043   // no copy constructor or assignment operator
00044   AIDA_TupleVariableDescription( const AIDA_TupleVariableDescription& );
00045   AIDA_TupleVariableDescription& operator=( const AIDA_TupleVariableDescription& );
00046 };
00047 
00048   }
00049 }
00050 
00051 #include "AIDA_TupleVariableDescription.inl"
00052 
00053 #endif /* ifndef ANAPHE_AIDA_TUPLEVARIABLEDESCRIPTION */

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