00001
00009 #ifndef INTERFACES_INTUPLEMANAGER_H
00010 #define INTERFACES_INTUPLEMANAGER_H 1
00011
00012 #include <iostream>
00013
00014 #ifndef ANAPHE_NO_NAMESPACE
00015 namespace Anaphe {
00016 #endif
00017
00018 class INtuple;
00019 class INtupleFactory;
00020 class INtupleParameters;
00021
00022 class INtupleManager
00023 {
00024 public:
00025
00026
00027 virtual ~INtupleManager () { ; }
00028
00029 virtual void setFactory ( const INtupleFactory* aFactory ) = 0;
00030 virtual INtuple* retrieve ( const unsigned int aIndex ) = 0;
00031 virtual void erase ( const unsigned int aIndex ) = 0;
00032
00033 #ifdef AIDA_DONT_USE_STD
00034 virtual void review ( ostream& aOs = cout ) = 0;
00035 virtual void listNtuples ( ostream& aOs = cout ) = 0;
00036 virtual void listNtuples ( const char* aStoreName,
00037 ostream& aOs = cout ) = 0;
00038 #else // #ifdef AIDA_DONT_USE_STD
00039 virtual void review ( std::ostream& aOs = std::cout ) = 0;
00040 virtual void listNtuples ( std::ostream& aOs = std::cout ) = 0;
00041 virtual void listNtuples ( const char* aStoreName,
00042 std::ostream& aOs = std::cout ) = 0;
00043 #endif // #ifdef AIDA_DONT_USE_STD
00044
00045 virtual INtuple* findNtuple ( const char* aName ) = 0;
00046
00047 virtual INtupleParameters*
00048 createParameters () = 0;
00049
00050 virtual void selectStore ( const char* aName ) = 0;
00051 };
00052
00053 #ifndef ANAPHE_NO_NAMESPACE
00054 };
00055 #endif
00056
00057
00058 extern "C" {
00059 Anaphe::INtupleManager* createINtupleManager();
00060 }
00061
00062 #endif // #ifndef INTERFACES_INTUPLEMANAGER_H