bes  Updated for version 3.20.6
httpd_catalog::HttpdCatalogContainerStorage Class Reference

implementation of BESContainerStorageVolatile that represents a list of remote requests More...

#include <HttpdCatalogContainerStorage.h>

Collaboration diagram for httpd_catalog::HttpdCatalogContainerStorage:
Collaboration graph

Public Types

typedef std::map< std::string, BESContainer * >::const_iterator Container_citer
 
typedef std::map< std::string, BESContainer * >::iterator Container_iter
 

Public Member Functions

virtual void add_container (const std::string &s_name, const std::string &r_name, const std::string &type)
 adds a container with the provided information More...
 
virtual bool del_container (const std::string &s_name)
 removes a container with the given symbolic name from the list and deletes it. More...
 
virtual bool del_containers ()
 removes all container More...
 
virtual void dump (std::ostream &strm) const
 dumps information about this object More...
 
virtual const std::string & get_name () const
 retrieve the name of this persistent store More...
 
 HttpdCatalogContainerStorage (const std::string &n)
 create an instance of this persistent store with the given name. More...
 
virtual bool isData (const std::string &inQuestion, std::list< std::string > &provides)
 determine if the given container is data and what servies are available for it More...
 
virtual BESContainerlook_for (const std::string &sym_name)
 looks for the specified container using the symbolic name passed More...
 
virtual void show_containers (BESInfo &info)
 show information for each container in this persistent store More...
 

Protected Member Functions

virtual void add_container (BESContainer *c)
 add the passed container to the list of containers in volatile storage More...
 
virtual void show_container (const std::string &sym_name, const std::string &real_name, const std::string &type, BESInfo &info)
 add information for a container to the informational response object More...
 

Protected Attributes

bool _follow_sym_links
 
std::string _my_name
 
std::string _root_dir
 

Detailed Description

implementation of BESContainerStorageVolatile that represents a list of remote requests

Each of the containers stored in the HttpdCatalogContainerStorage represents a remote request. When accessed the container will make the remote request in order to create the target response.

See also
BESContainerStorageVolatile
HttpdCatalogContainer

Definition at line 48 of file HttpdCatalogContainerStorage.h.

Constructor & Destructor Documentation

◆ HttpdCatalogContainerStorage()

httpd_catalog::HttpdCatalogContainerStorage::HttpdCatalogContainerStorage ( const std::string &  n)

create an instance of this persistent store with the given name.

Creates an instances of GatewayContainerStorage with the given name.

Parameters
nname of this persistent store
See also
GatewayContainer

Definition at line 46 of file HttpdCatalogContainerStorage.cc.

Member Function Documentation

◆ add_container() [1/2]

void BESContainerStorageVolatile::add_container ( BESContainer c)
protectedvirtualinherited

add the passed container to the list of containers in volatile storage

This method adds the passed container to the list of volatile containers. The passed container is owned by the list if added and should not be deleted by the caller.

If a container with the symbolic name of the passed container is already in the list then an exception is thrown.

Parameters
ccontainer to add to the list
Exceptions
BESContainerStorageExcpetionif the passed container is null
BESContainerStorageExcpetionif no type is specified in the passed container
BESContainerStorageExcpetionif a container with the passed symbolic name already exists.

Implements BESContainerStorage.

Definition at line 183 of file BESContainerStorageVolatile.cc.

◆ add_container() [2/2]

void httpd_catalog::HttpdCatalogContainerStorage::add_container ( const std::string &  s_name,
const std::string &  r_name,
const std::string &  type 
)
virtual

adds a container with the provided information

Parameters
s_namesymbolic name for the container
r_namethe remote request url
typeignored. The type of the target response is determined by the request response, or could be passed in

Reimplemented from BESContainerStorageVolatile.

Definition at line 62 of file HttpdCatalogContainerStorage.cc.

◆ del_container()

bool BESContainerStorageVolatile::del_container ( const std::string &  s_name)
virtualinherited

removes a container with the given symbolic name from the list and deletes it.

Parameters
s_namesymbolic name for the container
Returns
true if successfully removed and false otherwise

Implements BESContainerStorage.

Definition at line 208 of file BESContainerStorageVolatile.cc.

◆ del_containers()

bool BESContainerStorageVolatile::del_containers ( )
virtualinherited

removes all container

This method removes all containers from the persistent store. It does not delete the real data behind the container.

Returns
true if successfully removed and false otherwise

Implements BESContainerStorage.

Definition at line 230 of file BESContainerStorageVolatile.cc.

◆ dump()

void httpd_catalog::HttpdCatalogContainerStorage::dump ( std::ostream &  strm) const
virtual

dumps information about this object

Displays the pointer value of this instance along with information about each of the GatewayContainers already stored.

Parameters
strmC++ i/o stream to dump the information to

Reimplemented from BESContainerStorageVolatile.

Definition at line 75 of file HttpdCatalogContainerStorage.cc.

◆ get_name()

virtual const std::string& BESContainerStorage::get_name ( ) const
inlinevirtualinherited

retrieve the name of this persistent store

Returns
name of this persistent store.

Definition at line 91 of file BESContainerStorage.h.

◆ isData()

bool BESContainerStorageVolatile::isData ( const std::string &  inQuestion,
std::list< std::string > &  provides 
)
virtualinherited

determine if the given container is data and what servies are available for it

Parameters
inQuestionthe container in question
providesan output parameter for storing the list of services provided for this container

Implements BESContainerStorage.

Reimplemented in BESFileContainerStorage.

Definition at line 250 of file BESContainerStorageVolatile.cc.

◆ look_for()

BESContainer * BESContainerStorageVolatile::look_for ( const std::string &  sym_name)
virtualinherited

looks for the specified container using the symbolic name passed

If a match is made with the symbolic name then the stored container is duplicated and returned to the user. If not, 0 is returned.

Parameters
sym_namesymbolic name of the container to look for
Returns
a new BESContainer instance using the ptr_duplicate method on BESContainer

Implements BESContainerStorage.

Definition at line 98 of file BESContainerStorageVolatile.cc.

◆ show_container()

void BESContainerStorage::show_container ( const std::string &  sym_name,
const std::string &  real_name,
const std::string &  type,
BESInfo info 
)
protectedvirtualinherited

add information for a container to the informational response object

Parameters
sym_namesymbolic name of the container to add
real_namereal name, e.g. file name, of the container to add
typedata type of the container
infoThe BES information object to add container information to
See also
BESInfo

Definition at line 48 of file BESContainerStorage.cc.

◆ show_containers()

void BESContainerStorageVolatile::show_containers ( BESInfo info)
virtualinherited

show information for each container in this persistent store

For each container in this persistent store, add information 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.

Parameters
infoobject to store the container and persistent store information
See also
BESInfo

Implements BESContainerStorage.

Definition at line 276 of file BESContainerStorageVolatile.cc.


The documentation for this class was generated from the following files: