RSS Git Download  Clone
Raw View History
Blames found: 1 Mode: text/x-c++src Binary: false


Hang on, we reloading big blames...
/******************************************************************************* * BList.h BEAM List * T.Barnaby, BEAM Ltd, 4/8/00 ******************************************************************************* */ #ifndef BLIST_H #define BLIST_H 1 /// Iterator for BList class BIter { public: BIter(void* i = 0) { oi = i; } operator void* () { return oi; } int operator==(const BIter& i) { return (i.oi == oi); } private: void* oi; }; /// Template based list class. template <class T> class BList { public: class Node { public: Node(const T& i) : next(0), prev(0), item(i){} Node* next; Node* prev; T item; }; typedef int (*SortFunc)(T& a, T& b); ///< Prototype for sorting function // Contructors BList(); BList(const BList<T>& l); virtual ~BList(); // Navigation void start(BIter& i) const; ///< Iterator to start of list BIter begin() const; ///< Iterator for start of list BIter end() const; ///< Iterator for end of list BIter end(BIter& i) const; ///< Iterator for end of list void next(BIter& i) const; ///< Iterator for next item in list void prev(BIter& i); ///< Iterator for previous item in list BIter goTo(int pos); ///< Iterator for pos item in list int position(BIter i); ///< Postition in list item with iterator i // Information unsigned int number(); ///< Number of items in list int isEnd(BIter i) const; ///< True if iterator refers to last item // Get items T& front(); ///< Get first item in list T& rear(); ///< Get last item in list T& get(BIter i); ///< Get item specified by iterator in list const T& get(BIter i) const; ///< Get item specified by iterator in list // Insert items void append(const T& item); ///< Append item to list virtual void insert(BIter& i, const T& item); ///< Insert item before item void insertAfter(BIter& i, const T& item); ///< Insert item after item // Delete items virtual void clear(); ///< Clear the list virtual void del(BIter& i); ///< Delete specified item void deleteLast(); ///< Delete last item void deleteFirst(); ///< Delete fisrt item // Stack void push(const T& i); ///< Push item onto list T pop(); ///< Pop item from list deleteing item // Queue void queueAdd(const T& i); ///< Add item to end of list T queueGet(); ///< Get item from front of list deleteing item // Misc void append(const BList<T>& l); ///< Append list to list void swap(BIter i1, BIter i2); ///< Swap two items in list void sort(); ///< Sort list based on get(i) values void sort(SortFunc func); ///< Sort list based on Sort func // Operator functions BList<T>& operator=(const BList<T>& l); T& operator[](int i); const T& operator[](int i) const; T& operator[](BIter i); const T& operator[](BIter i) const; BList<T> operator+(const BList<T>& l) const; protected: virtual Node* nodeGet(BIter i); virtual const Node* nodeGet(BIter i) const; virtual Node* nodeCreate(const T& item); Node* onodes; unsigned int olength; private: virtual Node* nodeCreate(); }; #include <BList_func.h> #endif