Maps unit
Implements a map for unique IDs to arbitrary data.
maps.pp implements a map for unique IDs to arbitrary data. The
ID-to-Data mapping is stored in an Average Level Binary Tree for fast
indexing. The map also maintains a linked list between the ordered items for
fast iteration through its elements. The ID can be signed or unsigned, with a
size of 1, 2, 4, 8, 16 or 32 bytes. The data can be of any (constant) size.
Author: Marc Weustink
maps.pp is part of the
LazUtils package.
Classes and records
TBaseMap | class | Implements the base class for a map for unique IDs to arbitrary data. |
TBaseMapIterator | class | Specifies the interface used for map item iterators. |
TLockedMapIterator | class | Implements a map iterator with thread-safe locking in the associated map. |
TLockedMapModifyException | class | Exception raised when a modification is made to a locked Map. |
TMap | class | Implements a map for unique IDs to arbitrary data. |
TMapID | record | Represents an ID in a map association. |
TMapItem | record | Represents the ID and order of items in the linked list for the map. |
TMapIterator | class | Implements an iterator for items in a map. |
TMapLink | record | Record type used to build the linked list for items in the map. |
TTypedMap | class | Implements a map with support for reference counted Type Information in the Data. |
TTypedMapIterator | class | Implements an iterator for items in a map. |
Procedures and functions
MapReport | function | Gets information about the AVL Tree in the specified map. |
Types
PMapID | type | Pointer to a TMapID type. |
PMapItem | type | Pointer to a TMapItem data type. |
PMapLink | type | Pointer to a TMapLink data type. |
TMapIdType | enumeration | Identifies the data type used for map IDs. |
Constants
itsPtrSize | constant | Constant that indicates the size of a signed Pointer in the map. |
ituPtrSize | constant | Constant that indicates the size of an unsigned Pointer in the map. |
Uses
ClassesSysUtilsMathTypInfoAVL_TreeFPCAdds
An experiment, built from Lazarus main 2dfa93c66e of 10-22-2026. Not the official Lazarus documentation.
