Bdb packages | Design docs | Source docs | Guidelines | Recent releases

Search | Site Map .

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

/BdbUtil/BdbClusteringHint.hh

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: BdbClusteringHint.hh,v 1.12 2001/01/10 23:32:14 becla Exp $
00004 //
00005 // Description:
00006 //      BdbClusteringHint class header file. This is the universal clustering
00007 //  class used by the BaBar persistent classes. It is customizable via
00008 //  specification of a delegate class.
00009 //
00010 // Environment:
00011 //      Software developed for the BaBar Detector at the SLAC B-Factory.
00012 //
00013 // Author List:
00014 //      David R. Quarrie                Lawrence Berkeley National Laboratory
00015 //
00016 // History:
00017 //
00018 //------------------------------------------------------------------------
00019 #ifndef BDBCLUSTERINGHINT_HH
00020 #define BDBCLUSTERINGHINT_HH
00021 
00022 //-----------------
00023 // BaBar Headers --
00024 //-----------------
00025 #ifndef BABAR_HH
00026 #include "BaBar/BaBar.hh"
00027 #endif
00028 
00029 //----------------------
00030 // Base Class Headers --
00031 //----------------------
00032 #ifndef BDBABSTRACTCLUSTERINGHINT_HH
00033 #include "BdbUtil/BdbAbstractClusteringHint.hh"
00034 #endif
00035 
00036 
00037 class BdbAbsClustHintFactory;
00038 
00039 
00040 //              ---------------------
00041 //              -- Class Interface --
00042 //              ---------------------
00043  
00044 class BdbClusteringHint : public BdbAbstractClusteringHint {
00045 public:
00046 
00047     // Constructor
00048     BdbClusteringHint();
00049     BdbClusteringHint(const BdbClusteringHint& obj);
00050     
00051     // Destructor
00052     virtual ~BdbClusteringHint();
00053 
00054     // Selectors
00055     BdbAbstractClusteringHint* delegate() const;
00056 
00057     d_Boolean hintIsValid() const;
00058 
00059     // Operations
00060     static void setClustHintFactory( BdbAbsClustHintFactory* f );
00061     void setDelegate( BdbAbstractClusteringHint* theDelegate );
00062     BdbRefAny hint();
00063     BdbRefAny getHint();
00064     BdbRefAny updatedHint();
00065     void prepareHint();
00066     virtual BdbRefAny resetHint();
00067 
00068     // Operators
00069     const BdbClusteringHint& operator = ( BdbHandleAny& theHint );
00070     const BdbClusteringHint& operator = ( BdbRefAny&    theHint );
00071     virtual void setHint( BdbHandleAny& theHint );
00072     virtual void setHint( BdbRefAny& theHint );
00073 
00074     virtual void forceNewDatabase() {}
00075 
00076     virtual BdbStatus getAllFullDbs(ooTVArray(d_ULong)& theTVArray) {return BdbcError;}
00077     virtual BdbStatus removeFullDbsFromRegistry(const ooTVArray(d_ULong)& theTVArray) {return BdbcError;}
00078     virtual void forceNewContainer() {}
00079 
00080     virtual void printSetting() {}
00081 
00082     virtual BdbStatus setMaxWaitTime(d_ULong value) {return BdbcError;}
00083 
00084     virtual d_Boolean newDatabaseCreated()  {return 0;}
00085     virtual d_Boolean newContainerCreated() {return 0;}
00086     virtual void      internalCollectReturnedConts()       {}
00087     virtual BdbStatus internalReturnCollectedConts() const {return BdbcError;}
00088 
00089 protected:
00090 
00091     static BdbAbsClustHintFactory* getClustHintFactory();
00092 
00093 private:
00094     BdbAbstractClusteringHint* _delegate;
00095     BdbRefAny                  _hint;
00096     static BdbAbsClustHintFactory* _factory;
00097 };
00098 
00099 #endif // BDBCLUSTERINGHINT_HH

 


BaBar Public Site | SLAC | News | Links | Who's Who | Contact Us

Page Owner: Jacek Becla
Last Update: October 04, 2002