Base container storage that internally uses intervals based off the GID to perform loopkups.
More...
|
|
size_t | size (void) const |
| | Returns number of the local base containers in this base container manager.
|
| |
|
iterator | begin (void) |
| | Returns a begin iterator over the base containers in this base container manager.
|
| |
| const_iterator | begin (void) const |
| | Returns a begin iterator over the base containers in this base container manager. More...
|
| |
|
iterator | end (void) |
| | Returns an end iterator over the base containers in this base container manager.
|
| |
| const_iterator | end (void) const |
| | Returns an end iterator over the base containers in this base container manager. More...
|
| |
| iterator | find (gid_type const &gid) |
| | Returns an iterator to the base container that contains the given GID. If not found, it returns an end iterator. More...
|
| |
| const_iterator | find (gid_type const &gid) const |
| | Returns an iterator to the base container that contains the given GID. If not found, it returns an end iterator. More...
|
| |
| iterator | find_expect (gid_type const &gid) |
| | Returns an iterator to the base container that contains the given GID. If not found, it aborts in debug mode and is undefined behavior in non-debug mode. More...
|
| |
| const_iterator | find_expect (gid_type const &gid) const |
| | Returns an iterator to the base container that contains the given GID. If not found, it aborts in debug mode and is undefined behavior in non-debug mode. More...
|
| |
|
void | clear (void) |
| | Clears the storage and destroys the metadata for all local elements.
|
| |
|
template<typename Factory > |
| base_container_type * | insert_range (gid_type const &first, gid_type const &last, Factory const &f) |
| |
| template<typename Domain , typename Factory > |
| base_container_type * | insert_range (Domain const &dom, Factory const &f) |
| | Constructs a base container that is responsible for a given domain through the use of a factory and inserts it into the registry. More...
|
| |
|
| template<typename Partition , typename Mapper , typename BC_Factory > |
| void | init (Partition const &partition, Mapper const &mapper, BC_Factory const &bc_factory, base_container_ordering &ordering, typename std::enable_if< std::is_same< Partition, balanced_partition< typename Partition::value_type > >::value >::type *=0) |
| | Instantiate the base container that should be on this location based on the balanced partition using a factory object to construct instances. More...
|
| |
|
template<typename Partition , typename Mapper , typename BC_Factory > |
| void | init (Partition const &partition, Mapper const &mapper, BC_Factory const &bc_factory, base_container_ordering &ordering, typename std::enable_if< std::is_same< Partition, block_partitioner< typename Partition::value_type > >::value >::type *=0) |
| |
| template<typename Partition , typename Mapper , typename BC_Factory > |
| void | init (Partition const &partition, Mapper const &mapper, BC_Factory const &bc_factory, base_container_ordering &ordering, typename std::enable_if< !std::is_same< Partition, balanced_partition< typename Partition::value_type > >::value &&!std::is_same< Partition, block_partitioner< typename Partition::value_type > >::value >::type *=0) |
| | Instantiate all of the base containers that should be on this location based on partition and mapping information using a factory object to construct instances. More...
|
| |
| template<typename PartitionContainer , typename BC_Factory > |
| void | init (PartitionContainer const *const part_cont, BC_Factory const &bc_factory, base_container_ordering &ordering) |
| | Instantiate all of the base containers that should be on this location based on partition and mapping information contained in using a factory object to construct instances. More...
|
| |
| template<typename F > |
| void | clone_apply (interval_container_registry const &other, F const &f) |
| | Clone the base containers and apply a function that takes the old base container and the newly created one. More...
|
| |
|
|
typedef boost::icl::interval_map< gid_type, mapped_type, boost::icl::partial_enricher > | storage_type |
| |
|
typedef storage_type::key_type | interval_type |
| |
|
typedef boost::factory< base_container_type * > | factory_type |
| |
template<typename Container>
struct stapl::interval_container_registry< Container >
Base container storage that internally uses intervals based off the GID to perform loopkups.
- Template Parameters
-
| Container | Type of the base container. |
◆ init() [1/3]
template<typename Container>
template<typename Partition , typename Mapper , typename BC_Factory >
Instantiate the base container that should be on this location based on the balanced partition using a factory object to construct instances.
This specialization for balanced_partition is able to construct the base containers without communication, and as a result is faster than the general algorithm implemented in the non-specialized init method.
- Parameters
-
| partition | The container's partition object |
| mapper | The container's mapper object. |
| bc_factory | A factory object creating instances of the base container on the heap, when passed the domain and container id. |
◆ init() [2/3]
template<typename Container>
template<typename Partition , typename Mapper , typename BC_Factory >
Instantiate all of the base containers that should be on this location based on partition and mapping information using a factory object to construct instances.
- Parameters
-
| partition | The container's partition object |
| mapper | The container's mapper object. |
| bc_factory | A factory object creating instances of the base container on the heap, when passed the domain and container id. |
| ignored | instance of disable_if result type to remove the method from the overload set when a balanced_partition is used. |
◆ init() [3/3]
template<typename Container>
template<typename PartitionContainer , typename BC_Factory >
Instantiate all of the base containers that should be on this location based on partition and mapping information contained in using a factory object to construct instances.
- Parameters
-
| part_cont | Container of arb_partition_info elements that specifies an arbitrary distribution |
| bc_factory | A factory object creating instances of the base container on the heap, when passed the domain and container id. |
◆ begin()
template<typename Container>
Returns a begin iterator over the base containers in this base container manager.
◆ end()
template<typename Container>
Returns an end iterator over the base containers in this base container manager.
◆ find() [1/2]
template<typename Container>
Returns an iterator to the base container that contains the given GID. If not found, it returns an end iterator.
- Parameters
-
| gid | GID for the element in question. |
◆ find() [2/2]
template<typename Container>
Returns an iterator to the base container that contains the given GID. If not found, it returns an end iterator.
- Parameters
-
| gid | GID for the element in question. |
◆ find_expect() [1/2]
template<typename Container>
Returns an iterator to the base container that contains the given GID. If not found, it aborts in debug mode and is undefined behavior in non-debug mode.
- Parameters
-
| gid | GID for the element in question. |
◆ find_expect() [2/2]
template<typename Container>
Returns an iterator to the base container that contains the given GID. If not found, it aborts in debug mode and is undefined behavior in non-debug mode.
- Parameters
-
| gid | GID for the element in question. |
◆ insert_range()
template<typename Container>
template<typename Domain , typename Factory >
Constructs a base container that is responsible for a given domain through the use of a factory and inserts it into the registry.
- Parameters
-
| dom | Domain of the base container. Currently unused. |
| f | Factory that when invoked, returns a pointer to a newly created base container. The registry assumes ownership of the pointer. |
- Returns
- Pointer to the base container that was added
◆ clone_apply()
template<typename Container>
template<typename F >
Clone the base containers and apply a function that takes the old base container and the newly created one.
- Parameters
-
| other | The other instance of the registry to clone. |
| f | Function that is applied after cloning that accepts the old base container and then the new one. |
The documentation for this struct was generated from the following file:
- containers/distribution/container_manager/registry/interval.hpp