#include <source/toolbox/parallel/Schedule.h>
Inheritance diagram for SAMRAI::tbox::Schedule:
Public Member Functions | |
Schedule () | |
virtual | ~Schedule () |
void | addTransaction (const Pointer< Transaction > &transaction) |
void | appendTransaction (const Pointer< Transaction > &transaction) |
void | communicate () |
void | beginCommunication () |
void | finalizeCommunication () |
void | printClassData (std::ostream &stream) const |
Classes | |
struct | ScheduleMessageStream |
Note that since the transactions are stored in lists, the "add" and "append" mimick the semantics of the List class. That is, addTransaction() will put the transaction at the head of the list, while appendTransaction() will put the transaction at the end of the list. This flexibility is provided for situations where the order of transaction execution matters. Regardless of which method is used to assemble the transactions, they will be executed in the order in which they appear in the list.
SAMRAI::tbox::Schedule::Schedule | ( | ) |
Create an empty schedule with no transactions.
SAMRAI::tbox::Schedule::~Schedule | ( | ) | [virtual] |
The destructor deletes the schedule and all associated storage. Note that the schedule should not be deleted during a communication phase.
void SAMRAI::tbox::Schedule::addTransaction | ( | const Pointer< Transaction > & | transaction | ) |
Add a data transaction to the head of the list of transactions already assembled in the schedule. The transaction must involve the local processor as either a source or destination or both. If the transaction does not include the local processor, then the transaction is not placed on the schedule.
transaction | Pointer to transaction added to the schedule. |
void SAMRAI::tbox::Schedule::appendTransaction | ( | const Pointer< Transaction > & | transaction | ) |
Append a data transaction to the tail of the list of transactions already assembled in the schedule. The transaction must involve the local processor as either a source or destination or both. If the transaction does not include the local processor, then the transaction is not placed on the schedule.
transaction | Pointer to transaction appended to the schedule. |
void SAMRAI::tbox::Schedule::communicate | ( | ) |
Perform the communication described by the schedule.
void SAMRAI::tbox::Schedule::beginCommunication | ( | ) |
Begin the communication process but do not deliver data to the transaction objects. Member function finalizeCommunication()
must be called to finish the message communication.
void SAMRAI::tbox::Schedule::finalizeCommunication | ( | ) |
Finish the communication and deliver the messages. This member function completes communication began by beginCommunication()
.
void SAMRAI::tbox::Schedule::printClassData | ( | std::ostream & | stream | ) | const |
Print class data to the specified output stream.