37 #include "BESDefinitionStorageList.h"
38 #include "BESDefinitionStorage.h"
39 #include "BESDefine.h"
44 BESDefinitionStorageList::BESDefinitionStorageList() :
49 BESDefinitionStorageList::~BESDefinitionStorageList()
51 BESDefinitionStorageList::persistence_list *pl = _first;
53 if (pl->_persistence_obj) {
54 delete pl->_persistence_obj;
56 BESDefinitionStorageList::persistence_list *next = pl->_next;
78 _first =
new BESDefinitionStorageList::persistence_list;
79 _first->_persistence_obj = cp;
80 _first->_reference = 1;
85 BESDefinitionStorageList::persistence_list *pl = _first;
87 while (done ==
false) {
88 if (pl->_persistence_obj->get_name() != cp->
get_name()) {
93 pl->_next =
new BESDefinitionStorageList::persistence_list;
94 pl->_next->_persistence_obj = cp;
95 pl->_next->_reference = 1;
121 BESDefinitionStorageList::persistence_list *pl = _first;
124 while (done ==
false) {
126 if (pl->_persistence_obj && pl->_persistence_obj->get_name() == persist_name) {
156 BESDefinitionStorageList::persistence_list *pl = _first;
157 BESDefinitionStorageList::persistence_list *last = 0;
160 while (done ==
false) {
162 if (pl->_persistence_obj && pl->_persistence_obj->get_name() == persist_name) {
166 if (!pl->_reference) {
168 _first = _first->_next;
171 if (!last)
throw BESInternalError(
"ContainerStorageList last is null", __FILE__, __LINE__);
172 last->_next = pl->_next;
174 delete pl->_persistence_obj;
204 BESDefinitionStorageList::persistence_list *pl = _first;
206 while (done ==
false) {
208 if (persist_name == pl->_persistence_obj->get_name()) {
209 ret = pl->_persistence_obj;
237 BESDefinitionStorageList::persistence_list *pl = _first;
239 while (done ==
false) {
241 ret_def = pl->_persistence_obj->look_for(def_name);
272 BESDefinitionStorageList::persistence_list *pl = _first;
280 map<string, string> props;
281 props[
"name"] = pl->_persistence_obj->get_name();
282 info.begin_tag(
"store", &props);
283 pl->_persistence_obj->show_definitions(info);
284 info.end_tag(
"store");
290 BESDefinitionStorageList::TheList()
292 if (_instance == 0) {
307 strm << BESIndent::LMarg <<
"BESDefinitionStorageList::dump - (" << (
void *)
this <<
")" << endl;
310 strm << BESIndent::LMarg <<
"registered definition storage:" << endl;
312 BESDefinitionStorageList::persistence_list *pl = _first;
314 pl->_persistence_obj->dump(strm);
317 BESIndent::UnIndent();
320 strm << BESIndent::LMarg <<
"registered definition storage: none" << endl;
322 BESIndent::UnIndent();