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

C:/temp/src/j2k/DataType/Link/SLink.cpp

Go to the documentation of this file.
00001 #ifndef __J2K__SLink_CPP__
00002 #define __J2K__SLink_CPP__
00003 
00004 #include <j2k/DataType/Link/SLink.hpp>
00005 
00006  // This is the freelist pointer.
00007  SLink* SLink::freelist = NULL;
00008 
00009  inline SLink::SLink()
00010    : element( (Elem)0 ), next( NULL ) { }
00011 
00012  inline SLink::SLink( SLink* nextp )
00013    : element( (Elem)0 ), next( nextp ) { }
00014 
00015  inline SLink::SLink( Elem Elemval )
00016    : element( Elemval ), next( NULL ) { }
00017 
00018  inline SLink::SLink( Elem Elemval, SLink* nextp )
00019    : element( Elemval ), next( nextp ) { }
00020 
00021 
00022  // Redefine NEW and DELETE, so we can use a FreeList
00023  void* SLink::operator new(size_t)         // Overload new
00024  {
00025    if (freelist == NULL)                   // Create new space
00026      return ::new SLink; 
00027 
00028    SLink* temp = freelist;                 // Otherwise, get from freelist
00029    freelist = freelist->next;
00030    return temp;                            // Return the Link node
00031  }
00032 
00033 
00034  void SLink::operator delete(void* ptr)    // Overload delete
00035  {
00036    ((SLink*)ptr)->next = freelist;         // Put on freelist
00037    freelist = (SLink*)ptr;
00038  }
00039 
00040 #endif

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