|
| WorldObject (World &world) |
| Associates object with globally unique ID. More...
|
|
const uniqueidT & | id () const |
| Returns the globally unique object ID. More...
|
|
World & | get_world () const |
| Returns a reference to the world. More...
|
|
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 > |
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)(a1,a2,a3,a4,a5,a6,a7,a8,a9)". 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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...
|
|
virtual | ~WorldObject () |
|
template<class Derived>
class madness::WorldObject< Derived >
Implements most parts of a globally addressable object (via unique ID)
1) Derived class has WorldObject<Derived> as a public base class 2) Derived constructor a) invokes WorldObject<Derived>(world) constructor b) invokes process_pending() 3) Derived destructor must either be deferred or preceeded by gop.fence() 4) Derived class must have at least one virtual function for serialization of derived class pointers to be cast to the appropriate type.
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 the WorldContainer for an example of wrapping this using the PIMPL idiom and a shared pointer.
Note that world is exposed for convenience as a public data member.