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

TupleVariableDescriptionBuilder.h

Go to the documentation of this file.
00001 // Emacs -*- C++ -*-
00002 #ifndef ANAPHE_TUPLEVARIABLEDECSRIPTIONBUILDER_H
00003 #define ANAPHE_TUPLEVARIABLEDECSRIPTIONBUILDER_H 1
00004 
00005 #include <vector>
00006 #include <list>
00007 #include <string>
00008 
00009 namespace AIDA {
00010   namespace Dev {
00011     class ITupleVariableDescription;
00012     class ITupleHeader;
00013     class IDevTupleFactory;
00014   }
00015 }
00016 
00017 namespace Anaphe {
00018   namespace AIDA_Tuple_native {
00019 
00020 class TupleVariableDescriptionBuilder
00021 {
00022 public:
00024   TupleVariableDescriptionBuilder( AIDA::Dev::IDevTupleFactory& factory );
00026   ~TupleVariableDescriptionBuilder() {}
00027 
00029   bool buildDescription( AIDA::Dev::ITupleHeader& header,
00030                          const std::string& descriptionString );
00031 
00033   bool buildDescription( AIDA::Dev::ITupleHeader& header,
00034                          const std::vector<std::string>& variableNames,
00035                          const std::vector<std::string>& variableTypes );
00036 
00037   /***** HELPER METHODS *****/
00039   bool buildDescription( AIDA::Dev::ITupleVariableDescription& description,
00040                          const std::string& descriptionString );
00041 
00043   bool buildDescription( AIDA::Dev::ITupleVariableDescription& description,
00044                          const std::vector<std::string>& variableNames,
00045                          const std::vector<std::string>& variableTypes );
00046 
00048   bool decompose( const std::string& input,
00049                   std::vector<std::string>& variableNames,
00050                   std::vector<std::string>& variableTypes ) const;
00051 
00052 private:
00054   AIDA::Dev::IDevTupleFactory&   m_factory;
00055 
00057   template< class T > bool buildDescriptionT( T& t,
00058                                               const std::vector<std::string>& variableNames,
00059                                               const std::vector<std::string>& variableTypes );
00060 };
00061 
00062   }
00063 }
00064 
00065 #include "TupleVariableDescriptionBuilder.templ"
00066 
00067 #endif /* ifndef ANAPHE_TUPLEVARIABLEDECSRIPTIONBUILDER_H */

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