|
|
| interval_registry (void) |
| | Construct a registry with a stateless home functor.
|
| |
| | interval_registry (Home const &home) |
| | Construct a registry with a given home function. More...
|
| |
| template<typename Partition , typename Mapper > |
| void | reset_home (Partition const &partition, Mapper const &mapper) |
| | Resets the partition and mapper stored in m_home. More...
|
| |
|
void | clear (void) |
| | Clear all of the currently mapped GIDs in the registry.
|
| |
|
bool | empty (void) const |
| | Return whether or not this registry has any entries.
|
| |
| value_type | operator[] (key_type const &key) const |
| | Lookup in the registry on which location a GID resides. More...
|
| |
| void | insert (std::pair< key_type, value_type > const &val) |
| | Register the locality of a single GID. More...
|
| |
| template<typename Keys > |
| void | insert (std::pair< Keys, value_type > const &val) |
| | Register the locality of a range of GIDs. More...
|
| |
| const_iterator | find (key_type const &key) const |
| | Lookup in the registry on which location a GID resides. More...
|
| |
| void | erase (key_type const &key) |
| | Erase a mapping of a GID from a location. More...
|
| |
|
const_iterator | end (void) const |
| | Returns a value representing the end of the registry.
|
| |
| bool | contains (key_type const &key) const |
| | Returns whether or not a given key is mapped in the registry. More...
|
| |
| std::pair< key_type, location_type > | shift_right (key_type const &key) |
| | Return the first element in the interval to right of that containing key as well as the location key is mapped to. More...
|
| |
| std::pair< key_type, location_type > | shift_left (key_type const &key, key_type const &target_key) |
| | Remove the last key in the interval containing key. Return the last key in the adjacent interval to the left together with the location this interval maps to, so that last gid can be updated. More...
|
| |
template<typename Home, typename Compare = std::less<typename Home::gid_type>>
class stapl::interval_registry< Home, Compare >
This class is used to store directory entries in the container_directory class and subsequently, its base class directory. It models the map concept. For most pContainers, it is a safe assumption to expect that most GIDs will be mapped to the home location and that there will be only a small amount of GIDs that differ from this closed-form solution (through migration, etc.)
For this registry, GIDs are explicitly stored in aggregates through the use of an interval_map from the Boost ICL library. That is, if the registry logically stores the GIDs {0, 1, 2, 5, 6, 7}, they will be aggregated into the ranges {[0..2], [5..7]}. This requires that the GIDs can be properly aggregated into intervals.
- Template Parameters
-
| Home | The manager function object |
| The | less than comparator used internally in the ICL map. |