UCommon
|
Embed data objects into a multipap structured memory database. More...
#include <linked.h>
Public Member Functions | |
T & | get (void) const |
Return the typed value of this node. More... | |
multimap () | |
Construct a multimap node. | |
multimap * | next (unsigned path) |
Return next multimap typed object. More... | |
T & | operator* () const |
Return typed value of this node by pointer reference. More... | |
void | operator= (const T &data) |
Assign the value of our node. More... | |
void | set (const T &reference) |
Set the value of a data based value tree. More... | |
void | setPointer (const T pointer) |
Set the pointer of a pointer based value tree. More... | |
~multimap () | |
Destroy a multimap object. | |
![]() | |
void | delist (unsigned path) |
De-list from a single map path. More... | |
void | enlist (unsigned path, MultiMap **root) |
Enlist on a single linked list. More... | |
void | enlist (unsigned path, MultiMap **index, caddr_t key, unsigned size, size_t keysize=0) |
Enlist binary key on a single map path. More... | |
MultiMap * | next (unsigned path) const |
Get next node from single chain. More... | |
![]() | |
ReusableObject * | getNext (void) |
Get next effective reusable object when iterating. More... | |
![]() | |
void | delist (LinkedObject **root) |
Locate and remove ourselves from a list of objects. More... | |
void | enlist (LinkedObject **root) |
Add our object to an existing linked list through a pointer. More... | |
LinkedObject * | getNext (void) const |
Get next effective object when iterating. More... | |
bool | is_member (LinkedObject *list) const |
Search to see if we are a member of a specific list. More... | |
virtual void | retain (void) |
Retain by marking as self referenced list. More... | |
![]() | |
ObjectProtocol * | copy (void) |
Retain (increase retention of) object when copying. | |
void | operator++ (void) |
Increase retention operator. | |
void | operator-- (void) |
Decrease retention operator. | |
virtual | ~ObjectProtocol () |
Required virtual destructor. | |
Static Public Member Functions | |
static multimap * | find (unsigned path, MultiMap **index, caddr_t key, unsigned size, unsigned keysize=0) |
Find multimap key entry. More... | |
![]() | |
static MultiMap * | find (unsigned path, MultiMap **index, caddr_t key, unsigned max, size_t size=0) |
Find a multikey node. More... | |
static unsigned | keyindex (caddr_t key, unsigned max, size_t size=0) |
Compute binary key index. More... | |
![]() | |
static unsigned | count (const LinkedObject *root) |
Count the number of linked objects in a list. More... | |
static LinkedObject * | getIndexed (LinkedObject *root, unsigned index) |
Get member by index. More... | |
static void | purge (LinkedObject *root) |
Release all objects from a list. More... | |
Protected Attributes | |
T | value |
![]() | |
LinkedObject * | Next |
Additional Inherited Members | |
![]() | |
static const LinkedObject * | inv |
Marker for invalid list pointer. | |
static const LinkedObject * | nil |
Marker for end of linked list. More... | |
![]() | |
virtual bool | equal (unsigned path, caddr_t key, size_t size) const |
Modifiable interface for key matching. More... | |
MultiMap (unsigned count) | |
Initialize a multilist object. More... | |
virtual | ~MultiMap () |
Destroy a multilist object. | |
![]() | |
virtual void | release (void) |
Release list, mark as no longer linked. More... | |
![]() | |
LinkedObject (LinkedObject **root) | |
Construct base class attached to a chain of objects. More... | |
LinkedObject () | |
Construct base class unattached to anyone. More... | |
Embed data objects into a multipap structured memory database.
This can be used to form multi-key hash nodes. Embedded values can either be of direct types that are then stored as part of the template object, or of class types that are data pointers.
|
inlinestatic |
Find multimap key entry.
path | to search through. |
index | of associated keys. |
key | to search for, binary or NULL terminated string. |
size | of index used. |
keysize | or 0 if NULL terminated string. |
Definition at line 1626 of file linked.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |