List of linear offsets. More...
#include <arcane/utils/LinearOffsetMap.h>
Public Member Functions | |
| void | add (DataType size, DataType offset) |
| Adds an offset offset of size size. | |
| DataType | getAndRemoveOffset (DataType size) |
| Retrieves a sufficient offset for an element of size size. | |
| Int32 | size () const |
| Number of elements in the table. | |
Private Attributes | |
| std::multimap< DataType, DataType > | m_offset_map |
List of linear offsets.
DataType must be Int32 or Int64.
Definition at line 39 of file LinearOffsetMap.h.
| void Arcane::LinearOffsetMap< DataType >::add | ( | DataType | size, |
| DataType | offset ) |
Adds an offset offset of size size.
Definition at line 27 of file LinearOffsetMap.cc.
References size().
Referenced by getAndRemoveOffset().
| DataType Arcane::LinearOffsetMap< DataType >::getAndRemoveOffset | ( | DataType | size | ) |
Retrieves a sufficient offset for an element of size size.
Returns a negative value if no offset is available. If an offset is available, it returns its value. The found offset is removed from the list and an offset is added for the remaining size if it is not zero: if the found offset is offset and the associated size is offset_size, call add(offset_size - size, offset + size).
Definition at line 37 of file LinearOffsetMap.cc.
| Int32 Arcane::LinearOffsetMap< DataType >::size | ( | ) | const |
Number of elements in the table.
Definition at line 58 of file LinearOffsetMap.cc.
Referenced by add(), and getAndRemoveOffset().
|
private |
Definition at line 66 of file LinearOffsetMap.h.