Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/DataType/Parenth.Frd/Link.cpp

Go to the documentation of this file.
00001 // Link.cpp - Single-Link Class Implementation
00002 #include "Link.hpp"
00003 
00004 // This creates space for the freelist variable
00005 Link* Link::freelist = NULL;
00006 
00007     Link::Link() {
00008          next = NULL;
00009    }
00010 
00011     Link::Link( Link& link ) {                // Copy Constructor
00012         element = new DBase( *link.element );
00013         next = NULL;  
00014    }
00015 
00016     Link::Link(Link* nextp ) {                // Default Empty Constructor
00017         next = nextp;  
00018    }
00019 
00020     Link::Link(DBase* Elemval) {              // With an element and no ptr
00021         element = Elemval;  
00022         next = NULL;
00023    }
00024 
00025     Link::Link(DBase* Elemval, Link* nextp) { // With an element and next ptr
00026         element = Elemval;  
00027         next = nextp;  
00028    }
00029 
00030 // Redefine NEW and DELETE so we use a FreeList if possible...
00031 void* Link::operator new(size_t) {          // Overload new
00032   if (freelist == NULL)                  // Create new space
00033     return ::new Link; 
00034 
00035   Link* temp = freelist;                  // Otherwise, get from freelist
00036   freelist = freelist->next;
00037   return temp;                        // Return the link node
00038 }
00039 
00040 void Link::operator delete(void* ptr) {        // Overload delete
00041   ((Link*)ptr)->next = freelist;         // Put on freelist
00042   freelist = (Link*)ptr;
00043 }
00044 

Generated on Sun Oct 14 18:46:18 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001