ucc::MultiMap Class Reference

A multipath linked list where membership is managed in multiple lists. More...

#include <linked.h>

Inheritance diagram for ucc::MultiMap:
Inheritance graph
[legend]
Collaboration diagram for ucc::MultiMap:
Collaboration graph
[legend]

Public Member Functions

void enlist (unsigned path, MultiMap **root)
 Enlist on a single linked list.
void enlist (unsigned path, MultiMap **index, caddr_t key, unsigned size, size_t keysize=0)
 Enlist binary key on a single map path.
void delist (unsigned path)
 De-list from a single map path.
MultiMapnext (unsigned path)
 Get next node from single chain.

Static Public Member Functions

static unsigned keyindex (caddr_t key, unsigned max, size_t size=0)
 Compute binary key index.
static MultiMapfind (unsigned path, MultiMap **index, caddr_t key, unsigned max, size_t size=0)
 Find a multikey node.

Protected Member Functions

 MultiMap (unsigned count)
 Initialize a multilist object.
virtual ~MultiMap ()
 Destroy a multilist object.
virtual bool compare (unsigned path, caddr_t key, size_t size)
 Modifiable interface for key matching.

Detailed Description

A multipath linked list where membership is managed in multiple lists.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 792 of file linked.h.


Constructor & Destructor Documentation

ucc::MultiMap::MultiMap ( unsigned  count  )  [protected]

Initialize a multilist object.

Parameters:
count of link paths.

Member Function Documentation

virtual bool ucc::MultiMap::compare ( unsigned  path,
caddr_t  key,
size_t  size 
) [protected, virtual]

Modifiable interface for key matching.

Parameters:
path to check.
key to check.
size of key to check or 0 if NULL terminated string.
Returns:
true if matches key.
void ucc::MultiMap::delist ( unsigned  path  ) 

De-list from a single map path.

Parameters:
path to detach from.
void ucc::MultiMap::enlist ( unsigned  path,
MultiMap **  index,
caddr_t  key,
unsigned  size,
size_t  keysize = 0 
)

Enlist binary key on a single map path.

Parameters:
path to attach through.
index to attach to.
key value to use.
size of index.
keysize of key or 0 if NULL terminated string.
void ucc::MultiMap::enlist ( unsigned  path,
MultiMap **  root 
)

Enlist on a single linked list.

Parameters:
path to attach through.
root of list to attach.
static MultiMap* ucc::MultiMap::find ( unsigned  path,
MultiMap **  index,
caddr_t  key,
unsigned  max,
size_t  size = 0 
) [static]

Find a multikey node.

Returns:
node that is found or NULL if none.
Parameters:
path of table.
index of hash table.
key to locate.
max size of index.
size of key or 0 if NULL terminated string.
static unsigned ucc::MultiMap::keyindex ( caddr_t  key,
unsigned  max,
size_t  size = 0 
) [static]

Compute binary key index.

Parameters:
key memory to compute.
max size of index.
size of key or 0 if NULL terminated string.
Returns:
associated hash value.
MultiMap* ucc::MultiMap::next ( unsigned  path  ) 

Get next node from single chain.

Parameters:
path to follow.

Reimplemented in ucc::multimap< T, P >.


The documentation for this class was generated from the following file:

Generated by  doxygen 1.6.2