MtcpCheckpointManager.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "../external/Signals/Signal.h"
00004 #include "timer.h"
00005 // #include "dmtcpaware.h"
00006 
00012 class MtcpCheckpointManager
00013 {
00014         public:
00015                 
00017                 inline void checkpointingTimeFrame();
00018 
00020                 inline void connectTimer(Timer & tim);
00021                 
00023                 inline void disconnectTimer(Timer & tim);
00024 
00025 
00026         protected:
00029                 Gallant::Signal0<void> pauseTimerSig;
00030                 Gallant::Signal0<void> continueTimerSig;
00034                 inline void pauseTimers()       ;
00035 
00036                 inline void continueTimers()    ;
00037 
00038                 inline void mtcp_managed_ok();
00039         
00040                 inline void mtcp_managed_no();
00041         
00042 };
00043 
00044 
00045 inline void     MtcpCheckpointManager::checkpointingTimeFrame()
00046 {
00047                 mtcp_managed_ok();
00048                 mtcp_managed_no();
00049 }
00050 
00051 inline void     MtcpCheckpointManager::connectTimer(Timer & tim)
00052 {
00053         pauseTimerSig.Connect(&tim, & Timer::pauseTimer );
00054         continueTimerSig.Connect(&tim, & Timer::continueTimer );
00055         
00056 }
00057 
00058 inline void     MtcpCheckpointManager::disconnectTimer(Timer & tim)
00059 {
00060         pauseTimerSig.Disconnect(&tim, & Timer::pauseTimer );
00061         continueTimerSig.Disconnect(&tim, & Timer::continueTimer );
00062 }
00063 
00064 
00066 inline void     MtcpCheckpointManager::pauseTimers()    
00067 {
00068         pauseTimerSig();
00069 };
00070 
00072 inline void     MtcpCheckpointManager::continueTimers() 
00073 {
00074         continueTimerSig();
00075 };
00076 
00078 inline void     MtcpCheckpointManager::mtcp_managed_ok()
00079 {
00080         pauseTimers();
00081         //dmtcpDelayCheckpointsUnlock( )
00082         #ifdef MTCP
00083                 mtcp_ok();
00084         #endif
00085 }
00086 
00087 
00089 inline void     MtcpCheckpointManager::mtcp_managed_no()
00090 {
00091         #ifdef MTCP
00092                 mtcp_no(); 
00093         #endif
00094         //dmtcpDelayCheckpointsLock ( )
00095         continueTimers();
00096 }
Generated on Tue Nov 23 13:10:52 2010 for centerfocus by  doxygen 1.6.3