MADNESS
version 0.9
|
A global pointer address, valid anywhere in the world. More...
#include <worldptr.h>
Public Types | |
typedef unsigned long | worldidT |
World ID type. More... | |
typedef T * | pointer |
typedef ptr_traits< T >::reference | reference |
Public Member Functions | |
WorldPtr () | |
Default constructor. More... | |
WorldPtr (World &w, T *p) | |
World pointer constructor. More... | |
WorldPtr (const WorldPtr< T > &other) | |
Copy constructor. More... | |
template<typename U > | |
WorldPtr (const WorldPtr< U > &other) | |
Copy conversion constructor. More... | |
WorldPtr< T > & | operator= (const WorldPtr< T > &other) |
Copy assignment operator. More... | |
template<typename U > | |
WorldPtr< T > & | operator= (const WorldPtr< U > &other) |
Copy conversion assignment operator. More... | |
bool | is_local () const |
Check that the world pointer references a local pointer. More... | |
bool | has_owner () const |
Check that the world pointer has an owner. More... | |
pointer | get () const |
Pointer accessor. More... | |
reference | operator* () const |
Dereference operator. More... | |
pointer | operator-> () const |
Pointer arrow operator. More... | |
operator bool () const | |
Boolean conversion operator. More... | |
bool | operator! () const |
Boolean conversion operator. More... | |
template<typename U > | |
bool | operator== (const WorldPtr< U > &other) const |
Equality comparison operator. More... | |
template<typename U > | |
bool | operator!= (const WorldPtr< U > &other) const |
Inequality comparison operator. More... | |
template<typename U > | |
bool | operator< (const WorldPtr< U > &other) const |
Less-than comparison operator. More... | |
World & | get_world () const |
World accessor. More... | |
worldidT | get_worldid () const |
World ID accessor. More... | |
ProcessID | owner () const |
Rank accessor. More... | |
template<typename U > | |
void | swap (WorldPtr< U > &other) |
Swap the content of this with other . More... | |
template<class Archive > | |
void | load_internal_ (const Archive &ar) |
Serialize/deserialize the world pointer. More... | |
template<class Archive > | |
void | store_internal_ (const Archive &ar) const |
Friends | |
template<typename > | |
class | WorldPtr |
std::ostream & | operator<< (std::ostream &out, const WorldPtr< T > &p) |
A global pointer address, valid anywhere in the world.
Stores a globally addressable pointer. It can be sent to any process in the world.
T | The pointer type |
typedef T* madness::detail::WorldPtr< T >::pointer |
typedef ptr_traits<T>::reference madness::detail::WorldPtr< T >::reference |
typedef unsigned long madness::detail::WorldPtr< T >::worldidT |
World ID type.
|
inline |
Default constructor.
Creates a NULL pointer. There is no owner (i.e. the owner is set to -1).
nothing |
|
inline |
World pointer constructor.
Construct a world pointer form a local pointer.
w | A reference to the local world. |
p | The local pointer. |
nothing |
|
inline |
Copy constructor.
other | The world pointer to be copied |
nothing |
|
inline |
Copy conversion constructor.
Copy and convert pointer from U*
to T*
type.
U | The pointer type of the other pointer |
other | The world pointer to be copied |
nothing |
U*
must be implicitly convertible to T* type.
|
inline |
Pointer accessor.
Get the pointer of the world pointer. Note: A default initialized pointer is not considered to be local because it is not associated with a world.
MadnessException | When the pointer references a remote address. |
|
inline |
World accessor.
MadnessException | When the pointer world has not been set (i.e. When has_owner()==false ) |
Referenced by madness::detail::RemoteCounter::get_world().
|
inline |
World ID accessor.
nothing |
Referenced by madness::detail::RemoteCounter::get_worldid(), and madness::detail::WorldPtr< madness::detail::RemoteCounterBase >::load_internal_().
|
inline |
Check that the world pointer has an owner.
nothing |
Referenced by madness::detail::RemoteCounter::has_owner().
|
inline |
Check that the world pointer references a local pointer.
true
when the pointer points to a local address, and false
when it points to a remote address or is NULL. nothing |
Referenced by madness::detail::WorldPtr< madness::detail::RemoteCounterBase >::get(), madness::detail::RemoteCounter::is_local(), madness::detail::WorldPtr< madness::detail::RemoteCounterBase >::operator*(), madness::detail::WorldPtr< madness::detail::RemoteCounterBase >::operator->(), madness::detail::RemoteCounter::RemoteCounter(), and madness::detail::RemoteCounter::use_count().
|
inline |
Serialize/deserialize the world pointer.
Serialize/deserialize the world pointer for remote communication or write to disk.
Archive | The archive object type. |
Referenced by madness::archive::ArchiveLoadImpl< Archive, detail::WorldPtr< T > >::load().
|
inline |
Boolean conversion operator.
true
when the pointer is non-null and false
otherwise nothing |
|
inline |
Boolean conversion operator.
true
when the pointer is null and false
otherwise nothing |
|
inline |
Inequality comparison operator.
U | Another pointer type |
true
when the pointers refer to different addresses or different nodes or different worlds. nothing |
|
inline |
Dereference operator.
Dereference the local pointer.
MadnessException | When the pointer references a remote address, or when the pointer is NULL. |
|
inline |
Pointer arrow operator.
Access members of the pointer
MadnessException | When the pointer references a remote address, or when the pointer is NULL. |
|
inline |
Less-than comparison operator.
This operator does a lexicographical comparison of world ID, rank, and pointer (in that order).
U | Another pointer type |
true
when the lexicographical comparison of world ID, rank, and pointer is true, and false otherwise. nothing |
|
inline |
Copy assignment operator.
other | The world pointer to be copied |
nothing |
|
inline |
Copy conversion assignment operator.
Copy and convert pointer from U*
to T*
type.
U | The pointer type of the other pointer |
other | The world pointer to be copied |
nothing |
U*
must be implicitly convertible to T* type.
|
inline |
Equality comparison operator.
U | Another pointer type |
true
when the pointers refer to the same address from the same node in the same world. nothing |
|
inline |
Rank accessor.
If the pointer is not associated with
nothing |
Referenced by madness::detail::RemoteCounter::owner().
|
inline |
|
inline |
Swap the content of this
with other
.
U | The other world pointer type |
nothing |
U*
must be implicitly convertible to T* type. Referenced by madness::detail::swap().
|
friend |