Files
geant4/source/geometry/solids/STEP/include/SingleLinkList.h
T
2016-06-08 15:42:07 +02:00

75 lines
1.5 KiB
C++

#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 <ostore/ostore.hh> // Required to access ObjectStore Class Library
#endif
#ifdef __O3DB__
#include <OpenOODB.h>
#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