MADNESS
0.10.1
|
Implements most parts of a globally addressable object (via unique ID). More...
#include <world_object.h>
Public Types | |
typedef WorldObject< Derived > | objT |
Public Member Functions | |
WorldObject (const WorldObject &other) | |
WorldObject (World &world) | |
Constructor that associates an object (via the derived class) with a globally unique ID. More... | |
virtual | ~WorldObject () |
World & | get_world () const |
Returns a reference to the world . More... | |
const uniqueidT & | id () const |
Returns the globally unique object ID. More... | |
WorldObject & | operator= (const WorldObject &)=delete |
template<typename memfnT > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn) const |
template<typename memfnT , typename a1T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1) const |
template<typename memfnT , typename a1T , typename a2T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2) const |
template<typename memfnT , typename a1T , typename a2T , typename a3T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3) const |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4) const |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5) const |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6) const |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T , typename a7T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7) const |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T , typename a7T , typename a8T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8) const |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T , typename a7T , typename a8T , typename a9T > | |
detail::task_result_type< memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9) const |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T , typename a7T , typename a8T , typename a9T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8,a9) . More... | |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T , typename a7T , typename a8T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8) . More... | |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T , typename a7T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7) . More... | |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6) . More... | |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5) . More... | |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4) . More... | |
template<typename memfnT , typename a1T , typename a2T , typename a3T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3) . More... | |
template<typename memfnT , typename a1T , typename a2T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1,a2) . More... | |
template<typename memfnT , typename a1T > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)(a1) . More... | |
template<typename memfnT > | |
detail::task_result_type< memfnT >::futureT | task (ProcessID dest, memfnT memfn, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method returnT (this->*memfn)() . More... | |
Public Member Functions inherited from madness::WorldObjectBase | |
virtual | ~WorldObjectBase ()=default |
Protected Member Functions | |
void | process_pending () |
To be called from derived constructor to process pending messages. More... | |
Private Types | |
typedef std::list< detail::PendingMsg > | pendingT |
typedef detail::voidT | voidT |
Private Member Functions | |
volatile std::list< detail::PendingMsg > | pending |
volatile std::list< detail::PendingMsg > | pending |
Spinlock | pending_mutex (0) |
Spinlock | pending_mutex (0) |
template<typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T , typename a7T , typename a8T , typename a9T > | |
detail::task_result_type< memfnT >::futureT | send_am (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9) const |
template<typename taskT , typename memfnT , typename a1T , typename a2T , typename a3T , typename a4T , typename a5T , typename a6T , typename a7T , typename a8T , typename a9T > | |
taskT::futureT | send_task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9, const TaskAttributes &attr) const |
Static Private Member Functions | |
template<typename T > | |
static const T & | am_arg (const Future< T > &f) |
template<typename T > | |
static const T & | am_arg (const T &t) |
template<typename memfnT , typename arg1T , typename arg2T , typename arg3T , typename arg4T , typename arg5T , typename arg6T , typename arg7T , typename arg8T , typename arg9T > | |
static void | handler (const AmArg &arg) |
Handler for an incoming AM. More... | |
static bool | is_ready (const uniqueidT &id, objT *&obj, const AmArg &arg, am_handlerT ptr) |
template<typename taskT > | |
static void | spawn_remote_task_handler (const AmArg &arg) |
Handler for remote arguments. More... | |
Private Attributes | |
ProcessID | me |
Rank of self. More... | |
uniqueidT | objid |
Sense of self. More... | |
volatile bool | ready |
True if ready to rock 'n roll. More... | |
World & | world |
The World this object belongs to. (Think globally, act locally). More... | |
Static Private Attributes | |
static volatile pendingT | pending |
Buffer for pending messages. More... | |
static Spinlock | pending_mutex |
Implements most parts of a globally addressable object (via unique ID).
This class is deliberately not default constructible and does not support assignment or copying. This ensures that each instance is unique. Have a look at madness::WorldContainer
for an example of wrapping this using the PIMPL idiom and a shared pointer.
When deriving classes:
WorldObject<Derived>
as a public base class.WorldObject<Derived>(world)
constructor.process_pending()
.gop.fence()
.Note that world
is exposed for convenience as a public data member.
Derived | The derived class. WorldObject is a curiously recurring template pattern. |
typedef WorldObject<Derived> madness::WorldObject< Derived >::objT |
|
private |
|
private |
|
inline |
|
inline |
Constructor that associates an object (via the derived class) with a globally unique ID.
process_pending
from its constructor to both[in,out] | world | The World encapsulating the "global" domain. |
|
inlinevirtual |
|
inlinestaticprivate |
T | Description needed. |
[in] | f | Description needed. |
References madness::f, and MADNESS_ASSERT.
Referenced by madness::WorldObject< Derived >::send(), and madness::WorldObject< Derived >::task().
|
inlinestaticprivate |
|
inline |
Returns a reference to the world
.
References madness::WorldObject< Derived >::world.
Referenced by madness::SeparatedConvolution< Q, NDIM >::combine().
|
inlinestaticprivate |
Handler for an incoming AM.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
arg1T | Type of argument 1. |
arg2T | Type of argument 2. |
arg3T | Type of argument 3. |
arg4T | Type of argument 4. |
arg5T | Type of argument 5. |
arg6T | Type of argument 6. |
arg7T | Type of argument 7. |
arg8T | Type of argument 8. |
arg9T | Type of argument 9. |
[in] | arg | Description needed. |
References madness::arg(), madness::WorldObject< Derived >::is_ready(), MADNESS_PRAGMA_CLANG, madness::detail::info_base< memfunT >::memfun(), madness::detail::peek(), madness::pop(), madness::detail::info< memfunT >::ref, and madness::detail::run_function().
|
inline |
Returns the globally unique object ID.
References madness::WorldObject< Derived >::objid.
Referenced by madness::archive::ArchiveStoreImpl< Archive, const DerivativeBase< T, NDIM > * >::store(), madness::archive::ArchiveStoreImpl< Archive, const FunctionImpl< T, NDIM > * >::store(), madness::archive::ArchiveStoreImpl< Archive, FunctionImpl< T, NDIM > * >::store(), madness::archive::ArchiveStoreImpl< BufferOutputArchive, const WorldObject< Derived > * >::store(), and madness::archive::ArchiveStoreImpl< BufferOutputArchive, WorldObject< Derived > * >::store().
|
inlinestaticprivate |
The slightly convoluted logic is to ensure ordering when processing pending messages. If a new message arrives while processing incoming messages it must be queued.
[in] | id | Description needed. |
[in,out] | obj | Description needed. |
[in] | arg | Description needed. |
[in,out] | ptr | Description needed. |
References madness::arg(), MADNESS_ASSERT, MADNESS_PRAGMA_CLANG, madness::WorldObject< Derived >::pending, madness::WorldObject< Derived >::pending_mutex, madness::pop(), and madness::WorldObject< Derived >::ready.
Referenced by madness::WorldObject< Derived >::handler(), and madness::WorldObject< Derived >::spawn_remote_task_handler().
|
delete |
|
private |
|
private |
|
private |
|
private |
|
inlineprotected |
To be called from derived constructor to process pending messages.
Cannot call this from the WorldObject
constructor since the derived class would not yet be fully constructed.
References madness::Spinlock::lock(), MADNESS_PRAGMA_CLANG, madness::WorldObject< Derived >::objid, p(), madness::WorldObject< Derived >::pending, madness::WorldObject< Derived >::pending_mutex, madness::pop(), madness::WorldObject< Derived >::ready, and madness::Spinlock::unlock().
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
References madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
References a1, madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
References a1, a2, madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
References a1, a2, madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
References a1, a2, madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
References a1, a2, madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
References a1, a2, madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
a7T | Type of argument 7. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
a7 | Argument 7. |
References a1, a2, madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
a7T | Type of argument 7. |
a8T | Type of argument 8. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
a7 | Argument 7. |
a8 | Argument 8. |
References a1, a2, madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::send_am(), and madness::Future< void >::value.
|
inline |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
a7T | Type of argument 7. |
a8T | Type of argument 8. |
a9T | Type of argument 9. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
a7 | Argument 7. |
a8 | Argument 8. |
a9 | Argument 9. |
References a1, a2, madness::WorldObject< Derived >::am_arg(), and madness::WorldObject< Derived >::send_am().
|
inlineprivate |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
a7T | Type of argument 7. |
a8T | Type of argument 8. |
a9T | Type of argument 9. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
a7 | Argument 7. |
a8 | Argument 8. |
a9 | Argument 9. |
References a1, a2, madness::World::am, madness::WorldObject< Derived >::me, madness::new_am_arg(), madness::WorldObject< Derived >::objid, madness::Future< T >::remote_ref(), madness::detail::run_function(), madness::WorldAmInterface::send(), and madness::WorldObject< Derived >::world.
Referenced by madness::WorldObject< Derived >::send().
|
inlineprivate |
taskT | Description needed. |
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
a7T | Type of argument 7. |
a8T | Type of argument 8. |
a9T | Type of argument 9. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
a7 | Argument 7. |
a8 | Argument 8. |
a9 | Argument 9. |
attr | Description needed. |
References a1, a2, madness::World::am, madness::RMI::ATTR_UNORDERED, madness::WorldObject< Derived >::me, madness::new_am_arg(), madness::WorldObject< Derived >::objid, madness::WorldAmInterface::send(), and madness::WorldObject< Derived >::world.
|
inlinestaticprivate |
Handler for remote arguments.
taskT | Description needed. |
[in] | arg | Description needed. |
References madness::arg(), madness::detail::info_base< memfunT >::attr, madness::WorldObject< Derived >::is_ready(), MADNESS_ASSERT, madness::detail::info_base< memfunT >::memfun(), madness::detail::peek(), madness::detail::info< memfunT >::ref, and madness::WorldObject< Derived >::task().
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8,a9)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
a7T | Type of argument 7. |
a8T | Type of argument 8. |
a9T | Type of argument 9. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
a7 | Argument 7. |
a8 | Argument 8. |
a9 | Argument 9. |
attr | Description needed. |
References a1, a2, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
a7T | Type of argument 7. |
a8T | Type of argument 8. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
a7 | Argument 7. |
a8 | Argument 8. |
attr | Description needed. |
References a1, a2, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
a7T | Type of argument 7. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
a7 | Argument 7. |
attr | Description needed. |
References a1, a2, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
a6T | Type of argument 6. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
a6 | Argument 6. |
attr | Description needed. |
References a1, a2, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
a5T | Type of argument 5. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
a5 | Argument 5. |
attr | Description needed. |
References a1, a2, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
a4T | Type of argument 4. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
a4 | Argument 4. |
attr | Description needed. |
References a1, a2, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1,a2,a3)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
a3T | Type of argument 3. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
a3 | Argument 3. |
attr | Description needed. |
References a1, a2, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1,a2)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
a2T | Type of argument 2. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
a2 | Argument 2. |
attr | Description needed. |
References a1, a2, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)(a1)
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
a1T | Type of argument 1. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
a1 | Argument 1. |
attr | Description needed. |
References a1, madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::am_arg(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
|
inline |
Sends task to derived class method returnT (this->*memfn)()
.
memfnT | Verify: Signature of the member function in the derived class to be invoked for the task. |
dest | Description needed. |
memfn | Verify: The member function to be invoked for the task. |
attr | Description needed. |
References madness::WorldTaskQueue::add(), madness::WorldObject< Derived >::me, madness::World::taskq, madness::Future< void >::value, and madness::WorldObject< Derived >::world.
Referenced by madness::CoeffTracker< T, NDIM >::activate(), madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::continue_recursion(), madness::DerivativeBase< T, NDIM >::forward_do_diff1(), madness::FunctionImpl< T, NDIM >::mulXXveca(), madness::FunctionImpl< T, NDIM >::recursive_apply_op< opT, LDIM >::operator()(), madness::FunctionImpl< T, NDIM >::recursive_apply_op2< opT >::operator()(), madness::WorldContainerImpl< keyT, valueT, hashfunT >::P2Op::operator()(), and madness::WorldObject< Derived >::spawn_remote_task_handler().
|
private |
Rank of self.
Referenced by madness::WorldObject< Derived >::send_am(), madness::WorldObject< Derived >::send_task(), and madness::WorldObject< Derived >::task().
|
private |
|
inlinestaticprivate |
Buffer for pending messages.
Referenced by madness::WorldObject< Derived >::is_ready(), and madness::WorldObject< Derived >::process_pending().
|
inlinestaticprivate |
Referenced by madness::WorldObject< Derived >::is_ready(), and madness::WorldObject< Derived >::process_pending().
|
private |
True if ready to rock 'n roll.
Referenced by madness::WorldObject< Derived >::is_ready(), and madness::WorldObject< Derived >::process_pending().
|
private |
The World
this object belongs to. (Think globally, act locally).
Referenced by madness::WorldObject< Derived >::~WorldObject(), madness::WorldObject< Derived >::get_world(), madness::WorldObject< Derived >::send_am(), madness::WorldObject< Derived >::send_task(), and madness::WorldObject< Derived >::task().