| typedef TimeVal Heap_Key | Heap_Key | 
[protected]
| heap_entry (struct) | heap_entry | 
[protected]
|  Heap ()
 | Heap | 
Default constructor used to build a standard heap with no support for removal from the middle.
| explicit  Heap (bool)
 | Heap | 
Constructor used to build a standard heap with support for removal from the middle. Should be used with something like:
 struct _foo { ... ; int my_index ; ... } x;
 ...
 Heap *h = new Heap (OFFSET_OF(x, my_index));
|   ~Heap ()
 | ~Heap | 
[virtual]
| void  push (Heap_Key k, HeapBase *p)
 | push | 
Push an object into the heap by using a sorting key.
Parameters:
| k | the sorting key. | 
| p | the object to push into the heap. | 
| void  push (int i)
 | push | 
Bubble-up an object in the heap.
Note: this probably should not be exposed.
Parameters:
| i | the offset of the object to bubble-up. | 
| void  move (Heap_Key new_key, HeapBase *object)
 | move | 
Move an object in the heap according to the new key. Note: can only be used if the heap supports removal from the middle.
Parameters:
| new_key | the new key. | 
| object | the object to move. | 
| struct heap_entry * top ()
 | top | 
[const]
Get a pointer to the entry at the top of the heap.
Both the key and the value can be derived from the return value.
Returns: the pointer to the entry at the top of the heap.
| size_t  size ()
 | size | 
[const]
Get the number of elements in the heap.
Returns: the number of elements in the heap.
| void  pop ()
 | pop | 
Remove the object top of the heap.
| void  pop_obj (HeapBase *p)
 | pop_obj | 
Remove an object from an arbitrary position in the heap.
Note: only valid if the heap supports this kind of operation.
Parameters:
| p | the object to remove if not NULL, otherwise the top element from the heap. | 
| void  heapify ()
 | heapify | 
| void  print ()
 | 
| void  print_all (int)
 | print_all |