ModuleInfo "Version: 1.08"
ModuleInfo "Author: Mark Sibly"
ModuleInfo "License: zlib/libpng"
ModuleInfo "Copyright: Blitz Research Ltd"
ModuleInfo "Modserver: BRL"
ModuleInfo "History: 1.08"
ModuleInfo "History: Added Int and Byte Ptr key map types."
ModuleInfo "History: 1.07 Release"
ModuleInfo "History: Fixed MapKeys/MapValues functions to return enumerators"
ModuleInfo "History: 1.06 Release"
ModuleInfo "History: Restored KeyValue enumerator"
ModuleInfo "History: 1.05 Release"
ModuleInfo "History: Added Copy method"
ModuleInfo "History: 1.04 Release"
ModuleInfo "History: Fixed Clear memleak"
ModuleInfo "History: 1.03 Release"
ModuleInfo "History: Finally changed to red/back tree!"
ModuleInfo "History: Added procedural interface"
ModuleInfo "History: 1.02 Release"
ModuleInfo "History: Fixed TMap.Remove:TNode not returning node"
import brl.blitz
bmx_map_intmap_clear%(root@**)="bmx_map_intmap_clear"
bmx_map_intmap_isempty%(root@**)="bmx_map_intmap_isempty"
bmx_map_intmap_insert%(key%,value:Object,root@**)="bmx_map_intmap_insert"
bmx_map_intmap_contains%(key%,root@**)="bmx_map_intmap_contains"
bmx_map_intmap_valueforkey:Object(key%,root@**)="bmx_map_intmap_valueforkey"
bmx_map_intmap_remove%(key%,root@**)="bmx_map_intmap_remove"
bmx_map_intmap_firstnode@*(root@*)="bmx_map_intmap_firstnode"
bmx_map_intmap_nextnode@*(node@*)="bmx_map_intmap_nextnode"
bmx_map_intmap_key%(node@*)="bmx_map_intmap_key"
bmx_map_intmap_value:Object(node@*)="bmx_map_intmap_value"
bmx_map_intmap_hasnext%(node@*,root@*)="bmx_map_intmap_hasnext"
bmx_map_intmap_copy%(dst@**,_root@*)="bmx_map_intmap_copy"
TIntMap^Object{
._root@*&
-New%()="_brl_map_TIntMap_New"
-Delete%()="_brl_map_TIntMap_Delete"
-Clear%()="_brl_map_TIntMap_Clear"
-IsEmpty%()="_brl_map_TIntMap_IsEmpty"
-Insert%(key%,value:Object)="_brl_map_TIntMap_Insert"
-Contains%(key%)="_brl_map_TIntMap_Contains"
-ValueForKey:Object(key%)="_brl_map_TIntMap_ValueForKey"
-Remove%(key%)="_brl_map_TIntMap_Remove"
-_FirstNode:TIntNode()="_brl_map_TIntMap__FirstNode"
-Keys:TIntMapEnumerator()="_brl_map_TIntMap_Keys"
-Values:TIntMapEnumerator()="_brl_map_TIntMap_Values"
-Copy:TIntMap()="_brl_map_TIntMap_Copy"
-ObjectEnumerator:TIntNodeEnumerator()="_brl_map_TIntMap_ObjectEnumerator"
}="brl_map_TIntMap"
TIntNode^Object{
._root@*&
._nodePtr@*&
-New%()="_brl_map_TIntNode_New"
-Delete%()="_brl_map_TIntNode_Delete"
-Key%()="_brl_map_TIntNode_Key"
-Value:Object()="_brl_map_TIntNode_Value"
-HasNext%()="_brl_map_TIntNode_HasNext"
-NextNode:TIntNode()="_brl_map_TIntNode_NextNode"
}="brl_map_TIntNode"
TIntKey^Object{
.value%&
-New%()="_brl_map_TIntKey_New"
-Delete%()="_brl_map_TIntKey_Delete"
}="brl_map_TIntKey"
TIntNodeEnumerator^Object{
._node:TIntNode&
-New%()="_brl_map_TIntNodeEnumerator_New"
-Delete%()="_brl_map_TIntNodeEnumerator_Delete"
-HasNext%()="_brl_map_TIntNodeEnumerator_HasNext"
-NextObject:Object()="_brl_map_TIntNodeEnumerator_NextObject"
}="brl_map_TIntNodeEnumerator"
TIntKeyEnumerator^TIntNodeEnumerator{
._key:TIntKey&
-New%()="_brl_map_TIntKeyEnumerator_New"
-Delete%()="_brl_map_TIntKeyEnumerator_Delete"
-NextObject:Object()="_brl_map_TIntKeyEnumerator_NextObject"
}="brl_map_TIntKeyEnumerator"
TIntValueEnumerator^TIntNodeEnumerator{
-New%()="_brl_map_TIntValueEnumerator_New"
-Delete%()="_brl_map_TIntValueEnumerator_Delete"
-NextObject:Object()="_brl_map_TIntValueEnumerator_NextObject"
}="brl_map_TIntValueEnumerator"
TIntMapEnumerator^Object{
._enumerator:TIntNodeEnumerator&
-New%()="_brl_map_TIntMapEnumerator_New"
-Delete%()="_brl_map_TIntMapEnumerator_Delete"
-ObjectEnumerator:TIntNodeEnumerator()="_brl_map_TIntMapEnumerator_ObjectEnumerator"
}="brl_map_TIntMapEnumerator"
bmx_map_ptrmap_clear%(root@**)="bmx_map_ptrmap_clear"
bmx_map_ptrmap_isempty%(root@**)="bmx_map_ptrmap_isempty"
bmx_map_ptrmap_insert%(key@*,value:Object,root@**)="bmx_map_ptrmap_insert"
bmx_map_ptrmap_contains%(key@*,root@**)="bmx_map_ptrmap_contains"
bmx_map_ptrmap_valueforkey:Object(key@*,root@**)="bmx_map_ptrmap_valueforkey"
bmx_map_ptrmap_remove%(key@*,root@**)="bmx_map_ptrmap_remove"
bmx_map_ptrmap_firstnode@*(root@*)="bmx_map_ptrmap_firstnode"
bmx_map_ptrmap_nextnode@*(node@*)="bmx_map_ptrmap_nextnode"
bmx_map_ptrmap_key@*(node@*)="bmx_map_ptrmap_key"
bmx_map_ptrmap_value:Object(node@*)="bmx_map_ptrmap_value"
bmx_map_ptrmap_hasnext%(node@*,root@*)="bmx_map_ptrmap_hasnext"
bmx_map_ptrmap_copy%(dst@**,_root@*)="bmx_map_ptrmap_copy"
TPtrMap^Object{
._root@*&
-New%()="_brl_map_TPtrMap_New"
-Delete%()="_brl_map_TPtrMap_Delete"
-Clear%()="_brl_map_TPtrMap_Clear"
-IsEmpty%()="_brl_map_TPtrMap_IsEmpty"
-Insert%(key@*,value:Object)="_brl_map_TPtrMap_Insert"
-Contains%(key@*)="_brl_map_TPtrMap_Contains"
-ValueForKey:Object(key@*)="_brl_map_TPtrMap_ValueForKey"
-Remove%(key@*)="_brl_map_TPtrMap_Remove"
-_FirstNode:TPtrNode()="_brl_map_TPtrMap__FirstNode"
-Keys:TPtrMapEnumerator()="_brl_map_TPtrMap_Keys"
-Values:TPtrMapEnumerator()="_brl_map_TPtrMap_Values"
-Copy:TPtrMap()="_brl_map_TPtrMap_Copy"
-ObjectEnumerator:TPtrNodeEnumerator()="_brl_map_TPtrMap_ObjectEnumerator"
}="brl_map_TPtrMap"
TPtrNode^Object{
._root@*&
._nodePtr@*&
-New%()="_brl_map_TPtrNode_New"
-Delete%()="_brl_map_TPtrNode_Delete"
-Key@*()="_brl_map_TPtrNode_Key"
-Value:Object()="_brl_map_TPtrNode_Value"
-HasNext%()="_brl_map_TPtrNode_HasNext"
-NextNode:TPtrNode()="_brl_map_TPtrNode_NextNode"
}="brl_map_TPtrNode"
TPtrKey^Object{
.value@*&
-New%()="_brl_map_TPtrKey_New"
-Delete%()="_brl_map_TPtrKey_Delete"
}="brl_map_TPtrKey"
TPtrNodeEnumerator^Object{
._node:TPtrNode&
-New%()="_brl_map_TPtrNodeEnumerator_New"
-Delete%()="_brl_map_TPtrNodeEnumerator_Delete"
-HasNext%()="_brl_map_TPtrNodeEnumerator_HasNext"
-NextObject:Object()="_brl_map_TPtrNodeEnumerator_NextObject"
}="brl_map_TPtrNodeEnumerator"
TPtrKeyEnumerator^TPtrNodeEnumerator{
._key:TPtrKey&
-New%()="_brl_map_TPtrKeyEnumerator_New"
-Delete%()="_brl_map_TPtrKeyEnumerator_Delete"
-NextObject:Object()="_brl_map_TPtrKeyEnumerator_NextObject"
}="brl_map_TPtrKeyEnumerator"
TPtrValueEnumerator^TPtrNodeEnumerator{
-New%()="_brl_map_TPtrValueEnumerator_New"
-Delete%()="_brl_map_TPtrValueEnumerator_Delete"
-NextObject:Object()="_brl_map_TPtrValueEnumerator_NextObject"
}="brl_map_TPtrValueEnumerator"
TPtrMapEnumerator^Object{
._enumerator:TPtrNodeEnumerator&
-New%()="_brl_map_TPtrMapEnumerator_New"
-Delete%()="_brl_map_TPtrMapEnumerator_Delete"
-ObjectEnumerator:TPtrNodeEnumerator()="_brl_map_TPtrMapEnumerator_ObjectEnumerator"
}="brl_map_TPtrMapEnumerator"
TKeyValue^Object{
._key:Object&
._value:Object&
-New%()="_brl_map_TKeyValue_New"
-Delete%()="_brl_map_TKeyValue_Delete"
-Key:Object()="_brl_map_TKeyValue_Key"
-Value:Object()="_brl_map_TKeyValue_Value"
}="brl_map_TKeyValue"
TNode^TKeyValue{
._color%&
._parent:TNode&
._left:TNode&
._right:TNode&
-New%()="_brl_map_TNode_New"
-Delete%()="_brl_map_TNode_Delete"
-NextNode:TNode()="_brl_map_TNode_NextNode"
-PrevNode:TNode()="_brl_map_TNode_PrevNode"
-Clear%()="_brl_map_TNode_Clear"
-Copy:TNode(parent:TNode)="_brl_map_TNode_Copy"
-Key:Object()="_brl_map_TNode_Key"
-Value:Object()="_brl_map_TNode_Value"
}="brl_map_TNode"
TNodeEnumerator^Object{
._node:TNode&
-New%()="_brl_map_TNodeEnumerator_New"
-Delete%()="_brl_map_TNodeEnumerator_Delete"
-HasNext%()="_brl_map_TNodeEnumerator_HasNext"
-NextObject:Object()="_brl_map_TNodeEnumerator_NextObject"
}="brl_map_TNodeEnumerator"
TKeyEnumerator^TNodeEnumerator{
-New%()="_brl_map_TKeyEnumerator_New"
-Delete%()="_brl_map_TKeyEnumerator_Delete"
-NextObject:Object()="_brl_map_TKeyEnumerator_NextObject"
}="brl_map_TKeyEnumerator"
TValueEnumerator^TNodeEnumerator{
-New%()="_brl_map_TValueEnumerator_New"
-Delete%()="_brl_map_TValueEnumerator_Delete"
-NextObject:Object()="_brl_map_TValueEnumerator_NextObject"
}="brl_map_TValueEnumerator"
TMapEnumerator^Object{
._enumerator:TNodeEnumerator&
-New%()="_brl_map_TMapEnumerator_New"
-Delete%()="_brl_map_TMapEnumerator_Delete"
-ObjectEnumerator:TNodeEnumerator()="_brl_map_TMapEnumerator_ObjectEnumerator"
}="brl_map_TMapEnumerator"
TMap^Object{
RED%=-1
BLACK%=1
._root:TNode&
-New%()="_brl_map_TMap_New"
-Delete%()="_brl_map_TMap_Delete"
-Clear%()="_brl_map_TMap_Clear"
-IsEmpty%()="_brl_map_TMap_IsEmpty"
-Insert%(key:Object,value:Object)="_brl_map_TMap_Insert"
-Contains%(key:Object)="_brl_map_TMap_Contains"
-ValueForKey:Object(key:Object)="_brl_map_TMap_ValueForKey"
-Remove%(key:Object)="_brl_map_TMap_Remove"
-Keys:TMapEnumerator()="_brl_map_TMap_Keys"
-Values:TMapEnumerator()="_brl_map_TMap_Values"
-Copy:TMap()="_brl_map_TMap_Copy"
-ObjectEnumerator:TNodeEnumerator()="_brl_map_TMap_ObjectEnumerator"
-_FirstNode:TNode()="_brl_map_TMap__FirstNode"
-_LastNode:TNode()="_brl_map_TMap__LastNode"
-_FindNode:TNode(key:Object)="_brl_map_TMap__FindNode"
-_RemoveNode%(node:TNode)="_brl_map_TMap__RemoveNode"
-_InsertFixup%(node:TNode)="_brl_map_TMap__InsertFixup"
-_RotateLeft%(node:TNode)="_brl_map_TMap__RotateLeft"
-_RotateRight%(node:TNode)="_brl_map_TMap__RotateRight"
-_DeleteFixup%(node:TNode,parent:TNode)="_brl_map_TMap__DeleteFixup"
}="brl_map_TMap"
CreateMap:TMap()="brl_map_CreateMap"
ClearMap%(map:TMap)="brl_map_ClearMap"
MapIsEmpty%(map:TMap)="brl_map_MapIsEmpty"
MapInsert%(map:TMap,key:Object,value:Object)="brl_map_MapInsert"
MapValueForKey:Object(map:TMap,key:Object)="brl_map_MapValueForKey"
MapContains%(map:TMap,key:Object)="brl_map_MapContains"
MapRemove%(map:TMap,key:Object)="brl_map_MapRemove"
MapKeys:TMapEnumerator(map:TMap)="brl_map_MapKeys"
MapValues:TMapEnumerator(map:TMap)="brl_map_MapValues"
CopyMap:TMap(map:TMap)="brl_map_CopyMap"
