File tree Expand file tree Collapse file tree 4 files changed +62
-76
lines changed
Expand file tree Collapse file tree 4 files changed +62
-76
lines changed Original file line number Diff line number Diff line change @@ -11,7 +11,6 @@ set(LIBSTEPCORE_SRCS
1111 sdai.cc
1212 sdaiSelect.cc
1313 SingleLinkList.cc
14- SingleLinkList.inline.cc
1514 Registry.inline.cc
1615 ExpDict.cc
1716 ExpDict.inline.cc
Original file line number Diff line number Diff line change 1212
1313#include < SingleLinkList.h>
1414#include " sc_memmgr.h"
15+ #include < iostream>
16+
17+ //
18+ SingleLinkNode * SingleLinkNode::NextNode () const {
19+ return next;
20+ }
21+
22+ SingleLinkList::SingleLinkList () : head( 0 ), tail( 0 ) {
23+ }
24+
25+ SingleLinkList::~SingleLinkList () {
26+ Empty ();
27+ }
28+
29+ void SingleLinkList::Empty () {
30+ SingleLinkNode * tmp = head;
31+ while ( tmp ) {
32+ tmp = head -> NextNode ();
33+ delete head;
34+ head = tmp;
35+ }
36+ }
37+
38+ SingleLinkNode * SingleLinkList::NewNode () {
39+ // defined in subtypes
40+ std::cerr << " \n\n ******BUG****** a virtually defined function should \n "
41+ << " be called for SingleLinkList::NewNode()\n\n " ;
42+ return new SingleLinkNode ();
43+ }
44+
45+ SingleLinkNode * SingleLinkList::GetHead () const {
46+ return ( head );
47+ }
48+
49+ int SingleLinkList::EntryCount () const {
50+ int entryCount = 0 ;
51+ SingleLinkNode * entryPtr = head;
52+
53+ while ( entryPtr != 0 ) {
54+ entryPtr = entryPtr->NextNode ();
55+ entryCount++;
56+ }
57+ return entryCount;
58+ }
1559
1660void SingleLinkList::DeleteFollowingNodes ( SingleLinkNode * item ) {
1761 if ( head ) {
Original file line number Diff line number Diff line change 1414
1515#include < sc_export.h>
1616
17+ /* * Base class for a singly-linked list.
18+ * \sa SingleLinkNode
19+ *
20+ * node which represents the value is contained in the subclass
21+ * since it may have different types for different lists
22+ */
1723class SC_CORE_EXPORT SingleLinkList {
18-
19- // node which represents the value is contained in the subclass
20- // since it may have different types for different lists
21-
2224 protected:
23-
2425 class SingleLinkNode * head;
2526 SingleLinkNode * tail;
26-
2727 public:
28-
2928 virtual SingleLinkNode * NewNode ();
3029 virtual void AppendNode ( SingleLinkNode * );
3130 virtual void DeleteNode ( SingleLinkNode * );
@@ -38,23 +37,26 @@ class SC_CORE_EXPORT SingleLinkList {
3837
3938 SingleLinkList ();
4039 virtual ~SingleLinkList ();
40+ };
4141
42- }
43- ;
44-
45-
42+ /* * Base class for nodes of a single-linked list.
43+ * \sa SingleLinkList
44+ */
4645class SC_CORE_EXPORT SingleLinkNode {
4746 friend class SingleLinkList ;
48- protected:
49-
5047 public:
5148 SingleLinkList * owner;
5249 SingleLinkNode * next;
5350
54- virtual SingleLinkNode * NextNode () const ;
55- SingleLinkNode () : owner( 0 ), next( 0 ) { }
56- virtual ~SingleLinkNode () { }
51+ virtual SingleLinkNode * NextNode () const {
52+ return next;
53+ }
54+
55+ SingleLinkNode () : owner( 0 ), next( 0 ) {
56+ }
5757
58+ virtual ~SingleLinkNode () {
59+ }
5860};
5961
6062#endif
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments