1#ifndef LINEARALGEBRA_SRC_MOLPRO_LINALG_ARRAY_UTIL_DISTRFLAGS_H
2#define LINEARALGEBRA_SRC_MOLPRO_LINALG_ARRAY_UTIL_DISTRFLAGS_H
69 Proxy(MPI_Comm comm, MPI_Win win,
int rank, std::shared_ptr<int> counter);
Proxy for accessing the stored flags. The flag on a given rank is locked on construction and unlocked...
Definition: DistrFlags.h:56
MPI_Comm m_comm
mpi communicator
Definition: DistrFlags.h:81
Proxy(MPI_Comm comm, MPI_Win win, int rank, std::shared_ptr< int > counter)
Construct Proxy using contents of an active DistrFlags object.
Definition: DistrFlags.cpp:70
MPI_Win m_win
Definition: DistrFlags.h:82
std::shared_ptr< int > m_counter
counter of proxy objects created by overlying DistrFlags object.
Definition: DistrFlags.h:84
~Proxy()
Definition: DistrFlags.cpp:77
int rank() const
Which rank the proxy has access to.
Definition: DistrFlags.h:78
int m_rank
empty window handle
Definition: DistrFlags.h:83
int replace(int val)
replace value of flag
Definition: DistrFlags.cpp:90
int get() const
get value of the flag
Definition: DistrFlags.cpp:83
Distributed array of integer flags with one flag per process and a locking mechanism to ensure atomic...
Definition: DistrFlags.h:16
MPI_Win m_win
Definition: DistrFlags.h:20
Proxy access() const
Definition: DistrFlags.cpp:68
std::shared_ptr< int > m_counter
empty window handle
Definition: DistrFlags.h:21
friend void swap(DistrFlags &x, DistrFlags &y)
Definition: DistrFlags.cpp:53
MPI_Comm m_comm
mpi communicator
Definition: DistrFlags.h:19
bool empty() const
Whether distributed array was allocated.
Definition: DistrFlags.cpp:60
~DistrFlags()
Definition: DistrFlags.cpp:21
MPI_Comm communicator() const
Definition: DistrFlags.h:46
DistrFlags & operator=(const DistrFlags &source)
Definition: DistrFlags.cpp:36
Definition: ArrayHandler.h:23