Rudiments
linkedlistnodeinlines.h
1 // Copyright (c) 2003 David Muse
2 // See the COPYING file for more information
3 
4 #ifndef EXCLUDE_RUDIMENTS_TEMPLATE_IMPLEMENTATIONS
5 
6 #ifdef RUDIMENTS_HAVE_STDLIB_H
7  #include <stdlib.h>
8 #endif
9 
10 #include <rudiments/private/rudimentsinlines.h>
11 
12 #ifdef RUDIMENTS_NAMESPACE
13 namespace rudiments {
14 #endif
15 
16 #define LINKEDLISTNODE_TEMPLATE template <class datatype>
17 
18 #define LINKEDLISTNODE_CLASS linkedlistnode<datatype>
19 
20 LINKEDLISTNODE_TEMPLATE
21 RUDIMENTS_TEMPLATE_INLINE
22 LINKEDLISTNODE_CLASS::linkedlistnode() {
23  data=0;
24  previous=NULL;
25  next=NULL;
26 }
27 
28 LINKEDLISTNODE_TEMPLATE
29 RUDIMENTS_TEMPLATE_INLINE
30 LINKEDLISTNODE_CLASS::~linkedlistnode() {
31 }
32 
33 LINKEDLISTNODE_TEMPLATE
34 RUDIMENTS_TEMPLATE_INLINE
35 void LINKEDLISTNODE_CLASS::setData(datatype data) {
36  this->data=data;
37 }
38 
39 LINKEDLISTNODE_TEMPLATE
40 RUDIMENTS_TEMPLATE_INLINE
41 datatype LINKEDLISTNODE_CLASS::getData() const {
42  return data;
43 }
44 
45 LINKEDLISTNODE_TEMPLATE
46 RUDIMENTS_TEMPLATE_INLINE
47 void LINKEDLISTNODE_CLASS::setPrevious(LINKEDLISTNODE_CLASS *previous) {
48  this->previous=previous;
49 }
50 
51 LINKEDLISTNODE_TEMPLATE
52 RUDIMENTS_TEMPLATE_INLINE
53 void LINKEDLISTNODE_CLASS::setNext(LINKEDLISTNODE_CLASS *next) {
54  this->next=next;
55 }
56 
57 LINKEDLISTNODE_TEMPLATE
58 RUDIMENTS_TEMPLATE_INLINE
59 LINKEDLISTNODE_CLASS *LINKEDLISTNODE_CLASS::getPrevious() {
60  return previous;
61 }
62 
63 LINKEDLISTNODE_TEMPLATE
64 RUDIMENTS_TEMPLATE_INLINE
65 LINKEDLISTNODE_CLASS *LINKEDLISTNODE_CLASS::getNext() {
66  return next;
67 }
68 
69 LINKEDLISTNODE_TEMPLATE
70 RUDIMENTS_TEMPLATE_INLINE
71 int32_t LINKEDLISTNODE_CLASS::compare(datatype data) const {
72  return datautil.compare(this->data,data);
73 }
74 
75 LINKEDLISTNODE_TEMPLATE
76 RUDIMENTS_TEMPLATE_INLINE
77 void LINKEDLISTNODE_CLASS::print() const {
78  datautil.print(data);
79 }
80 
81 #ifdef RUDIMENTS_NAMESPACE
82 }
83 #endif
84 
85 #endif