name: SofList


g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_io.a

#include <SofList.h>

SofList(const SofList& arg);
boolean add(long name, long tag, long pos, long size);
long first(long name);
long last(long name);
long getCount();
quick start:

SofList list;

// setup a simple symbol table
SofSymbolTable table;      
SysString n1(L"Long");
long i1 = table.add(n1);

// add a node to the soflist
list.add(i1, 0, -1, sizeof(long));
list.debug(L"added nodes");
long tag = list.prev(i1, 1000);
if (tag != 0) {
  Console::put(L"Error in previous");

SofList is a binary search tree used to hold indices for Sof files. it is used to keep track of a sorted list of objects. programmers should never use the SofList directly.

a binary search tree is a linked data structure in which each node is an object. each node has keys as well as pointers to its left, right and parent nodes. let x be a node in a binary search tree:

in this SofList, a name and a tag are used as the keys of a node. when comparing two nodes, the names are compared first, if the names are the same, the tags are compared. a good tutorial on heaps can be found at :

public constants:

error codes:

protected data:

required public methods:

class-specific public methods:

private methods: