53 inline virtual const char*
get_name()
const {
return "ListElement"; }
60 "Next element in list.");
88 "Delete data on destruction?");
90 "Number of elements.");
92 "First element in list.");
99 this->delete_data=p_delete_data;
104 SG_DEBUG(
"Destroying List %p\n",
this);
112 SG_DEBUG(
"Destroying List Element %p\n", d);
135 return current->
data;
152 return current->
data;
164 if ((current != NULL) && (current->
next != NULL))
166 current = current->
next;
169 return current->
data;
181 if ((current != NULL) && (current->
prev != NULL))
183 current = current->
prev;
186 return current->
data;
202 return current->
data;
224 return p_current->
data;
242 return p_current->
data;
255 if ((p_current != NULL) && (p_current->
next != NULL))
257 p_current = p_current->
next;
260 return p_current->
data;
273 if ((p_current != NULL) && (p_current->
prev != NULL))
275 p_current = p_current->
prev;
278 return p_current->
data;
291 if (p_current != NULL)
295 return p_current->
data;
324 if ((element =
new CListElement(data, current)) != NULL)
326 current->
next = element;
390 if (current->
prev != NULL)
395 current->
prev = element;
434 current = element->
next;
436 current = element->
prev;
438 if (element == first)
439 first = element->
next;
442 last = element->
prev;
467 inline virtual const char*
get_name()
const {
return "List"; }
479 int32_t num_elements;