sim: Move SimObject resolver to sim_object.hh
The object resolver isn't serialization specific and shouldn't live in serialize.hh. Move it to sim_object.hh since it queries to the SimObject hierarchy.
This commit is contained in:
parent
66941163e5
commit
db465fd788
2 changed files with 16 additions and 11 deletions
|
@ -64,6 +64,7 @@ class IniFile;
|
||||||
class Serializable;
|
class Serializable;
|
||||||
class CheckpointIn;
|
class CheckpointIn;
|
||||||
class SimObject;
|
class SimObject;
|
||||||
|
class SimObjectResolver;
|
||||||
class EventQueue;
|
class EventQueue;
|
||||||
|
|
||||||
typedef std::ostream CheckpointOut;
|
typedef std::ostream CheckpointOut;
|
||||||
|
@ -449,17 +450,6 @@ class SerializableClass
|
||||||
SerializableClass the##OBJ_CLASS##Class(CLASS_NAME, \
|
SerializableClass the##OBJ_CLASS##Class(CLASS_NAME, \
|
||||||
OBJ_CLASS::createForUnserialize);
|
OBJ_CLASS::createForUnserialize);
|
||||||
|
|
||||||
// Base class to wrap object resolving functionality. This can be
|
|
||||||
// provided to Checkpoint to allow it to map object names onto
|
|
||||||
// object C++ objects in which to unserialize
|
|
||||||
class SimObjectResolver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~SimObjectResolver() { }
|
|
||||||
|
|
||||||
// Find a SimObject given a full path name
|
|
||||||
virtual SimObject *resolveSimObject(const std::string &name) = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class CheckpointIn
|
class CheckpointIn
|
||||||
{
|
{
|
||||||
|
|
|
@ -231,6 +231,21 @@ class SimObject : public EventManager, public Serializable, public Drainable
|
||||||
static SimObject *find(const char *name);
|
static SimObject *find(const char *name);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base class to wrap object resolving functionality.
|
||||||
|
*
|
||||||
|
* This can be provided to the serialization framework to allow it to
|
||||||
|
* map object names onto C++ objects.
|
||||||
|
*/
|
||||||
|
class SimObjectResolver
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~SimObjectResolver() { }
|
||||||
|
|
||||||
|
// Find a SimObject given a full path name
|
||||||
|
virtual SimObject *resolveSimObject(const std::string &name) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
void debugObjectBreak(const char *objs);
|
void debugObjectBreak(const char *objs);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue