48 std::string d_catalog_name;
54 std::vector<CatalogItem*> d_items;
60 std::vector<CatalogItem*> d_nodes;
61 std::vector<CatalogItem*> d_leaves;
65 CatalogNode &operator=(
const CatalogNode &rhs);
69 CatalogNode() : d_name(
""), d_catalog_name(
""), d_lmt(
""), d_no_really_im_a_leaf(0){ }
71 CatalogNode(
const std::string &name) : d_name(name), d_catalog_name(
""), d_lmt(
""), d_no_really_im_a_leaf(0) { }
73 virtual ~CatalogNode();
76 void set_leaf(
CatalogItem *leaf) { d_no_really_im_a_leaf = leaf; }
77 CatalogItem *get_leaf()
const {
return d_no_really_im_a_leaf; }
80 std::string
get_name()
const {
return d_name; }
90 std::string
get_lmt()
const {
return d_lmt; }
92 void set_lmt(std::string lmt) { d_lmt = lmt; }
94 typedef std::vector<CatalogItem*>::const_iterator item_citer;
95 typedef std::vector<CatalogItem*>::iterator item_iter;
98 item_citer items_begin() {
return d_items.begin(); }
99 item_citer items_end() {
return d_items.end(); }
102 size_t get_item_count()
const {
return d_items.size(); }
104 void add_item(CatalogItem *item) { d_items.push_back(item); }
108 item_iter nodes_begin() {
return d_nodes.begin(); }
109 item_iter nodes_end() {
return d_nodes.end(); }
111 size_t get_item_count()
const {
return d_nodes.size() + d_leaves.size(); }
118 item_iter leaves_begin() {
return d_leaves.begin(); }
119 item_iter leaves_end() {
return d_leaves.end(); }
129 virtual void dump(std::ostream &strm)
const;