Rudiments
|
00001 // Copyright (c) 2003 David Muse 00002 // See the COPYING file for more information 00003 00004 #ifndef EXCLUDE_RUDIMENTS_TEMPLATE_IMPLEMENTATIONS 00005 00006 #ifdef RUDIMENTS_HAVE_STDLIB_H 00007 #include <stdlib.h> 00008 #endif 00009 00010 #include <rudiments/private/rudimentsinlines.h> 00011 00012 #ifdef RUDIMENTS_NAMESPACE 00013 namespace rudiments { 00014 #endif 00015 00016 #define LINKEDLISTNODE_TEMPLATE template <class datatype> 00017 00018 #define LINKEDLISTNODE_CLASS linkedlistnode<datatype> 00019 00020 LINKEDLISTNODE_TEMPLATE 00021 RUDIMENTS_TEMPLATE_INLINE 00022 LINKEDLISTNODE_CLASS::linkedlistnode() { 00023 data=0; 00024 previous=NULL; 00025 next=NULL; 00026 } 00027 00028 LINKEDLISTNODE_TEMPLATE 00029 RUDIMENTS_TEMPLATE_INLINE 00030 LINKEDLISTNODE_CLASS::~linkedlistnode() { 00031 } 00032 00033 LINKEDLISTNODE_TEMPLATE 00034 RUDIMENTS_TEMPLATE_INLINE 00035 void LINKEDLISTNODE_CLASS::setData(datatype data) { 00036 this->data=data; 00037 } 00038 00039 LINKEDLISTNODE_TEMPLATE 00040 RUDIMENTS_TEMPLATE_INLINE 00041 datatype LINKEDLISTNODE_CLASS::getData() const { 00042 return data; 00043 } 00044 00045 LINKEDLISTNODE_TEMPLATE 00046 RUDIMENTS_TEMPLATE_INLINE 00047 void LINKEDLISTNODE_CLASS::setPrevious(LINKEDLISTNODE_CLASS *previous) { 00048 this->previous=previous; 00049 } 00050 00051 LINKEDLISTNODE_TEMPLATE 00052 RUDIMENTS_TEMPLATE_INLINE 00053 void LINKEDLISTNODE_CLASS::setNext(LINKEDLISTNODE_CLASS *next) { 00054 this->next=next; 00055 } 00056 00057 LINKEDLISTNODE_TEMPLATE 00058 RUDIMENTS_TEMPLATE_INLINE 00059 LINKEDLISTNODE_CLASS *LINKEDLISTNODE_CLASS::getPrevious() { 00060 return previous; 00061 } 00062 00063 LINKEDLISTNODE_TEMPLATE 00064 RUDIMENTS_TEMPLATE_INLINE 00065 LINKEDLISTNODE_CLASS *LINKEDLISTNODE_CLASS::getNext() { 00066 return next; 00067 } 00068 00069 LINKEDLISTNODE_TEMPLATE 00070 RUDIMENTS_TEMPLATE_INLINE 00071 int32_t LINKEDLISTNODE_CLASS::compare(datatype data) const { 00072 return datautil.compare(this->data,data); 00073 } 00074 00075 LINKEDLISTNODE_TEMPLATE 00076 RUDIMENTS_TEMPLATE_INLINE 00077 void LINKEDLISTNODE_CLASS::print() const { 00078 datautil.print(data); 00079 } 00080 00081 #ifdef RUDIMENTS_NAMESPACE 00082 } 00083 #endif 00084 00085 #endif