39 #include "BESDefinitionStorageList.h"
40 #include "BESDefinitionStorage.h"
41 #include "BESDefine.h"
46 BESDefinitionStorageList::BESDefinitionStorageList() :
51 BESDefinitionStorageList::~BESDefinitionStorageList()
53 BESDefinitionStorageList::persistence_list *pl = _first;
55 if (pl->_persistence_obj) {
56 delete pl->_persistence_obj;
58 BESDefinitionStorageList::persistence_list *next = pl->_next;
80 _first =
new BESDefinitionStorageList::persistence_list;
81 _first->_persistence_obj = cp;
82 _first->_reference = 1;
87 BESDefinitionStorageList::persistence_list *pl = _first;
89 while (done ==
false) {
90 if (pl->_persistence_obj->get_name() != cp->
get_name()) {
95 pl->_next =
new BESDefinitionStorageList::persistence_list;
96 pl->_next->_persistence_obj = cp;
97 pl->_next->_reference = 1;
123 BESDefinitionStorageList::persistence_list *pl = _first;
126 while (done ==
false) {
128 if (pl->_persistence_obj && pl->_persistence_obj->get_name() == persist_name) {
158 BESDefinitionStorageList::persistence_list *pl = _first;
159 BESDefinitionStorageList::persistence_list *last = 0;
162 while (done ==
false) {
164 if (pl->_persistence_obj && pl->_persistence_obj->get_name() == persist_name) {
168 if (!pl->_reference) {
170 _first = _first->_next;
173 if (!last)
throw BESInternalError(
"ContainerStorageList last is null", __FILE__, __LINE__);
174 last->_next = pl->_next;
176 delete pl->_persistence_obj;
206 BESDefinitionStorageList::persistence_list *pl = _first;
208 while (done ==
false) {
210 if (persist_name == pl->_persistence_obj->get_name()) {
211 ret = pl->_persistence_obj;
239 BESDefinitionStorageList::persistence_list *pl = _first;
241 while (done ==
false) {
243 ret_def = pl->_persistence_obj->look_for(def_name);
274 BESDefinitionStorageList::persistence_list *pl = _first;
282 std::map<string, string> props;
283 props[
"name"] = pl->_persistence_obj->get_name();
284 info.begin_tag(
"store", &props);
285 pl->_persistence_obj->show_definitions(info);
286 info.end_tag(
"store");
292 BESDefinitionStorageList::TheList()
294 if (_instance == 0) {
309 strm << BESIndent::LMarg <<
"BESDefinitionStorageList::dump - (" << (
void *)
this <<
")" << endl;
312 strm << BESIndent::LMarg <<
"registered definition storage:" << endl;
314 BESDefinitionStorageList::persistence_list *pl = _first;
316 pl->_persistence_obj->dump(strm);
319 BESIndent::UnIndent();
322 strm << BESIndent::LMarg <<
"registered definition storage: none" << endl;
324 BESIndent::UnIndent();