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