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

matvec::HashNode Class Reference

#include <hashtable.h>

List of all members.


Detailed Description

a node for the hashtable

See also:
HashTable

Definition at line 37 of file hashtable.h.

Public Methods

 HashNode (void)
 HashNode (const HashNode &A)
 ~HashNode (void)
const HashNode & operator= (const HashNode &A)
int equal (const char *v)
void insert (const char *v, const size_t ds, const unsigned idno)
void resize (const size_t s)
unsigned id_no (void)
void release (void)

Private Methods

void copyfrom (const HashNode &A)

Private Attributes

size_t datasize
char * data
unsigned id

Friends

class HashTable


Constructor & Destructor Documentation

matvec::HashNode::HashNode void   
 

Definition at line 30 of file hashtable.cpp.

References data, datasize, and id.

00031 {
00032    data = 0;
00033    datasize = 0;
00034    id = 0;
00035 }

matvec::HashNode::HashNode const HashNode &    A [inline]
 

Definition at line 47 of file hashtable.h.

References copyfrom(), data, and datasize.

00047 {data = 0; datasize = 0; copyfrom(A);}

matvec::HashNode::~HashNode void    [inline]
 

Definition at line 48 of file hashtable.h.

References release().

00048 {release();}


Member Function Documentation

void matvec::HashNode::copyfrom const HashNode &    A [private]
 

Definition at line 37 of file hashtable.cpp.

References data, datasize, id, and release().

Referenced by HashNode(), and operator=().

00038 {
00039    if (this == &A) return;
00040    release();
00041    if (A.data) {
00042       datasize = A.datasize;
00043       if(datasize>0){
00044         data = new char [datasize];
00045       }
00046       else {
00047         data = 0;
00048       }
00049       memcpy(data,A.data,datasize);
00050       id = A.id;
00051    }
00052 }

int matvec::HashNode::equal const char *    v
 

Definition at line 77 of file hashtable.cpp.

References data, and datasize.

Referenced by matvec::HashTable::hash().

00078 {
00079    for (unsigned i=0; i<datasize; i++) if (data[i] != v[i]) return 0;
00080    return 1;
00081 }

unsigned matvec::HashNode::id_no void    [inline]
 

Definition at line 54 of file hashtable.h.

References id.

Referenced by matvec::HashTable::copyfrom(), matvec::HashTable::hash(), and matvec::HashTable::reorder().

00054 {return id;}

void matvec::HashNode::insert const char *    v,
const size_t    ds,
const unsigned    idno
 

Definition at line 83 of file hashtable.cpp.

Referenced by matvec::HashTable::hash().

00085 {
00086    if (datasize != ds) resize(ds);
00087    memcpy(data,v,datasize);
00088    id = idno;
00089 }

const HashNode & matvec::HashNode::operator= const HashNode &    A
 

Definition at line 71 of file hashtable.cpp.

References copyfrom().

00072 {
00073    copyfrom(A);
00074    return *this;
00075 }

void matvec::HashNode::release void   
 

Definition at line 91 of file hashtable.cpp.

References data, and datasize.

Referenced by copyfrom(), and ~HashNode().

00092 {
00093    if (data) { delete [] data; data = 0;}
00094    datasize=0;
00095 }

void matvec::HashNode::resize const size_t    s
 

Definition at line 54 of file hashtable.cpp.

References data, datasize, and id.

Referenced by matvec::HashTable::maxsize(), and matvec::HashTable::resize().

00055 {
00056   if (datasize == s) return;
00057   datasize = s;
00058   if (data) {
00059     delete [] data;
00060     data=0;
00061   }
00062   if(datasize>0){
00063     data = new char [datasize];
00064   }
00065   else {
00066     data = 0;
00067   }
00068   id = 0;
00069 }


Friends And Related Function Documentation

friend class HashTable [friend]
 

Definition at line 38 of file hashtable.h.


Member Data Documentation

char* matvec::HashNode::data [private]
 

Definition at line 41 of file hashtable.h.

Referenced by matvec::HashTable::copyfrom(), copyfrom(), equal(), matvec::HashTable::find(), HashNode(), matvec::HashTable::input_from_disk(), matvec::HashTable::insert(), release(), resize(), and matvec::HashTable::save_to_disk().

size_t matvec::HashNode::datasize [private]
 

Definition at line 40 of file hashtable.h.

Referenced by copyfrom(), equal(), HashNode(), matvec::HashTable::input_from_disk(), release(), resize(), and matvec::HashTable::save_to_disk().

unsigned matvec::HashNode::id [private]
 

Definition at line 42 of file hashtable.h.

Referenced by matvec::HashTable::change_id(), copyfrom(), matvec::HashTable::hash(), HashNode(), id_no(), matvec::HashTable::input_from_disk(), matvec::HashTable::resize(), resize(), and matvec::HashTable::save_to_disk().


The documentation for this class was generated from the following files:
Generated on Thu Jun 16 17:14:31 2005 for Matvec by doxygen1.2.16