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  

/BdbApplication/BdbDomain.hh

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //  $Id: BdbDomain.hh,v 1.75 2001/12/05 22:09:30 patton Exp $
00004 //
00005 // Description:
00006 //  Class BdbDomain header file. This class represents a BaBar
00007 //  Database domain. It provides a virtual function that manages
00008 //  database update access depending on the authorization level.
00009 //
00010 // Environment:
00011 //  Software developed for the BaBar Detector at the SLAC B-Factory.
00012 //
00013 // Author List:
00014 //  David R. Quarrie            Original Author
00015 //  Igor A. Gaponenko           Modified to support *DBFS* interface
00016 //
00017 // History:
00018 //
00019 //------------------------------------------------------------------------
00020 #ifndef BDBDOMAIN_HH
00021 #define BDBDOMAIN_HH
00022 
00023 //-----------------
00024 // BaBar Headers --
00025 //-----------------
00026 #include "BaBar/BaBar.hh"
00027 
00028 //---------------
00029 // C++ Headers --
00030 //---------------
00031 #include "BdbUtil/Bdb.hh"
00032 
00033 //-------------------------------
00034 // Collaborating Class Headers --
00035 //-------------------------------
00036 #include "BdbUtil/BdbTString.hh"
00037 #include "BdbApplication/BdbDomainAuth.hh"
00038 #include "BdbApplication/BdbDomainDBFS.hh"
00039 #include "BdbDomainOODB/BdbDomainOODB.hh"
00040 #include "BdbDomainMgmt/BdbDomainName.hh"
00041 
00042 
00043 // Choose one of the following sections
00044 #if defined(USE_BDBAPPLICATION)
00045 #include "BdbApplMgmt/BdbApplication.hh"
00046 typedef BdbApplication BdbApplicationOrDomain
00047 #else
00048 class BdbDomain ;
00049 typedef BdbDomain BdbApplicationOrDomain ;
00050 #endif // USE_BDBAPPLICATION
00051 
00052 class BdbAbsFSNamesStr ;
00053 class BdbAbsInhibitMgr;
00054 class BdbStatTimers ;
00055 class BdbImplDomainOODB ;
00056 
00057 //      ---------------------
00058 //      -- Class Interface --
00059 //      ---------------------
00060  
00061 class BdbDomain
00062    : public BdbDomainName ,
00063      public BdbDomainAuth ,
00064      public BdbDomainDBFS ,
00065      public BdbDomainOODB
00066 {
00067 
00068 //------------------
00069 // Static Members --
00070 //------------------
00071 
00072 public:
00073 
00074     /**
00075      ** Return the currently active BdbDomain (or first one if
00076      **   'domain activation' is not working.)
00077      **/
00078     static BdbDomain* activeInstance( );
00079 
00080     // Default database parameters
00081     static d_ULong _defaultMaxContNr[];
00082     static d_ULong _defaultMaxContSize[];
00083     static d_ULong _defaultDirRange[] ;
00084     static d_ULong _defaultMinNoPrecrDbs[];
00085     static d_ULong _defaultMaxNoPrecrDbs[];
00086     static d_ULong _defaultPrecrNoConts[];
00087     static d_ULong _defaultMaxDbSize[];
00088     static d_ULong _defaultPrefContSize[];
00089     static d_ULong _defaultHardContLimit[];
00090     
00091 private:
00092 
00093 //--------------------
00094 // Instance Members --
00095 //--------------------
00096 
00097 public:
00098 
00099   /**
00100    ** Destructor
00101    **/
00102     virtual ~BdbDomain( );
00103 
00104     /***************
00105      ** Selectors **
00106      ***************/
00107 
00108    /***************
00109     ** Modifiers **
00110     ***************/
00111 
00112     /**
00113      ** Return access statistics timers
00114      **/
00115     BdbStatTimers& statTimers() ;
00116 
00117     /****************
00118      ** Operations **
00119      ****************/
00120 
00121     static BdbImplDomainOODB* createImplDomainOODB( BdbDomainName& domainName,
00122                                                     BdbDomainOODB::TransReuse reuse ) ;
00123 
00124 protected:
00125 
00126   // Constructor(s)
00127     // this version of the ctor should be depricated before the next
00128     // release build, and is included for library compatibility
00129     BdbDomain( BdbDomainName::Domains theDomain );
00130 
00131     // When the preceeding ctor is depricated this ctor should have
00132     // as default 2nd argument of BdbDomainOODB::Required
00133     BdbDomain( BdbDomainName::Domains theDomain,
00134                BdbDomainOODB::TransReuse reuse );
00135 
00136   // Operations
00137 
00138 private:
00139 
00140 };
00141 
00142 #endif /* BDBDOMAIN_HH */

 


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

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