108 const string &real_name,
115 string::size_type stopat = real_name.length() - 1 ;
116 while( real_name[stopat] ==
'/' )
120 string new_name = real_name.substr( 0, stopat + 1 ) ;
123 string::size_type slash = new_name.rfind(
"/" ) ;
124 if( slash != string::npos )
126 basename = new_name.substr( slash+1, new_name.length() - slash ) ;
130 basename = new_name ;
134 string s =
"Attempting to create a container with real name " 135 + real_name +
" which is on the exclude list" ;
141 string new_type = type ;
147 for( ; i != ie && !done; i++ )
152 Regex reg_expr( match.
reg.c_str() ) ;
153 if( reg_expr.match( real_name.c_str(), real_name.length() ) ==
154 static_cast<int>(real_name.length()) )
156 new_type = match.
type ;
162 string serr = (string)
"Unable to match data type, " 163 +
"malformed Catalog TypeMatch parameter " 164 +
"in bes configuration file around " 165 + match.
reg +
": " + e.get_error_message() ;
184 list<string> &provides )
186 string node_type =
"" ;
190 for( ; i != ie && !done; i++ )
195 Regex reg_expr( match.
reg.c_str() ) ;
196 if( reg_expr.match( inQuestion.c_str(), inQuestion.length() ) ==
197 static_cast<int>(inQuestion.length()) )
199 node_type = match.
type ;
205 string serr = (string)
"Unable to determine data products (is data), " 206 +
"malformed Catalog TypeMatch parameter " 207 +
"in bes configuration file around " 208 + match.
reg +
": " + e.get_error_message() ;
229 << (
void *)
this <<
")" << endl ;
234 _utils->
dump( strm ) ;
static const BESCatalogUtils * Utils(const string &name)
exception thrown if inernal error encountered
BESContainerStorageCatalog(const string &n)
create an instance of this persistent store with the given name.
implementation of BESContainerStorage that stores containers in memory for the duration of this proce...
BESCatalogUtils::match_citer match_list_end() const
virtual void add_container(BESContainer *c)
add the passed container to the list of containers in volatile storage
vector< type_reg >::const_iterator match_citer
bool isData(const string &inQuestion, list< string > &provides)
is the specified node in question served by a request handler
virtual void add_container(const string &sym_name, const string &real_name, const string &type)
adds a container with the provided information
static BESServiceRegistry * TheRegistry()
const string & get_root_dir() const
virtual void dump(ostream &strm) const
dump the contents of this object to the specified ostream
static ostream & LMarg(ostream &strm)
virtual void dump(ostream &strm) const
dumps information about this object
virtual ~BESContainerStorageCatalog()
virtual bool include(const string &inQuestion) const
error thrown if the BES is not allowed to access the resource requested
virtual bool exclude(const string &inQuestion) const
BESCatalogUtils::match_citer match_list_begin() const
virtual const string & get_name() const
retrieve the name of this persistent store
bool follow_sym_links() const
virtual void services_handled(const string &handler, list< string > &services)
returns the list of servies provided by the handler in question