|
bool | has_perfect_mapper (void) const |
|
mapper_t const & | key_mapper (void) const |
|
mapper_t & | key_mapper (void) |
|
bool | empty (void) const |
| Returns true if there are no entries in directory's registry on this location.
|
|
void | reset (void) |
| Clear all local registrations and pending messages in directory. Used by clear() methods of container distributions.
|
|
bool | try_register_key_local (Key const &key) |
| Attempt registration from the managing location. Return true if successful (i.e., not already registered).
|
|
void | register_key (Key const &key) |
| Associate key in directory's registry with the location invoking this method. More...
|
|
void | register_keys (std::pair< Key, Key > const &keys) |
|
template<typename Functor > |
void | register_apply (Key const &key, Functor &&f) |
| Associate key in directory's registry with location invoking this method. Registration location is implicitly set to be caller of this method. More...
|
|
template<typename Functor > |
void | register_apply (Key const &key, Functor &&f, location_type location) |
| Associate key in directory's registry with location invoking this method. More...
|
|
void | unregister_key (Key const &key) |
| Unregister key in directory's registry.
|
|
template<typename Functor > |
void | unregister_apply (Key const &key, Functor &&f) |
| Unregister key and apply a function object f at location where directory's registry manages key . More...
|
|
template<typename Functor > |
void | invoke_where (Functor &&f, Key const &key) |
| Invoke function object at the location where key is currently registered. More...
|
|
template<typename Functor > |
void | try_invoke_where (Functor &&f, Key const &key) |
| Invoke function object at the location where key is currently registered if the key is registered. More...
|
|
template<typename Functor > |
void | unordered_invoke_where (Functor &&f, Key const &key) |
| Invoke function object at the location where key is currently registered, disregarding RMI causal ordering. More...
|
|
locality_info | locality (Key const &key) |
| Provide locality information about a key managed by the directory. More...
|
|
runtime::location_md const & | get_location_md (void) const noexcept |
| Returns the location metadata of the location this object registered in.
|
|
runtime::location_md & | get_location_md (void) noexcept |
| Returns the location metadata of the location this object registered in. noexcept More...
|
|
|
rmi_handle::const_reference const & | get_rmi_handle (void) const noexcept |
| Returns the associated rmi_handle.
|
|
rmi_handle::reference const & | get_rmi_handle (void) noexcept |
| Returns the associated rmi_handle.
|
|
size_type | get_location_id (void) const noexcept |
| Returns the location id of the local sub-object.
|
|
size_type | get_num_locations (void) const noexcept |
| Returns the number of locations of the gang of this p_object.
|
|
void | advance_epoch (void) |
| Advances the epoch of the object. More...
|
|
void | unlock (void) |
| Used by lock_guard functionality in method of derived classes to request atomicity with respect to incoming RMIs. More...
|
|
void | lock (void) |
| Used by lock_guard functionality in method of derived classes to request atomicity with respect to incoming RMIs. More...
|
|
bool | try_lock (void) |
| Attempt to maintain atomicity with respect to incoming RMIs. More...
|
|
|
template<typename Functor > |
void | execute (Functor &&f) |
| Internal method, target of RMI called via migrate_impl to invoke functor f at new registration location, post registry update. More...
|
|
template<typename Directory , typename... PMFArgs, typename... Args> |
void | invoke_at_manager (Key const &key, void(Directory::*const pmf)(PMFArgs...), Args &&... args) |
| Forwards functor and arguments to location managing key . The location managing the key will invoke the method with the supplied arguments. More...
|
|
template<typename Trans , typename Directory , typename... PMFArgs, typename... Args> |
void | invoke_at_manager_impl (Key const &key, void(Directory::*const pmf)(PMFArgs...), Args &&... args) |
| Implementation of. More...
|
|
template<typename Directory , typename... PMFArgs, typename... Args> |
void | invoke_at_manager (Key const &key, void(Directory::*const pmf)(PMFArgs...) const, Args &&... args) const |
| Forwards const functor and arguments to location managing key . The location managing the key will invoke the method with the supplied arguments. More...
|
|
template<typename Trans , typename Directory , typename... PMFArgs, typename... Args> |
void | invoke_at_manager_impl (Key const &key, void(Directory::*const pmf)(PMFArgs...) const, Args &&... args) const |
| Implementation of. More...
|
|
void | flush_pending (const location_type loc, Key const &key, queue_t &pending) |
| Forward all buffered requests for key to location loc . More...
|
|
template<typename Functor , typename Trans = transmitter_type> |
void | request_forward (Key const &key, Functor &&f) |
| Internal method used to facilitate invocation of f on location where key is currently registered. Called via RMI on directory location where key is managed. More...
|
|
template<typename Functor > |
void | try_request_forward (Key const &key, Functor &&f) |
| Internal method used to facilitate invocation of f on location where key is currently registered. If key is not registered, the request is dropped; otherwise, it is called via RMI on directory location where key is managed. This is directed at situations where it is legal for a key to not exist, i.e. erasing non-existent keys in the unordered set container. More...
|
|
| directory_base (bool b_enable_buffering) |
|
template<typename Function > |
| directory_base (Function &&f, Mapper mapper, bool b_migration_enabled, bool b_enable_buffering, bool b_perfect_mapper) |
| Constructor used by PARAGRAPH. More...
|
|
| directory_base (mapper_t mapper, registry_t registry) |
| Constructor specifying custom mapper and registry. Used by container framework.
|
|
| directory_base (directory_base const &other) |
|
directory_base & | operator= (directory_base const &other) |
|
template<typename Key, typename Transmitter, typename Mapper, typename Registry, bool EnableMigration>
class stapl::detail::directory_base< Key, Transmitter, Mapper, Registry, EnableMigration >
Base class of Directory that provides the bulk of the non migration specific implementation.
- Template Parameters
-
Key | Key types tracked by this directory. |
Transmitter | Type Encapsulting underlying ARMI primitives for communication. |
Mapper | Functor type that maps keys to location that manages them. |
Registry | Holds key to location mapping. |
template<typename Key, typename Transmitter, typename Mapper, typename Registry, bool EnableMigration>
template<typename Functor >
Internal method, target of RMI called via migrate_impl to invoke functor f
at new registration location, post registry update.
- Parameters
-
f | Nullary functor to apply. |
- See also
- migrate_impl()
template<typename Key, typename Transmitter, typename Mapper, typename Registry, bool EnableMigration>
template<typename Functor , typename Trans = transmitter_type>
Internal method used to facilitate invocation of f
on location where key
is currently registered. Called via RMI on directory location where key
is managed.
- Parameters
-
key | Key whose registered location determines where f should be executed. |
f | Functor to invoke (unary, key passed as parameter). |
Called by invoke_where and execute (the latter when migration enabled).
template<typename Key, typename Transmitter, typename Mapper, typename Registry, bool EnableMigration>
template<typename Functor >
Internal method used to facilitate invocation of f
on location where key
is currently registered. If key
is not registered, the request is dropped; otherwise, it is called via RMI on directory location where key
is managed. This is directed at situations where it is legal for a key to not exist, i.e. erasing non-existent keys in the unordered set container.
- Parameters
-
key | Key whose registered location determines where f should be executed. |
f | Functor to invoke (unary, key passed as parameter). |
Called by invoke_where and execute (the latter when migration enabled).