#ifndef singlelinklist_h #define singlelinklist_h /* * NIST STEP Core Class Library * clstepcore/SingleLinkList.h * April 1997 * David Sauder * KC Morris * Development of this software was funded by the United States Government, * and is not subject to copyright. */ /* $Id: SingleLinkList.h,v 1.3 2000/01/21 13:42:37 gcosmo Exp $ */ #ifdef __OSTORE__ #include // Required to access ObjectStore Class Library #endif #ifdef __O3DB__ #include #endif class SingleLinkList { // node which represents the value is contained in the subclass // since it may have different types for different lists protected: class SingleLinkNode * head; SingleLinkNode * tail; public: virtual SingleLinkNode *NewNode(); virtual void AppendNode (SingleLinkNode *); virtual void DeleteNode (SingleLinkNode *); virtual void Empty (); virtual void DeleteFollowingNodes (SingleLinkNode *); virtual SingleLinkNode * GetHead () const; int EntryCount() const; SingleLinkList (); virtual ~SingleLinkList (); #ifdef __OSTORE__ static os_typespec* get_os_typespec(); #endif } ; class SingleLinkNode { friend class SingleLinkList; protected: public: SingleLinkList *owner; SingleLinkNode *next; virtual SingleLinkNode *NextNode () const; SingleLinkNode() : owner(0), next(0) { } virtual ~SingleLinkNode() { } #ifdef __OSTORE__ static os_typespec* get_os_typespec(); #endif }; #endif