Base class of containers that implements functionality that is independent of whether nested container composition exists (mainly distribution related functionality). boost::shared_ptr is being used in place of std::shared_ptr in order to minimize the number of conflicts caused by ADL. Performance was shown to be comparable.
More...
|
| container_impl (distribution_type const &distribution) |
|
| container_impl (directory_type const &dir, container_manager_type const &cm) |
|
template<typename Reg > |
| container_impl (directory_type const &dir, container_manager_type const &cm, Reg const ®) |
|
| container_impl (partition_type const &ps, mapper_type const &map) |
|
template<typename Reg > |
| container_impl (partition_type const &ps, mapper_type const &map, Reg const ®) |
|
| container_impl (partition_type const &ps, mapper_type const &map, value_type const &default_value) |
|
template<typename DistSpecView , typename PartitionContainer > |
| container_impl (DistSpecView const &dist_view, PartitionContainer const *const part_cont, typename std::enable_if< is_distribution_view< DistSpecView >::value &&!detail::has_is_composed_dist_spec< DistSpecView >::value &&std::is_same< typename PartitionContainer::value_type, arbitrary_partition_info >::value >::type *=0) |
|
template<typename DistSpecView , typename PartitionContainer > |
| container_impl (DistSpecView const &dist_view, PartitionContainer const *const part_cont, value_type const &default_value, typename std::enable_if< is_distribution_view< DistSpecView >::value &&!detail::has_is_composed_dist_spec< DistSpecView >::value &&std::is_same< typename PartitionContainer::value_type, arbitrary_partition_info >::value >::type *=0) |
|
template<typename DistSpecView , typename PartitionContainer , typename Reg > |
| container_impl (DistSpecView const &dist_view, PartitionContainer const *const part_cont, Reg const ®, typename std::enable_if< is_distribution_view< DistSpecView >::value &&!detail::has_is_composed_dist_spec< DistSpecView >::value &&std::is_same< typename PartitionContainer::value_type, arbitrary_partition_info >::value >::type *=0) |
|
void | destroy (void) |
| Used as a target method for rmis implementing one-sided destruction, as a pointer to member variable referring to the destructor cannot be initialized, per the standard. Used when container is an element of another container.
|
|
size_t | get_num_locations (void) const |
|
location_type | get_location_id (void) const |
|
boost::shared_ptr< C > | shared_from_this () |
|
|
void | set_element (index_type const &idx, value_type const &val) |
| Sets the element specified by the index to the provided value. More...
|
|
template<typename View > |
void | set_elements (index_type const &idx, View &&vals) |
| Sets a range of elements starting with a given index to a sequence of provided values. More...
|
|
value_type | get_element (index_type const &idx) const |
| Returns the value of the element specified by the index. More...
|
|
future< value_type > | get_element_split (index_type const &idx) |
| Returns a stapl::future holding the value of the element specified by the index. More...
|
|
template<typename F > |
void | apply_set (gid_type const &gid, F const &f) |
| Applies a function f to the element specified by the GID. More...
|
|
template<typename F > |
F::result_type | apply_get (gid_type const &gid, F const &f) |
| Applies a function f to the element specified by the GID, and returns the result. More...
|
|
template<typename F > |
F::result_type | apply_get (gid_type const &gid, F const &f) const |
| Applies a function f to the element specified by the GID, and returns the result. More...
|
|
|
domain_type | domain (void) const |
|
void | migrate (gid_type const &gid, location_type destination) |
| Migrates the element specified by the gid to the destination location. More...
|
|
size_type | size (void) const |
| Return the number of elements in the container. More...
|
|
bool | empty (void) const |
|
distribution_type & | distribution (void) |
|
distribution_type const & | distribution (void) const |
|
distribution_type * | get_distribution (void) |
|
locality_info | locality (gid_type gid) |
| Return locality information about the element specified by the gid. More...
|
|
template<typename... Indices> |
bool | is_local (Indices const &... i) const |
| Returns true if the element specified by the GID formed from the index components provided is stored on this location, or false otherwise.
|
|
rmi_handle::reference | get_rmi_handle_reference (void) |
|
template<typename DistSpecView > |
std::shared_ptr< DistSpecView > | get_spec (DistSpecView const &dist_view, typename std::enable_if< !detail::has_is_composed_dist_spec< DistSpecView >::value >::type *=0) |
| Return a shared_ptr to the distribution specification for this container instance. More...
|
|
template<typename ComposedSpec > |
std::shared_ptr< typename ComposedSpec::distribution_spec > | get_spec (ComposedSpec const &dist_view, typename std::enable_if< detail::has_is_composed_dist_spec< ComposedSpec >::value >::type *=0) |
| Return a shared_ptr to the distribution specification for this container instance that is part of a composed container instantiation. More...
|
|
template<typename C>
class stapl::detail::container_impl< C >
Base class of containers that implements functionality that is independent of whether nested container composition exists (mainly distribution related functionality). boost::shared_ptr is being used in place of std::shared_ptr in order to minimize the number of conflicts caused by ADL. Performance was shown to be comparable.
- Template Parameters
-
C | derived container class for use with CRTP. |
Return the number of elements in the container.
This method is one-sided, If other locations may be concurrently performing operations that change their local size and the effects are desired to be observed in a deterministic way, then appropriate synchronization, e.g. a fence, may be required before or after the call to size, to enforce appropriate ordering.