#include <PathDict.hpp>
Public Methods | |
| void | Init () | 
| PathDict () | |
| PathDictNode * | FindOrCreateRootPath (VPathExpr *pathexpr) | 
| PathDictNode * | FindOrCreatePath (PathDictNode *parent, TLabelID labelid) | 
      
  | 
  
| 
 
 Definition at line 175 of file PathDict.hpp. 00175 {  Init();  }
 | 
  
      
  | 
  ||||||||||||
| 
 
 Definition at line 215 of file PathDict.hpp. 00218    {
00219       unsigned long hashidx=ComputePathDictHashIdx(parent,labelid);
00220       PathDictNode   *node=hashtable[hashidx];
00221 
00222 #ifdef PROFILE
00223       lookupcount++;
00224 #endif
00225 
00226       while(node!=NULL)
00227       {
00228 #ifdef PROFILE
00229          hashitercount++;
00230 #endif
00231 
00232          if((node->parent==parent)&&(node->labelid==labelid))
00233             return node;
00234 
00235          node=node->nextsamehash;
00236       }
00237 
00238       // We must create a new node
00239       node=new PathDictNode();
00240 
00241 #ifdef PROFILE
00242       nodecount++;
00243 #endif
00244 
00245       node->parent=parent;
00246       node->labelid=labelid;
00247       node->compresscontblock=NULL;
00248 
00249       node->nextsamehash=hashtable[hashidx];
00250       hashtable[hashidx]=node;
00251 
00252       return node;
00253    }
 | 
  
      
  | 
  
| 
 
 Definition at line 177 of file PathDict.hpp. 00179    {
00180       unsigned long  hashidx=ComputePathDictHashIdx(pathexpr);
00181       PathDictNode   *node=hashtable[hashidx];
00182 #ifdef PROFILE
00183       lookupcount++;
00184 #endif
00185 
00186       while(node!=NULL)
00187       {
00188 #ifdef PROFILE
00189          hashitercount++;
00190 #endif
00191          if(node->pathexpr==pathexpr)
00192             return node;
00193 
00194          node=node->nextsamehash;
00195       }
00196 
00197       // We must create a new node
00198       node=new PathDictNode();
00199 
00200 #ifdef PROFILE
00201       nodecount++;
00202 #endif
00203 
00204       node->parent=NULL;
00205       node->pathexpr=pathexpr;
00206       node->compresscontblock=NULL;
00207 //      node->labelid=LABEL_UNDEFINED;
00208 
00209       node->nextsamehash=hashtable[hashidx];
00210       hashtable[hashidx]=node;
00211 
00212       return node;
00213    }
 | 
  
      
  | 
  
| 
 
 Definition at line 145 of file PathDict.hpp. 00147    {
00148       int i;
00149       for(i=0;i<PATHDICT_HASHSIZE;i++)
00150          hashtable[i]=NULL;
00151 #ifdef PROFILE
00152       nodecount=0;
00153       lookupcount=0;
00154       hashitercount=0;
00155 #endif
00156    }
 | 
  
1.2.11.1 written by Dimitri van Heesch,
 © 1997-2001