template class kryListIterator { public: kryListIterator(); ~kryListIterator(); // int HasData(); T GetNext(); //T GetPrev(); T GetData(); kryListNode *GetNode(); void SetData(T data); void Remove(); void InsertBefore(T data); void SetList(kryList *list); void NotifyBeforeRemove(kryListNode *node); void NotifyBeforeAdd(kryListNode *node_after); void Invalidate(); void AllowRemoveCurrent(); void DisconnectFromList(); private: void Validate(); kryListNode *m_ptr; kryListNode *m_ptr_next; kryList *m_list; gboolean m_invalid; gboolean m_allow_remove_current; }; #ifdef _WINDOWS #pragma warning (disable : 4661) #endif