GlobalSimLoopExitEvent::GlobalSimLoopExitEvent(Tick when,
const std::string &_cause,
- int c, Tick r, bool serialize)
- : GlobalEvent(when, Sim_Exit_Pri,
- IsExitEvent | (serialize ? AutoSerialize : 0)),
+ int c, Tick r)
+ : GlobalEvent(when, Sim_Exit_Pri, IsExitEvent),
cause(_cause), code(c), repeat(r)
{
}
exitSimLoop(const std::string &message, int exit_code, Tick when, Tick repeat,
bool serialize)
{
- new GlobalSimLoopExitEvent(when + simQuantum, message, exit_code, repeat,
- serialize);
-}
+ warn_if(serialize && (when != curTick() || repeat),
+ "exitSimLoop called with a delay and auto serialization. This is "
+ "currently unsupported.");
-LocalSimLoopExitEvent::LocalSimLoopExitEvent()
- : Event(Sim_Exit_Pri, IsExitEvent | AutoSerialize),
- cause(""), code(0), repeat(0)
-{
+ new GlobalSimLoopExitEvent(when + simQuantum, message, exit_code, repeat);
}
LocalSimLoopExitEvent::LocalSimLoopExitEvent(const std::string &_cause, int c,
- Tick r, bool serialize)
- : Event(Sim_Exit_Pri, IsExitEvent | (serialize ? AutoSerialize : 0)),
+ Tick r)
+ : Event(Sim_Exit_Pri, IsExitEvent),
cause(_cause), code(c), repeat(r)
{
}
void
LocalSimLoopExitEvent::serialize(CheckpointOut &cp) const
{
- paramOut(cp, "type", string("SimLoopExitEvent"));
Event::serialize(cp);
SERIALIZE_SCALAR(cause);
UNSERIALIZE_SCALAR(repeat);
}
-Serializable *
-LocalSimLoopExitEvent::createForUnserialize(CheckpointIn &cp,
- const string §ion)
-{
- return new LocalSimLoopExitEvent();
-}
-
-REGISTER_SERIALIZEABLE("LocalSimLoopExitEvent", LocalSimLoopExitEvent)
-
//
// constructor: automatically schedules at specified time
//
// non-scheduling version for createForUnserialize()
GlobalSimLoopExitEvent();
GlobalSimLoopExitEvent(Tick when, const std::string &_cause, int c,
- Tick repeat = 0, bool serialize = false);
+ Tick repeat = 0);
const std::string getCause() const { return cause; }
const int getCode() const { return code; }
public:
LocalSimLoopExitEvent();
- LocalSimLoopExitEvent(const std::string &_cause, int c, Tick repeat = 0,
- bool serialize = false);
+ LocalSimLoopExitEvent(const std::string &_cause, int c, Tick repeat = 0);
const std::string getCause() const { return cause; }
const int getCode() const { return code; }