33#ifndef BESCatalogList_h_
34#define BESCatalogList_h_ 1
40#include "BESDataHandlerInterface.h"
45#define BES_DEFAULT_CATALOG "catalog"
86 std::map<std::string, BESCatalog *> d_catalogs;
91 std::string d_default_catalog_name;
94 static BESCatalogList * d_instance;
96 static void initialize_instance();
97 static void delete_instance();
99 friend class BESCatalogListTest;
102 typedef std::map<std::string, BESCatalog *>::iterator catalog_iter;
103 typedef std::map<std::string, BESCatalog *>::const_iterator catalog_citer;
105 static BESCatalogList * TheCatalogList();
108 virtual ~BESCatalogList();
113 virtual int empty()
const {
return d_catalogs.empty(); }
120 virtual bool add_catalog(
BESCatalog *catalog);
121 virtual bool ref_catalog(
const std::string &catalog_name);
122 virtual bool deref_catalog(
const std::string &catalog_name);
124 virtual BESCatalog * find_catalog(
const std::string &catalog_name)
const;
133 virtual catalog_citer
end_catalog()
const {
return d_catalogs.end(); }
135 virtual void dump(std::ostream &strm)
const;
virtual BESCatalog * default_catalog() const
The the default catalog.
virtual std::string default_catalog_name() const
The name of the default catalog.
virtual int num_catalogs() const
The number of non-default catalogs.
virtual void dump(std::ostream &strm) const
dump the contents of this object to the specified ostream
virtual catalog_citer end_catalog() const
Iterator to the last catalog.
virtual catalog_citer first_catalog() const
Iterator to the first catalog.
Catalogs provide a hierarchical organization for data.
top level BES object to house generic methods