- /************************************************************************
- * chxavlist.h
- * -----------
- *
- * Synopsis:
- * Template version of the Helix simple list.
- *
- * Target:
- * Symbian OS
- *
- *
- * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
- *
- ************************************************************************/
- #ifndef _chxavlist_h_
- #define _chxavlist_h_
- #include "hxslist.h"
- template<class T>
- class CHXAvList
- {
- public:
- CHXAvList();
- ~CHXAvList();
- int GetCount() const;
- bool IsEmpty() const;
- void AddHead(const T& value);
- void AddTail(const T& value);
- void RemoveHead();
- void RemoveTail();
- void RemoveAll();
- bool Find(const T& value);
- private:
- CHXSimpleList m_rep;
- };
- template<class T>
- inline
- CHXAvList<T>::CHXAvList()
- {}
- template<class T>
- inline
- CHXAvList<T>::~CHXAvList()
- {
- RemoveAll();
- }
- template<class T>
- inline
- int CHXAvList<T>::GetCount() const
- {
- return m_rep.GetCount();
- }
- template<class T>
- inline
- bool CHXAvList<T>::IsEmpty() const
- {
- return m_rep.IsEmpty();
- }
- template<class T>
- inline
- void CHXAvList<T>::AddHead(const T& value)
- {
- m_rep.AddHead(new T(value));
- }
- template<class T>
- inline
- void CHXAvList<T>::AddTail(const T& value)
- {
- m_rep.AddTail(new T(value));
- }
- template<class T>
- inline
- void CHXAvList<T>::RemoveHead()
- {
- delete (T*)m_rep.RemoveHead();
- }
- template<class T>
- inline
- void CHXAvList<T>::RemoveTail()
- {
- delete (T*)m_rep.RemoveTail();
- }
- template<class T>
- inline
- void CHXAvList<T>::RemoveAll()
- {
- LISTPOSITION pos = m_rep.GetHeadPosition();
- while(pos)
- delete (T*)m_rep.GetNext(pos);;
- m_rep.RemoveAll();
- }
- template<class T>
- inline
- bool CHXAvList<T>::Find(const T& value)
- {
- bool ret = false;
- LISTPOSITION pos = m_rep.GetHeadPosition();
- while(!ret && pos)
- {
- if (*((T*)m_rep.GetNext(pos)) == value)
- ret = true;
- }
- return ret;
- }
- #endif // _chxavlist_h_