00001 #include "AIDA_DevTupleFactory.h" 00002 #include "AIDA_Tuple.h" 00003 #include "AIDA_ChainedTuple.h" 00004 #include "AIDA_TupleVariableDescription.h" 00005 #include <exception> 00006 00007 00008 Anaphe::AIDA_Tuple_native::AIDA_DevTupleFactory::AIDA_DevTupleFactory() 00009 {} 00010 00011 00012 Anaphe::AIDA_Tuple_native::AIDA_DevTupleFactory::~AIDA_DevTupleFactory() 00013 {} 00014 00015 00016 AIDA::Dev::IDevTuple* 00017 Anaphe::AIDA_Tuple_native::AIDA_DevTupleFactory::create( AIDA::Dev::IBackingStore* backingStore, 00018 const std::string& title, 00019 std::string options ) 00020 { 00021 AIDA::Dev::IDevTuple* tuple = 0; 00022 try { 00023 tuple = new Anaphe::AIDA_Tuple_native::AIDA_Tuple; 00024 } 00025 catch ( std::exception& ) { 00026 return 0; 00027 } 00028 if ( ! tuple ) return 0; 00029 tuple->setTitle( title ); 00030 tuple->header().setOptions( options ); 00031 tuple->connectToStore( backingStore ); 00032 return tuple; 00033 } 00034 00035 00036 AIDA::Dev::IDevTuple* 00037 Anaphe::AIDA_Tuple_native::AIDA_DevTupleFactory::createChained( const std::string& title, 00038 const std::vector<AIDA::Dev::IDevTuple*>& tupleset ) 00039 { 00040 AIDA::Dev::IDevTuple* tuple = 0; 00041 try { 00042 tuple = new Anaphe::AIDA_Tuple_native::AIDA_ChainedTuple( tupleset ); 00043 } 00044 catch( std::exception& ) { 00045 return 0; 00046 } 00047 if ( ! tuple ) return 0; 00048 tuple->setTitle( title ); 00049 return tuple; 00050 } 00051 00052 00053 AIDA::Dev::ITupleVariableDescription* 00054 Anaphe::AIDA_Tuple_native::AIDA_DevTupleFactory::createDescription() 00055 { 00056 return new Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription; 00057 } 00058 00059 00060 AIDA::Dev::ITupleVariableDescription* 00061 Anaphe::AIDA_Tuple_native::AIDA_DevTupleFactory::createDescription( const AIDA::Dev::ITupleVariableDescription& original ) 00062 { 00063 AIDA::Dev::ITupleVariableDescription* copy = new Anaphe::AIDA_Tuple_native::AIDA_TupleVariableDescription; 00064 copy->setVariableName( original.variableName() ); 00065 copy->setVariableType( original.variableType() ); 00066 for ( int iVariable = 0; iVariable < original.numberOfVariables(); ++iVariable ) { 00067 copy->setVariableDescription( createDescription( *( original.variableDescription( iVariable ) ) ), true ); 00068 } 00069 return copy; 00070 }