448,449d447
< paramOut(cp, "numMainEventQueues", numMainEventQueues);
<
456d453
< paramIn(cp, "numMainEventQueues", numMainEventQueues);
503,504d499
< for (uint32_t i = 0; i < numMainEventQueues; ++i)
< mainEventQueue[i]->serializeSection(outstream, "MainEventQueue");
514c509
< for (uint32_t i = 0; i < numMainEventQueues; ++i) {
---
> for (uint32_t i = 0; i < numMainEventQueues; ++i)
516,517d510
< mainEventQueue[i]->unserializeSection(cp, "MainEventQueue");
< }
552,604d544
<
< ////////////////////////////////////////////////////////////////////////
< //
< // SerializableClass member definitions
< //
< ////////////////////////////////////////////////////////////////////////
<
< // Map of class names to SerializableBuilder creation functions.
< // Need to make this a pointer so we can force initialization on the
< // first reference; otherwise, some SerializableClass constructors
< // may be invoked before the classMap constructor.
< map<string, SerializableClass::CreateFunc> *SerializableClass::classMap = 0;
<
< // SerializableClass constructor: add mapping to classMap
< SerializableClass::SerializableClass(const string &className,
< CreateFunc createFunc)
< {
< if (classMap == NULL)
< classMap = new map<string, SerializableClass::CreateFunc>();
<
< if ((*classMap)[className])
< fatal("Error: simulation object class %s redefined\n", className);
<
< // add className --> createFunc to class map
< (*classMap)[className] = createFunc;
< }
<
< //
< //
< Serializable *
< SerializableClass::createObject(CheckpointIn &cp, const string &section)
< {
< string className;
<
< if (!cp.find(section, "type", className)) {
< fatal("Serializable::create: no 'type' entry in section '%s'.\n",
< section);
< }
<
< CreateFunc createFunc = (*classMap)[className];
<
< if (createFunc == NULL) {
< fatal("Serializable::create: no create function for class '%s'.\n",
< className);
< }
<
< Serializable *object = createFunc(cp, section);
<
< assert(object != NULL);
<
< return object;
< }
<
613,621d552
< Serializable *
< Serializable::create(CheckpointIn &cp, const string &section)
< {
< Serializable *object = SerializableClass::createObject(cp, section);
< object->unserializeSection(cp, section);
< return object;
< }
<
<