00001 #include "ECF_base.h" 00002 #include "TermMaxTimeOp.h" 00003 00004 00005 void TermMaxTimeOp::registerParameters(StateP state) 00006 { 00007 uint *value = new uint(0); 00008 state->getRegistry()->registerEntry("term.maxtime", (voidP) value, ECF::UINT); 00009 } 00010 00011 00012 bool TermMaxTimeOp::initialize(StateP state) 00013 { 00014 if(!state->getRegistry()->isModified("term.maxtime")) 00015 return false; 00016 00017 voidP sptr = state->getRegistry()->getEntry("term.maxtime"); 00018 maxTime_ = *((uint*) sptr.get()); 00019 00020 return true; 00021 } 00022 00023 00024 bool TermMaxTimeOp::operate(StateP state) 00025 { 00026 if(state->getElapsedTime() > maxTime_) { 00027 state->setTerminateCond(); 00028 ECF_LOG(state, 1, "Termination: designated time elapsed. (" + uint2str(maxTime_) + " seconds)"); 00029 } 00030 00031 return true; 00032 }