#include <BESContainerStorageCatalog.h>
Inheritance diagram for BESContainerStorageCatalog:
Public Types | |
typedef map< string, BESContainer * >::const_iterator | Container_citer |
typedef map< string, BESContainer * >::iterator | Container_iter |
Public Member Functions | |
BESContainerStorageCatalog (const string &n) | |
create an instance of this persistent store with the given name. | |
virtual | ~BESContainerStorageCatalog () |
virtual void | add_container (const string &s_name, const string &r_name, const string &type) |
adds a container with the provided information | |
bool | isData (const string &inQuestion, list< string > &provides) |
is the specified node in question served by a request handler | |
virtual void | dump (ostream &strm) const |
dumps information about this object | |
virtual void | look_for (BESContainer &d) |
looks for the specified container using the given name | |
virtual bool | del_container (const string &s_name) |
removes a container with the given symbolic name | |
virtual bool | del_containers () |
removes all container | |
virtual void | show_containers (BESInfo &info) |
show information for each container in this persistent store | |
virtual const string & | get_name () const |
retrieve the name of this persistent store | |
Protected Attributes | |
string | _root_dir |
string | _my_name |
When a container is added to this container storage, the file extension is used to determine the type of data using a set of regular expressions. The regular expressions are retrieved from the BES initialization file using TheBESKeys. It also gets the root directory for where the files exist. This way, the user need not know the root directory or the type of data represented by the file.
Catalog.<name>.RootDirectory is the key representing the base directory where the files are physically located. The real_name of the container is determined by concatenating the file name to the base directory.
Catalog.<name>.TypeMatch is the key representing the regular expressions. This key is formatted as follows:
<data type>:<reg exp>;<data type>:<reg exp>;
For example: cedar:cedar\/.*\.cbf;cdf:cdf\/.*\.cdf;
The first would match anything that might look like: cedar/datfile01.cbf
<name> is the name of this container storage, so you could have multiple container stores using regular expressions.
The containers are stored in a volatile list.
|
|
|
|
|
create an instance of this persistent store with the given name. Creates an instances of BESContainerStorageCatalog with the given name. Looks up the base directory and regular expressions in the dods initialization file using TheBESKeys. THrows an exception if either of these cannot be determined or if the regular expressions are incorrectly formed. <data type>:<reg exp>;<data type>:<reg exp>; each type/reg expression pair is separated by a semicolon and ends with a semicolon. The data type/expression pair itself is separated by a semicolon.
|
|
|
|
adds a container with the provided information If a match is made with the real name passed then the type is set. The real name of the container (the file name) is constructed using the root directory from the initialization file with the passed real name appended to it. The information is then passed to the add_container method in the parent class.
Reimplemented from BESContainerStorageVolatile. |
|
removes a container with the given symbolic name This method removes a container to the persistence store with the given symbolic name. It deletes the container.
Implements BESContainerStorage. |
|
removes all container This method removes all containers from the persistent store. It does not delete the real data behind the container.
Implements BESContainerStorage. |
|
dumps information about this object Displays the pointer value of this instance along with information about the "storage" of containers in a catalog.
Reimplemented from BESContainerStorageVolatile. |
|
retrieve the name of this persistent store
|
|
is the specified node in question served by a request handler Determine if the node in question is served by a request handler (provides data) and what the request handler serves for the node
|
|
looks for the specified container using the given name If a match is made with the symbolic name found in the container then the information is stored in the passed container object and the is_valid flag is set to true. If not found, then is_valid is set to false.
Implements BESContainerStorage. |
|
show information for each container in this persistent store For each container in this persistent store, add infomation about each of those containers. The information added to the information object includes a line for each container within this persistent store which includes the symbolic name, the real name, and the data type, separated by commas. In the case of this persistent store information from each container added to the volatile list is added to the information object.
Implements BESContainerStorage. |
|
|
|
|