NAMD
Public Member Functions | Public Attributes | List of all members
ReductionSet Class Reference

#include <ReductionMgr.h>

Public Member Functions

ReductionSetDatagetData (int seqNum)
 
ReductionSetDataremoveData (int seqNum)
 
 ReductionSet (int setID, int size, int numChildren)
 
 ~ReductionSet ()
 

Public Attributes

int reductionSetID
 
int nextSequenceNumber
 
int submitsRegistered
 
int dataSize
 
ReductionSetDatadataQueue
 
int requireRegistered
 
int threadIsWaiting
 
int waitingForSequenceNumber
 
CthThread waitingThread
 
int * addToRemoteSequenceNumber
 

Detailed Description

Definition at line 214 of file ReductionMgr.h.

Constructor & Destructor Documentation

◆ ReductionSet()

ReductionSet::ReductionSet ( int  setID,
int  size,
int  numChildren 
)

Definition at line 58 of file ReductionMgr.C.

References addToRemoteSequenceNumber, dataQueue, dataSize, NAMD_bug(), nextSequenceNumber, REDUCTION_MAX_RESERVED, REDUCTIONS_AMD, REDUCTIONS_BASIC, reductionSetID, requireRegistered, submitsRegistered, and threadIsWaiting.

58  {
59  if ( setID == REDUCTIONS_BASIC || setID == REDUCTIONS_AMD ) {
60  if ( size != -1 ) {
61  NAMD_bug("ReductionSet size specified for REDUCTIONS_BASIC or REDUCTIONS_AMD.");
62  }
64  }
65  if ( size == -1 ) NAMD_bug("ReductionSet size not specified.");
66  dataSize = size;
67  reductionSetID = setID;
70  dataQueue = 0;
72  threadIsWaiting = 0;
73  addToRemoteSequenceNumber = new int[numChildren];
74 }
int nextSequenceNumber
Definition: ReductionMgr.h:217
int * addToRemoteSequenceNumber
Definition: ReductionMgr.h:229
void NAMD_bug(const char *err_msg)
Definition: common.C:195
int requireRegistered
Definition: ReductionMgr.h:223
int submitsRegistered
Definition: ReductionMgr.h:218
ReductionSetData * dataQueue
Definition: ReductionMgr.h:220

◆ ~ReductionSet()

ReductionSet::~ReductionSet ( )

Definition at line 76 of file ReductionMgr.C.

References addToRemoteSequenceNumber, dataQueue, next(), and ReductionSetData::next.

76  {
77 
78  ReductionSetData *current = dataQueue;
79 
80  while ( current ) {
81  ReductionSetData *next = current->next;
82  delete current;
83  current = next;
84  }
85  delete [] addToRemoteSequenceNumber;
86 }
ReductionSetData * next
Definition: ReductionMgr.h:200
int * addToRemoteSequenceNumber
Definition: ReductionMgr.h:229
static Units next(Units u)
Definition: ParseOptions.C:48
ReductionSetData * dataQueue
Definition: ReductionMgr.h:220

Member Function Documentation

◆ getData()

ReductionSetData * ReductionSet::getData ( int  seqNum)

Definition at line 89 of file ReductionMgr.C.

References dataQueue, and dataSize.

89  {
90 
91  ReductionSetData **current = &dataQueue;
92 
93  while ( *current ) {
94  if ( (*current)->sequenceNumber == seqNum ) return *current;
95  current = &((*current)->next);
96  }
97 
98 //iout << "seq " << seqNum << " created on " << CkMyPe() << "\n" << endi;
99  *current = new ReductionSetData(seqNum, dataSize);
100  return *current;
101 }
ReductionSetData * dataQueue
Definition: ReductionMgr.h:220

◆ removeData()

ReductionSetData * ReductionSet::removeData ( int  seqNum)

Definition at line 104 of file ReductionMgr.C.

References dataQueue, NAMD_die(), and ReductionSetData::next.

104  {
105 
106  ReductionSetData **current = &dataQueue;
107 
108  while ( *current ) {
109  if ( (*current)->sequenceNumber == seqNum ) break;
110  current = &((*current)->next);
111  }
112 
113  if ( ! *current ) { NAMD_die("ReductionSet::removeData on missing seqNum"); }
114 
115  ReductionSetData *toremove = *current;
116  *current = (*current)->next;
117  return toremove;
118 }
ReductionSetData * next
Definition: ReductionMgr.h:200
void NAMD_die(const char *err_msg)
Definition: common.C:147
ReductionSetData * dataQueue
Definition: ReductionMgr.h:220

Member Data Documentation

◆ addToRemoteSequenceNumber

int* ReductionSet::addToRemoteSequenceNumber

Definition at line 229 of file ReductionMgr.h.

Referenced by ReductionSet(), and ~ReductionSet().

◆ dataQueue

ReductionSetData* ReductionSet::dataQueue

Definition at line 220 of file ReductionMgr.h.

Referenced by getData(), ReductionSet(), removeData(), and ~ReductionSet().

◆ dataSize

int ReductionSet::dataSize

Definition at line 219 of file ReductionMgr.h.

Referenced by getData(), and ReductionSet().

◆ nextSequenceNumber

int ReductionSet::nextSequenceNumber

Definition at line 217 of file ReductionMgr.h.

Referenced by ReductionSet().

◆ reductionSetID

int ReductionSet::reductionSetID

Definition at line 216 of file ReductionMgr.h.

Referenced by ReductionSet().

◆ requireRegistered

int ReductionSet::requireRegistered

Definition at line 223 of file ReductionMgr.h.

Referenced by ReductionSet().

◆ submitsRegistered

int ReductionSet::submitsRegistered

Definition at line 218 of file ReductionMgr.h.

Referenced by ReductionSet().

◆ threadIsWaiting

int ReductionSet::threadIsWaiting

Definition at line 224 of file ReductionMgr.h.

Referenced by ReductionSet().

◆ waitingForSequenceNumber

int ReductionSet::waitingForSequenceNumber

Definition at line 225 of file ReductionMgr.h.

◆ waitingThread

CthThread ReductionSet::waitingThread

Definition at line 226 of file ReductionMgr.h.


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