#include <ampiimpl.h>
Public Member Functions | |
Amm () noexcept | |
~Amm () | |
AmmEntry< T > * | newEntry (int tag, int src, T msg) noexcept |
AmmEntry< T > * | newEntry (T msg) noexcept |
void | deleteEntry (AmmEntry< T > *ent) noexcept |
void | freeAll () noexcept |
void | flushMsgs () noexcept |
bool | match (const int tags1[AMM_NTAGS], const int tags2[AMM_NTAGS]) const noexcept |
void | put (T msg) noexcept |
void | put (int tag, int src, T msg) noexcept |
T | get (int tag, int src, int *rtags=NULL) noexcept |
T | probe (int tag, int src, int *rtags) noexcept |
int | size () const noexcept |
void | pup (PUP::er &p, AmmPupMessageFn msgpup) noexcept |
Data Fields | |
AmmEntry< T > * | first |
AmmEntry< T > ** | lasth |
Private Attributes | |
int | startIdx |
std::bitset< N > | validEntries |
std::array< AmmEntry< T >, N > | entryPool |
Definition at line 170 of file ampiimpl.h.
Definition at line 181 of file ampiimpl.h.
Definition at line 183 of file ampiimpl.h.
Referenced by Amm< T, N >::put().
Definition at line 199 of file ampiimpl.h.
Definition at line 215 of file ampiimpl.h.
Referenced by Amm< T, N >::freeAll(), Amm< T, N >::get(), and Amm< T, N >::pup().
void Amm< T, N >::freeAll | ( | ) | [inline] |
Definition at line 1892 of file ampi.C.
References Amm< T, N >::deleteEntry(), Amm< T, N >::first, and AmmEntry< T >::next.
void Amm< T, N >::flushMsgs | ( | ) | [inline] |
bool Amm< T, N >::match | ( | const int | tags1[AMM_NTAGS], | |
const int | tags2[AMM_NTAGS] | |||
) | const [inline] |
Definition at line 1930 of file ampi.C.
Referenced by Amm< T, N >::get(), and Amm< T, N >::probe().
void Amm< T, N >::put | ( | T | msg | ) | [inline] |
Definition at line 1914 of file ampi.C.
References Amm< T, N >::lasth, msg, Amm< T, N >::newEntry(), and AmmEntry< T >::next.
Referenced by Amm< T, N >::pup(), and PUPbytes().
Definition at line 1922 of file ampi.C.
References Amm< T, N >::lasth, msg, Amm< T, N >::newEntry(), AmmEntry< T >::next, src, and tag.
Definition at line 1955 of file ampi.C.
References Amm< T, N >::deleteEntry(), Amm< T, N >::first, Amm< T, N >::lasth, Amm< T, N >::match(), AmmEntry< T >::msg, msg, AmmEntry< T >::next, src, tag, AmmEntry< T >::tags, and tags.
Definition at line 1980 of file ampi.C.
References Amm< T, N >::first, Amm< T, N >::match(), AmmEntry< T >::msg, msg, AmmEntry< T >::next, src, tag, AmmEntry< T >::tags, and tags.
Definition at line 2001 of file ampi.C.
References Amm< T, N >::first, n, and AmmEntry< T >::next.
Referenced by ampiCommStruct::ampiCommStruct(), final::attachBuffer(), final::detachBuffer(), ampiCommStruct::getIndexForRank(), ampiCommStruct::getSize(), final::op2AmpiOpHeader(), ampiCommStruct::operator=(), ampiCommStruct::pup(), and Amm< T, N >::pup().
void Amm< T, N >::pup | ( | PUP::er & | p, | |
AmmPupMessageFn | msgpup | |||
) | [inline] |
Definition at line 2013 of file ampi.C.
References Amm< T, N >::deleteEntry(), Amm< T, N >::first, msg, AmmEntry< T >::msg, AmmEntry< T >::next, p, Amm< T, N >::put(), Amm< T, N >::size(), tags, and AmmEntry< T >::tags.
Referenced by PUPbytes(), PUPfunctionpointer(), and PUPmarshall().
Definition at line 172 of file ampiimpl.h.
Referenced by Amm< T, N >::freeAll(), Amm< T, N >::get(), Amm< T, N >::probe(), Amm< T, N >::pup(), rangeExclOp(), rangeInclOp(), and Amm< T, N >::size().
Definition at line 173 of file ampiimpl.h.
Referenced by Amm< T, N >::get(), and Amm< T, N >::put().
Definition at line 176 of file ampiimpl.h.
Referenced by Amm< AmpiMsg *, AMPI_AMM_COLL_POOL_SIZE >::deleteEntry(), and Amm< AmpiMsg *, AMPI_AMM_COLL_POOL_SIZE >::newEntry().
std::bitset<N> Amm< T, N >::validEntries [private] |
Definition at line 177 of file ampiimpl.h.
Referenced by Amm< AmpiMsg *, AMPI_AMM_COLL_POOL_SIZE >::Amm(), Amm< AmpiMsg *, AMPI_AMM_COLL_POOL_SIZE >::deleteEntry(), and Amm< AmpiMsg *, AMPI_AMM_COLL_POOL_SIZE >::newEntry().
Definition at line 178 of file ampiimpl.h.
Referenced by Amm< AmpiMsg *, AMPI_AMM_COLL_POOL_SIZE >::deleteEntry(), and Amm< AmpiMsg *, AMPI_AMM_COLL_POOL_SIZE >::newEntry().