STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Classes | Functions
Directory

The directory used for message routing in the PARAGRAPH and pContainers. More...

+ Collaboration diagram for Directory:

Classes

class  stapl::detail::default_key_mapper< Key >
 Define default key to location mapping strategy used in the directory class used by containers and the PARAGRAPH. More...
 
class  stapl::detail::non_migratable_base< Key >
 Trivial class used to unconditionally signal certainty about presence of key on a location when migration is disabled. More...
 
class  stapl::detail::migratable_base< Key >
 Class used by detail::directory_base to verify a key is still registered on a location when migration is enabled (it's possible key has moved while this request was in flight). More...
 
struct  stapl::async_transmitter
 Transmitter for Directory that sends requests using async_rmi(). More...
 
struct  stapl::unordered_async_transmitter
 Transmitter for Directory that sends requests using unordered::async_rmi(). More...
 
struct  stapl::try_transmitter
 Transmitter for Directory that sends requests with try_rmi(). More...
 
class  stapl::detail::directory_base< Key, Transmitter, Mapper, Registry, EnableMigration >
 Base class of Directory that provides the bulk of the non migration specific implementation. More...
 
class  stapl::directory< Key, Transmitter, Mapper, Registry, EnableMigration >
 Provides basic functionality to forward computation (via a generic functor) to a location determined by the distributed registration of key values. The class handles heterogeneous work requests and supports relaxed consistency, placing no synchronization requirements on the registration of key and functor forwarding requests employing that key. More...
 
class  stapl::directory< Key, Transmitter, Mapper, Registry, true >
 Specialization with migration support. More...
 
class  stapl::detail::directory_request_base< Key, IntrusiveHook >
 Abstract base representing encapsulation of a buffered directory request which must be buffered at location managing a given key, pending key registration. More...
 
class  stapl::detail::directory_request< Directory, Functor, IntrusiveHook >
 Derived class of directory_request_base which holds function object associated with request and also defines the pointer to member method of the directory which will be used to service this request. More...
 

Functions

template<typename Directory , typename... PMFArgs, typename... Args>
void stapl::detail::directory_base< Key, Transmitter, Mapper, Registry, EnableMigration >::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 Directory , typename... PMFArgs, typename... Args>
void stapl::detail::directory_base< Key, Transmitter, Mapper, Registry, EnableMigration >::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...
 

Detailed Description

The directory used for message routing in the PARAGRAPH and pContainers.

Function Documentation

◆ invoke_at_manager() [1/2]

template<typename Key, typename Transmitter, typename Mapper, typename Registry, bool EnableMigration>
template<typename Directory , typename... PMFArgs, typename... Args>
void stapl::detail::directory_base< Key, Transmitter, Mapper, Registry, EnableMigration >::invoke_at_manager ( Key const &  key,
void(Directory::*)(PMFArgs...)  pmf,
Args &&...  args 
)
protected

Forwards functor and arguments to location managing key. The location managing the key will invoke the method with the supplied arguments.

Parameters
keyKey value whose managing location (i.e., where registry entry is stored) is where pmf will be invoked.
pmfDirectory member function to be invoked.
argsvariadic list of arguments to be applied.

This is used to internally encapsulate to forward various method invocations from the requester (e.g., registration, invoke_where, etc) to the location where they can be serviced, forwarded, etc.

See also
directory_base::invoke_where

◆ invoke_at_manager() [2/2]

template<typename Key, typename Transmitter, typename Mapper, typename Registry, bool EnableMigration>
template<typename Directory , typename... PMFArgs, typename... Args>
void stapl::detail::directory_base< Key, Transmitter, Mapper, Registry, EnableMigration >::invoke_at_manager ( Key const &  key,
void(Directory::*)(PMFArgs...) const  pmf,
Args &&...  args 
) const
protected

Forwards const functor and arguments to location managing key. The location managing the key will invoke the method with the supplied arguments.

Parameters
keyKey value whose managing location (i.e., where registry entry is stored) is where pmf will be invoked.
pmfDirectory const member function to be invoked.
argsvariadic list of arguments to be applied.

This is used to internally encapsulate to forward various method invocations from the requester (e.g., registration, invoke_where, etc) to the location where they can be serviced, forwarded, etc.

See also
directory_base::invoke_where