X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/85ce9d3ecb3e6888dae590b3a8e347e0a2131bd9..9a2d27ef793d80122153dfc2cf7eaedfe33e5db4:/gameserv/listnode.h diff --git a/gameserv/listnode.h b/gameserv/listnode.h index 93d12c3..a18f21e 100644 --- a/gameserv/listnode.h +++ b/gameserv/listnode.h @@ -5,13 +5,17 @@ template class List; + template class ListNode { friend class List; public: ListNode(const T &); - virtual T *getData(); + ListNode(T &); + T *getData(); void setData(const T &); + void setPtr( T * ); + void setNewPtr( T * ); ListNode *Next() { return next; }; ListNode *Prev() { return prev; }; private: @@ -27,6 +31,13 @@ ListNode::ListNode(const T &info) prev = NULL; data = new T(info); } +template +ListNode::ListNode(T &info) +{ + next = NULL; + prev = NULL; + data = new T(info); +} template T *ListNode::getData() { return data; } @@ -35,4 +46,18 @@ template void ListNode::setData( const T &info ) { data ( info ); } +template +void ListNode::setPtr( T *newPtr ) +{ + T *temp; + temp = data; + data = newPtr; + delete temp; +} + +template +void ListNode::setNewPtr( T *newPtr ) +{ + data = newPtr; +} #endif