#include <PsnFrameScheduler.h>
Inheritance diagram for PsnFrameScheduler:


Public Methods | |
| PsnFrameScheduler (unsigned int numberOfSteps) | |
| constructor, specifying the numeber of different simulation stpes in a simualtion cycle | |
| virtual | ~PsnFrameScheduler () |
| destructor | |
| virtual void | addToScheduable (PsnReferenceObjectHandle *ref, unsigned int when) |
| add an object to the list of scheduable objects | |
| virtual void | removeFromScheduable (PsnReferenceObjectHandle *ref) |
| remove an object from the list of scheduable objects | |
| virtual void | schedule (PsnReferenceObjectHandle *ref) |
| mark an object as active | |
| virtual void | unschedule (PsnReferenceObjectHandle *ref) |
| mark an object as inactive | |
| virtual void | runStep (unsigned int which) |
| run the scheduler for a certain simulation step | |
Protected Attributes | |
| PsnDoubleList ** | Frames |
| tha data strcuture associated to the scheduler | |
Definition at line 25 of file PsnFrameScheduler.h.
|
|
constructor, specifying the numeber of different simulation stpes in a simualtion cycle
Definition at line 25 of file PsnFrameScheduler.cxx. References PsnScheduler::_numberOfSteps, and Frames.
00025 : 00026 PsnScheduler(numberOfSteps) 00027 { 00028 Frames = new PsnDoubleList *[_numberOfSteps]; 00029 for(int i = 0 ; i < _numberOfSteps ; i++) { 00030 00031 Frames[i]=new PsnDoubleList(); 00032 00033 } 00034 } |
|
|
destructor
Definition at line 36 of file PsnFrameScheduler.cxx. References PsnScheduler::_numberOfSteps, and Frames.
00036 {
00037 if (Frames!=NULL) {
00038 for(int i = 0 ; i <_numberOfSteps ; i ++) {
00039 if(Frames[ i ]!=NULL) delete Frames[i];
00040 }
00041 delete [] Frames;
00042 }
00043 }
|
|
||||||||||||
|
add an object to the list of scheduable objects
Implements PsnScheduler. Reimplemented in PsnBenchScheduler, and PsnReactFrameScheduler. Definition at line 46 of file PsnFrameScheduler.cxx. References Frames, and PsnDoubleList::insert(). Referenced by PsnBenchScheduler::addToScheduable().
|
|
|
remove an object from the list of scheduable objects
Implements PsnScheduler. Reimplemented in PsnBenchScheduler, and PsnReactFrameScheduler. Definition at line 52 of file PsnFrameScheduler.cxx. References PsnScheduler::_numberOfSteps, Frames, and remove(). Referenced by PsnBenchScheduler::removeFromScheduable().
00052 {
00053
00054 for (int i = 0 ; i < _numberOfSteps ; i++ ) {
00055
00056 Frames[i] -> remove ( ref ) ;
00057 }
00058 }
|
|
|
run the scheduler for a certain simulation step
Implements PsnScheduler. Reimplemented in PsnBenchScheduler, and PsnReactFrameScheduler. Definition at line 83 of file PsnFrameScheduler.cxx. References PsnDoubleList::begin(), Frames, PsSimulatedObject::getName(), PsnObjectHandle::getSimulatedObject(), PsnDoubleListElement::listeElem, and PsnDoubleList::next().
00084 {
00085 #if defined (_DEBUGSCHEDULER) || defined (_DEBUGEXEC)
00086 cerr<<"PsnFrameScheduler::runStep: Running step "<<which<<endl;
00087 #endif
00088 PsnDoubleListElement * pListe ;
00089 for (pListe = Frames [which]->begin () ;
00090 pListe != NULL ;
00091 pListe = Frames[which]->next (pListe)) {
00092 #if defined (_DEBUGSCHEDULER) || defined (_DEBUGEXEC)
00093 cerr<<"Calling compute of object "<<(*pListe).listeElem->getSimulatedObject ().getName()<<" ";
00094 #endif
00095 (*pListe).listeElem->compute () ;
00096 #if defined (_DEBUGSCHEDULER) || defined (_DEBUGEXEC)
00097 cerr<<"done "<<endl;
00098 #endif
00099 }
00100
00101 }
|
|
|
mark an object as active
Implements PsnScheduler. Reimplemented in PsnReactFrameScheduler. Definition at line 60 of file PsnFrameScheduler.cxx. References PsnScheduler::_numberOfSteps, and Frames.
00060 {
00061
00062 for (int i = 0 ; i < _numberOfSteps ; i++ ) {
00063
00064 Frames[i] -> activate ( ref ) ;
00065
00066 }
00067
00068
00069 }
|
|
|
mark an object as inactive
Implements PsnScheduler. Reimplemented in PsnReactFrameScheduler. Definition at line 71 of file PsnFrameScheduler.cxx. References PsnScheduler::_numberOfSteps, and Frames.
00071 {
00072
00073 for (int i = 0 ; i < _numberOfSteps ; i++ ) {
00074
00075 Frames[i] -> suspend ( ref ) ;
00076
00077 }
00078
00079
00080 }
|
|
|
tha data strcuture associated to the scheduler
Definition at line 57 of file PsnFrameScheduler.h. Referenced by addToScheduable(), PsnFrameScheduler(), removeFromScheduable(), runStep(), PsnBenchScheduler::runStep(), schedule(), unschedule(), and ~PsnFrameScheduler(). |
| Documentation generated on Mon Nov 25 15:26:01 2002 |
Generated with doxygen 1.2.12 by Dimitri van Heesch , 1997-2001 |