OPeNDAP Hyrax Back End Server (BES) Updated for version 3.8.3
|
Provides a mechanism for accessing definitions from different definition stores registered with this server. More...
#include <BESDefinitionStorageList.h>
Classes | |
struct | _persistence_list |
Public Member Functions | |
virtual bool | add_persistence (BESDefinitionStorage *p) |
Add a persistent store to the list. | |
virtual bool | deref_persistence (const string &persist_name) |
de-reference a persistent store in the list | |
virtual void | dump (ostream &strm) const |
dumps information about this object | |
virtual BESDefinitionStorage * | find_persistence (const string &persist_name) |
find the persistence store with the given name | |
virtual BESDefine * | look_for (const string &def_name) |
look for the specified definition in the list of defintion stores. | |
virtual bool | ref_persistence (const string &persist_name) |
reference a persistent store in the list | |
virtual void | show_definitions (BESInfo &info) |
show information for each definition in each persistence store | |
virtual | ~BESDefinitionStorageList () |
Static Public Member Functions | |
static BESDefinitionStorageList * | TheList () |
Protected Member Functions | |
BESDefinitionStorageList () |
Provides a mechanism for accessing definitions from different definition stores registered with this server.
This class provides a mechanism for users to access definitions from different definition stores, such as from a MySQL database, a file, or volatile stores.
Users can add different BESDefinitionStorage instances to this persistent list. Then, when a user looks for a definition, that search goes through the list of persistent stores in the order they were added to this list.
Definition at line 64 of file BESDefinitionStorageList.h.
BESDefinitionStorageList::BESDefinitionStorageList | ( | ) | [protected] |
Definition at line 44 of file BESDefinitionStorageList.cc.
Referenced by TheList().
BESDefinitionStorageList::~BESDefinitionStorageList | ( | ) | [virtual] |
Definition at line 49 of file BESDefinitionStorageList.cc.
bool BESDefinitionStorageList::add_persistence | ( | BESDefinitionStorage * | cp | ) | [virtual] |
Add a persistent store to the list.
Each persistent store has a name. If a persistent store already exists in the list with that name then the persistent store is not added. Otherwise the store is added to the list.
The persistent stores are searched in the order in which they were added.
cp | persistent store to add to the list |
Definition at line 77 of file BESDefinitionStorageList.cc.
References BESDefinitionStorage::get_name().
Referenced by BESDefaultModule::initialize().
bool BESDefinitionStorageList::deref_persistence | ( | const string & | persist_name | ) | [virtual] |
de-reference a persistent store in the list
De-reference the specified store in the list. If this is the last reference then the definition store is removed from the list and deleted.
persist_name | name of the persistent store to be de-referenced |
Definition at line 171 of file BESDefinitionStorageList.cc.
Referenced by BESDefaultModule::terminate().
void BESDefinitionStorageList::dump | ( | ostream & | strm | ) | const [virtual] |
dumps information about this object
Displays the pointer value of this instance along with the list of definition storage instaces registered with the list.
strm | C++ i/o stream to dump the information to |
Implements BESObj.
Definition at line 348 of file BESDefinitionStorageList.cc.
References BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().
BESDefinitionStorage * BESDefinitionStorageList::find_persistence | ( | const string & | persist_name | ) | [virtual] |
find the persistence store with the given name
Returns the persistence store with the given name
persist_name | name of the persistent store to be found |
Definition at line 229 of file BESDefinitionStorageList.cc.
Referenced by BESDelDefsResponseHandler::execute(), BESDelDefResponseHandler::execute(), and BESDefineResponseHandler::execute().
BESDefine * BESDefinitionStorageList::look_for | ( | const string & | def_name | ) | [virtual] |
look for the specified definition in the list of defintion stores.
Looks for a definition with the given name in the order in which definition stores were added to the definition storage list.
def_name | name of the definition to find |
Definition at line 267 of file BESDefinitionStorageList.cc.
Referenced by BESXMLGetCommand::prep_request().
bool BESDefinitionStorageList::ref_persistence | ( | const string & | persist_name | ) | [virtual] |
reference a persistent store in the list
Informs the list that there is a reference to a definition store
persist_name | name of the persistent store to be referenced |
Definition at line 129 of file BESDefinitionStorageList.cc.
void BESDefinitionStorageList::show_definitions | ( | BESInfo & | info | ) | [virtual] |
show information for each definition in each persistence store
For each definition in each persistent store, add infomation about each of those definitions. The information added to the information object includes the persistent store name, in the order the persistent stores are searched, followed by a line for each definition within that persistent store which includes the name of the definition, information about each container used by that definition, the aggregation server being used and the aggregation command being used if aggregation is specified.
info | object to store the definition and persistent store information |
Definition at line 309 of file BESDefinitionStorageList.cc.
References BESInfo::add_break(), BESInfo::begin_tag(), and BESInfo::end_tag().
Referenced by BESShowDefsResponseHandler::execute().
BESDefinitionStorageList * BESDefinitionStorageList::TheList | ( | ) | [static] |
Definition at line 331 of file BESDefinitionStorageList.cc.
References BESDefinitionStorageList().
Referenced by BESShowDefsResponseHandler::execute(), BESDelDefsResponseHandler::execute(), BESDelDefResponseHandler::execute(), BESDefineResponseHandler::execute(), BESDefaultModule::initialize(), BESXMLGetCommand::prep_request(), and BESDefaultModule::terminate().