COPASI API
4.16.103
|
#include <CProcessQueue.h>
Classes | |
class | CAction |
class | CKey |
Public Types | |
typedef void(* | EventCallBack )(void *, CEvent::Type type) |
typedef std::multimap< CKey, CAction >::iterator | iterator |
typedef std::pair < std::multimap< CKey, CAction > ::iterator, std::multimap < CKey, CAction >::iterator > | range |
typedef iterator(* | resolveSimultaneousAssignments )(const std::multimap< CKey, CAction > &, const C_FLOAT64 &, const bool &, const size_t &) |
Public Member Functions | |
bool | addAssignment (const C_FLOAT64 &executionTime, const bool &equality, const CVector< C_FLOAT64 > &values, CMathEvent *pEvent) |
bool | addCalculation (const C_FLOAT64 &executionTime, const bool &equality, CMathEvent *pEvent) |
CProcessQueue () | |
CProcessQueue (const CProcessQueue &src) | |
const bool & | getContinueSimultaneousEvents () const |
const C_FLOAT64 & | getProcessQueueExecutionTime () const |
void | initialize (CMathModel *pMathModel) |
void | printDebug () const |
bool | process (const C_FLOAT64 &time, const bool &priorToOutput, resolveSimultaneousAssignments pResolveSimultaneousAssignments) |
void | setContinueSimultaneousEvents (const bool &continueSimultaneousEvents) |
void | setEventCallBack (void *pTask, EventCallBack ecb) |
~CProcessQueue () | |
Private Member Functions | |
void | destroyEventId (const size_t &eventId) |
bool | executeAction (CProcessQueue::iterator itAction) |
iterator | getAction () |
bool | rootsFound () |
Static Private Member Functions | |
static bool | notEmpty (const range &range) |
Private Attributes | |
std::multimap< CKey, CAction > | mActions |
size_t | mCascadingLevel |
bool | mContinueSimultaneousEvents |
bool | mEquality |
std::set< size_t > | mEventIdSet |
size_t | mExecutionCounter |
size_t | mExecutionLimit |
void * | mpCallbackTask |
EventCallBack | mpEventCallBack |
CMathModel * | mpMathModel |
resolveSimultaneousAssignments | mpResolveSimultaneousAssignments |
CVector< C_FLOAT64 > * | mpRootValuesAfter |
CVector< C_FLOAT64 > * | mpRootValuesBefore |
CVector< C_INT > | mRootsFound |
CVector< C_FLOAT64 > | mRootValues1 |
CVector< C_FLOAT64 > | mRootValues2 |
bool | mSimultaneousAssignmentsFound |
C_FLOAT64 | mTime |
Friends | |
std::ostream & | operator<< (std::ostream &os, const CKey &o) |
std::ostream & | operator<< (std::ostream &os, const CAction &o) |
std::ostream & | operator<< (std::ostream &os, const CProcessQueue &o) |
Definition at line 24 of file CProcessQueue.h.
typedef void(* CProcessQueue::EventCallBack)(void *, CEvent::Type type) |
This is the type for an event call back function
Definition at line 202 of file CProcessQueue.h.
typedef std::multimap< CKey, CAction >::iterator CProcessQueue::iterator |
Definition at line 190 of file CProcessQueue.h.
typedef std::pair< std::multimap< CKey, CAction >::iterator, std::multimap< CKey, CAction >::iterator > CProcessQueue::range |
Definition at line 192 of file CProcessQueue.h.
typedef iterator(* CProcessQueue::resolveSimultaneousAssignments)(const std::multimap< CKey, CAction > &, const C_FLOAT64 &, const bool &, const size_t &) |
Definition at line 194 of file CProcessQueue.h.
CProcessQueue::CProcessQueue | ( | ) |
Default constructor
Definition at line 148 of file CProcessQueue.cpp.
CProcessQueue::CProcessQueue | ( | const CProcessQueue & | src | ) |
Copy constructor
Definition at line 169 of file CProcessQueue.cpp.
CProcessQueue::~CProcessQueue | ( | ) |
bool CProcessQueue::addAssignment | ( | const C_FLOAT64 & | executionTime, |
const bool & | equality, | ||
const CVector< C_FLOAT64 > & | values, | ||
CMathEvent * | pEvent | ||
) |
Add an assignment to the process queue.
const | C_FLOAT64 & executionTime |
const | bool & equality |
const | CVector< C_FLOAT64 > & values |
CMathEvent | * pEvent |
Definition at line 193 of file CProcessQueue.cpp.
References mActions, mCascadingLevel, and mTime.
Referenced by CMathEvent::fire().
bool CProcessQueue::addCalculation | ( | const C_FLOAT64 & | executionTime, |
const bool & | equality, | ||
CMathEvent * | pEvent | ||
) |
Add a calculation to the process queue.
const | C_FLOAT64 & executionTime |
const | bool & equality |
CMathEvent | * pEvent |
Definition at line 212 of file CProcessQueue.cpp.
References mActions, mCascadingLevel, and mTime.
Referenced by CMathEvent::fire().
|
private |
Destroy a unique eventId @param const size_t & eventId;
Definition at line 471 of file CProcessQueue.cpp.
References mEventIdSet.
|
private |
Execute the actions
CProcessQueue::iterator | itAction |
Definition at line 363 of file CProcessQueue.cpp.
References mActions, and mExecutionCounter.
Referenced by process().
|
private |
Retrieve the currently pending actions
Definition at line 326 of file CProcessQueue.cpp.
References CCopasiMessage::EXCEPTION, mActions, mCascadingLevel, MCMathModel, mContinueSimultaneousEvents, mEquality, mpResolveSimultaneousAssignments, mSimultaneousAssignmentsFound, mTime, and CCopasiMessage::WARNING_FILTERED.
Referenced by process().
const bool & CProcessQueue::getContinueSimultaneousEvents | ( | ) | const |
Retrieve whether to continue on simultaneous events.
Definition at line 494 of file CProcessQueue.cpp.
References mContinueSimultaneousEvents.
const C_FLOAT64 & CProcessQueue::getProcessQueueExecutionTime | ( | ) | const |
Retrieve the next execution time scheduled in the process queue
Definition at line 476 of file CProcessQueue.cpp.
References C_FLOAT64, and mActions.
Referenced by CMathModel::getProcessQueueExecutionTime(), and process().
void CProcessQueue::initialize | ( | CMathModel * | pMathModel | ) |
Clear the process queue.
CMathModel | * pMathModel |
Definition at line 230 of file CProcessQueue.cpp.
References CMathModel::getInitialTime(), CMathModel::getNumRoots(), mActions, mEventIdSet, mpMathModel, mpRootValuesAfter, mpRootValuesBefore, mRootsFound, mRootValues1, mRootValues2, mSimultaneousAssignmentsFound, mTime, and CVector< CType >::resize().
Referenced by CMathModel::applyInitialValues().
|
staticprivate |
Check whether a range is not empty
const | range & range bool notEmpty |
Definition at line 466 of file CProcessQueue.cpp.
|
inline |
This prints debugging info to stdout
Definition at line 295 of file CProcessQueue.h.
bool CProcessQueue::process | ( | const C_FLOAT64 & | time, |
const bool & | priorToOutput, | ||
resolveSimultaneousAssignments | pResolveSimultaneousAssignments | ||
) |
Process the queue.
const | C_FLOAT64 & time |
const | bool & priorToOutput |
resolveSimultaneousAssignments | pResolveSimultaneousAssignments |
Definition at line 252 of file CProcessQueue.cpp.
References CMathModel::evaluateRoots(), executeAction(), getAction(), getProcessQueueExecutionTime(), mActions, max, mCascadingLevel, mEquality, mExecutionCounter, mpMathModel, mpResolveSimultaneousAssignments, mpRootValuesBefore, mRootsFound, mTime, CMathModel::processRoots(), and rootsFound().
Referenced by CMathModel::processQueue().
|
private |
Check whether the executions of assignment lead to newly found roots
Definition at line 377 of file CProcessQueue.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, C_INT, CMathModel::evaluateRoots(), CMathModel::getRootFinders(), mpMathModel, mpRootValuesAfter, mpRootValuesBefore, mRootsFound, and CVectorCore< CType >::size().
Referenced by process().
void CProcessQueue::setContinueSimultaneousEvents | ( | const bool & | continueSimultaneousEvents | ) |
Set whether to continue on simultaneous events
const | bool & continueSimultaneousEvents |
Definition at line 489 of file CProcessQueue.cpp.
References mContinueSimultaneousEvents.
Referenced by CTrajectoryTask::initialize().
void CProcessQueue::setEventCallBack | ( | void * | pTask, |
EventCallBack | ecb | ||
) |
Sets an event call back. The call back function must be a static function that receives a "this" pointer as first argument. The function is called when the actual assignment takes place, or when the assignment would take place in case the event has no assignment. The function is called with an integer argument: 1: An assignment has happened 2: A cut plane was crossed
Definition at line 499 of file CProcessQueue.cpp.
References mpCallbackTask, mpEventCallBack, and pTask.
Referenced by CCrossSectionTask::finish(), CCrossSectionTask::process(), and CCrossSectionTask::restore().
|
friend |
|
friend |
|
friend |
Definition at line 505 of file CProcessQueue.cpp.
An ordered list of calculations in the queue.
Definition at line 337 of file CProcessQueue.h.
Referenced by addAssignment(), addCalculation(), executeAction(), getAction(), getProcessQueueExecutionTime(), initialize(), operator<<(), and process().
|
private |
The cascading level of events
Definition at line 362 of file CProcessQueue.h.
Referenced by addAssignment(), addCalculation(), getAction(), CProcessQueue::CKey::operator<(), and process().
|
private |
A flag indicating to continue when simultaneous events are encountered.
Definition at line 412 of file CProcessQueue.h.
Referenced by getAction(), getContinueSimultaneousEvents(), and setContinueSimultaneousEvents().
|
private |
Indicate whether we processing equality or inequality
Definition at line 357 of file CProcessQueue.h.
Referenced by getAction(), CProcessQueue::CKey::operator<(), and process().
|
private |
A set of currently active event ids
Definition at line 372 of file CProcessQueue.h.
Referenced by destroyEventId(), and initialize().
|
private |
A counter of the execution steps for the current process
Definition at line 347 of file CProcessQueue.h.
Referenced by executeAction(), and process().
|
private |
The limit of execution steps allowed for call to process
Definition at line 342 of file CProcessQueue.h.
|
private |
the object to which the call back function belongs
Definition at line 417 of file CProcessQueue.h.
Referenced by setEventCallBack().
|
private |
the pointer to the call back function
Definition at line 422 of file CProcessQueue.h.
Referenced by setEventCallBack().
|
private |
A pointer to the math model the process queue belongs to.
Definition at line 377 of file CProcessQueue.h.
Referenced by initialize(), process(), and rootsFound().
|
private |
A pointer to a call back method for resolving simultaneous event assignments
Definition at line 407 of file CProcessQueue.h.
Referenced by getAction(), and process().
Definition at line 402 of file CProcessQueue.h.
Referenced by initialize(), and rootsFound().
Definition at line 397 of file CProcessQueue.h.
Referenced by initialize(), process(), and rootsFound().
Definition at line 382 of file CProcessQueue.h.
Referenced by initialize(), process(), and rootsFound().
Definition at line 387 of file CProcessQueue.h.
Referenced by initialize().
Definition at line 392 of file CProcessQueue.h.
Referenced by initialize().
|
private |
A flag indicating that simultaneous assignments have been found.
Definition at line 367 of file CProcessQueue.h.
Referenced by getAction(), and initialize().
|
private |
The current time
Definition at line 352 of file CProcessQueue.h.
Referenced by addAssignment(), addCalculation(), getAction(), initialize(), and process().