MultiMap Class Reference
A multipath linked list where membership is managed in multiple lists.
More...
#include <linked.h>
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.
|
MultiMap * | next (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 MultiMap * | find (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
MultiMap::MultiMap |
( |
unsigned |
count |
) |
[protected] |
Initialize a multilist object.
- Parameters:
-
Member Function Documentation
virtual bool 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 MultiMap::delist |
( |
unsigned |
path |
) |
|
De-list from a single map path.
- Parameters:
-
void 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 MultiMap::enlist |
( |
unsigned |
path, |
|
|
MultiMap ** |
root | |
|
) |
| | |
Enlist on a single linked list.
- Parameters:
-
| path | to attach through. |
| root | of list to attach. |
static MultiMap* 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 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* MultiMap::next |
( |
unsigned |
path |
) |
|
The documentation for this class was generated from the following file: