ucommon::MultiMap Class Reference

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

#include <linked.h>

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

Public Member Functions

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

Static Public Member Functions

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

Protected Member Functions

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

Detailed Description

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

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 958 of file linked.h.


Constructor & Destructor Documentation

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

Initialize a multilist object.

Parameters:
count of link paths.

Member Function Documentation

void ucommon::MultiMap::delist ( unsigned  path  ) 

De-list from a single map path.

Parameters:
path to detach from.
void ucommon::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 ucommon::MultiMap::enlist ( unsigned  path,
MultiMap **  root 
)

Enlist on a single linked list.

Parameters:
path to attach through.
root of list to attach.
virtual bool ucommon::MultiMap::equal ( unsigned  path,
caddr_t  key,
size_t  size 
) const [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.
static MultiMap* ucommon::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 ucommon::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* ucommon::MultiMap::next ( unsigned  path  )  const

Get next node from single chain.

Parameters:
path to follow.

The documentation for this class was generated from the following file:
Generated on Thu Jul 14 16:35:12 2011 for ucommon by  doxygen 1.6.3