PPL Logo

Amm< T, N > Class Template Reference

#include <ampiimpl.h>

Inheritance diagram for Amm< T, N >:

Inheritance graph
[legend]
Collaboration diagram for Amm< T, N >:

Collaboration graph
[legend]

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
get (int tag, int src, int *rtags=NULL) noexcept
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

Detailed Description

template<class T, size_t N>
class Amm< T, N >

Definition at line 170 of file ampiimpl.h.


Constructor & Destructor Documentation

template<class T, size_t N>
Amm< T, N >::Amm (  )  [inline]

Definition at line 181 of file ampiimpl.h.

template<class T, size_t N>
Amm< T, N >::~Amm (  ) 


Member Function Documentation

template<class T, size_t N>
AmmEntry<T>* Amm< T, N >::newEntry ( int  tag,
int  src,
msg 
) [inline]

Definition at line 183 of file ampiimpl.h.

Referenced by Amm< T, N >::put().

Here is the caller graph for this function:

template<class T, size_t N>
AmmEntry<T>* Amm< T, N >::newEntry ( msg  )  [inline]

Definition at line 199 of file ampiimpl.h.

template<class T, size_t N>
void Amm< T, N >::deleteEntry ( AmmEntry< T > *  ent  )  [inline]

Definition at line 215 of file ampiimpl.h.

Referenced by Amm< T, N >::freeAll(), Amm< T, N >::get(), and Amm< T, N >::pup().

Here is the caller graph for this function:

template<typename T, size_t N>
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.

Here is the call graph for this function:

template<typename T, size_t N>
void Amm< T, N >::flushMsgs (  )  [inline]

Definition at line 1904 of file ampi.C.

References msg.

template<typename T, size_t N>
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().

Here is the caller graph for this function:

template<typename T, size_t N>
void Amm< T, N >::put ( 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().

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T, size_t N>
void Amm< T, N >::put ( int  tag,
int  src,
msg 
) [inline]

Definition at line 1922 of file ampi.C.

References Amm< T, N >::lasth, msg, Amm< T, N >::newEntry(), AmmEntry< T >::next, src, and tag.

Here is the call graph for this function:

template<typename T, size_t N>
T Amm< T, N >::get ( int  tag,
int  src,
int rtags = NULL 
) [inline]

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.

Here is the call graph for this function:

template<typename T, size_t N>
T Amm< T, N >::probe ( int  tag,
int  src,
int rtags 
) [inline]

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.

Here is the call graph for this function:

template<typename T, size_t N>
int Amm< T, N >::size ( void   )  const [inline]

template<typename T, size_t N>
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().

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

template<class T, size_t N>
AmmEntry<T>* Amm< T, N >::first

template<class T, size_t N>
AmmEntry<T>** Amm< T, N >::lasth

Definition at line 173 of file ampiimpl.h.

Referenced by Amm< T, N >::get(), and Amm< T, N >::put().

template<class T, size_t N>
int Amm< T, N >::startIdx [private]

template<class T, size_t N>
std::bitset<N> Amm< T, N >::validEntries [private]

template<class T, size_t N>
std::array<AmmEntry<T>, N> Amm< T, N >::entryPool [private]


The documentation for this class was generated from the following files:

Generated on Mon Sep 21 08:17:19 2020 for Charm++ by  doxygen 1.5.5