PackedIndexLists.kl¶
Types¶
PackedIndexLists (struct)¶
The PackedIndexLists allows to store multiple double-linked lists of UInt32 values into a single memory buffer.
/note List and element keys are not safe-guarded; a wrong usage will lead to unexpected results.
/example require Containers;
function printList( PackedIndexLists lists, PackedIndexListKey listKey ) { report(“Elements:”); PackedIndexListKey key = listKey; UInt32 index; while( lists.getNextIndexAndIncrement( key, index ) ) report(” ” + index ); }
operator entry(){
PackedIndexLists lists;
PackedIndexListKey list1 = lists.createList(); lists.listAddIndex( list1, 3 );
//Keep a key for element 9, as we will remove it later PackedIndexListElementKey element9 = lists.listAddIndex( list1, 9 );
PackedIndexListKey list2 = lists.createList(); lists.listAddIndex( list2, 1 ); lists.listAddIndex( list2, 2 );
lists.listAddIndex( list1, 8 );
lists.listAddIndex( list2, 5 );
//Remove ‘9’ from list1 lists.removeListElement( element9 );
printList( lists, list1 ); printList( lists, list2 ); } /endexample
Methods¶
PackedIndexLists ( in PackedIndexLists other ) | |
PackedIndexLists () | |
clearAll ! ( in Boolean deallocate ) | |
clearList ! ( in PackedIndexListKey listKey ) | |
PackedIndexLists | clone ? () |
PackedIndexListKey | createList ! () |
deleteList ! ( in PackedIndexListKey listKey ) | |
String | getListDesc ? ( in PackedIndexListKey listKey ) |
Size | getListSize_slow ? ( in PackedIndexListKey listKey ) |
Boolean | getNextIndexAndIncrement ? ( io PackedIndexListElementKey elementKey, io UInt32 index ) |
PackedIndexListElementKey | listAddIndex ! ( in PackedIndexListKey listKey, in UInt32 index ) |
Boolean | listIsEmpty ? ( in PackedIndexListKey listKey ) |
PackedIndexListElementKey | moveElementToList ! ( in PackedIndexListElementKey elementKey, in PackedIndexListKey targetListKey ) |
removeListElement ! ( in PackedIndexListElementKey elementKey ) |