39 using std::stringstream ;
86 string key =
"BES.Container.Persistence.File." + n ;
91 string s = key +
" not defined in BES configuration file" ;
95 ifstream persistence_file( _file.c_str() ) ;
97 if( !persistence_file )
99 char *err = strerror( myerrno ) ;
100 string s =
"Unable to open persistence file " + _file +
": " ;
104 s +=
"Unknown error" ;
111 while( !persistence_file.eof() )
114 persistence_file.getline( cline, 80 ) ;
115 if( !persistence_file.eof() )
118 BESContainerStorageFile::container *c =
119 new BESContainerStorageFile::container ;
120 strm >> c->_symbolic_name ;
121 strm >> c->_real_name ;
122 strm >> c->_container_type ;
125 if( c->_symbolic_name ==
"" ||
126 c->_real_name ==
"" ||
127 c->_container_type ==
"" )
130 persistence_file.close() ;
131 string s =
"Incomplete container persistence line in file "
137 persistence_file.close() ;
139 string s =
"Too many fields in persistence file "
143 _container_list[c->_symbolic_name] = c ;
146 persistence_file.close() ;
151 BESContainerStorageFile::Container_citer i = _container_list.begin() ;
152 BESContainerStorageFile::Container_citer ie = _container_list.end() ;
153 for( ; i != ie; i++ )
155 BESContainerStorageFile::container *c = (*i).second ;
175 BESContainerStorageFile::Container_citer i ;
176 i = _container_list.find( sym_name ) ;
177 if( i != _container_list.end() )
179 BESContainerStorageFile::container *c = (*i).second;
182 c->_container_type ) ;
185 return ret_container ;
200 const string &real_name,
203 string err =
"Unable to add a container to a file, not yet implemented" ;
220 BESContainerStorageFile::Container_iter i ;
221 i = _container_list.find( s_name ) ;
222 if( i != _container_list.end() )
224 BESContainerStorageFile::container *c = (*i).second;
225 _container_list.erase( i ) ;
245 while( _container_list.size() != 0 )
247 Container_iter ci = _container_list.begin() ;
248 BESContainerStorageFile::container *c = (*ci).second;
249 _container_list.erase( ci ) ;
267 list<string> &provides )
301 BESContainerStorageFile::Container_citer i ;
302 i = _container_list.begin() ;
303 for( i = _container_list.begin(); i != _container_list.end(); i++ )
305 BESContainerStorageFile::container *c = (*i).second;
306 string sym = c->_symbolic_name ;
307 string real = c->_real_name ;
308 string type = c->_container_type ;
324 << (
void *)
this <<
")" << endl ;
328 if( _container_list.size() )
332 BESContainerStorageFile::Container_citer i = _container_list.begin() ;
333 BESContainerStorageFile::Container_citer ie = _container_list.end() ;
334 for( i = _container_list.begin(); i != ie; i++ )
336 BESContainerStorageFile::container *c = (*i).second;
338 strm <<
", " << c->_real_name ;
339 strm <<
", " << c->_container_type ;