54 inline virtual const char*
get_name()
const {
return "ListElement"; }
61 "Next element in list.");
63 "Next element in list.");
92 "Delete data on destruction?");
94 "Number of elements.");
96 "First element in list.");
98 "First element in list.");
105 this->delete_data=p_delete_data;
110 SG_DEBUG(
"Destroying List %p\n",
this);
124 SG_DEBUG(
"SG_UNREF List Element %p\n", d);
151 return current->
data;
168 return current->
data;
180 if ((current != NULL) && (current->
next != NULL))
182 current = current->
next;
185 return current->
data;
197 if ((current != NULL) && (current->
prev != NULL))
199 current = current->
prev;
202 return current->
data;
218 return current->
data;
240 return p_current->
data;
258 return p_current->
data;
271 if ((p_current != NULL) && (p_current->
next != NULL))
273 p_current = p_current->
next;
276 return p_current->
data;
289 if ((p_current != NULL) && (p_current->
prev != NULL))
291 p_current = p_current->
prev;
294 return p_current->
data;
307 if (p_current != NULL)
311 return p_current->
data;
340 if ((element =
new CListElement(data, current)) != NULL)
342 current->
next = element;
401 current=current->
prev;
452 if (current->
prev != NULL)
457 current->
prev = element;
496 current = element->
next;
498 current = element->
prev;
500 if (element == first)
501 first = element->
next;
504 last = element->
prev;
541 inline virtual const char*
get_name()
const {
return "List"; }
553 int32_t num_elements;