diff options
author | Andreas Sandberg <andreas.sandberg@arm.com> | 2015-09-01 13:40:05 +0100 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2015-09-01 13:40:05 +0100 |
commit | db465fd7888337e90269e1efd2af995cb6bc4ca9 (patch) | |
tree | 531a99e061840b16bf31c0dde335be476343f77e /src/sim | |
parent | 66941163e50abceaa86c5eb6a18de6bbc2ec4ef8 (diff) | |
download | gem5-db465fd7888337e90269e1efd2af995cb6bc4ca9.tar.xz |
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.
Diffstat (limited to 'src/sim')
-rw-r--r-- | src/sim/serialize.hh | 12 | ||||
-rw-r--r-- | src/sim/sim_object.hh | 15 |
2 files changed, 16 insertions, 11 deletions
diff --git a/src/sim/serialize.hh b/src/sim/serialize.hh index a0be62db5..356547881 100644 --- a/src/sim/serialize.hh +++ b/src/sim/serialize.hh @@ -64,6 +64,7 @@ class IniFile; class Serializable; class CheckpointIn; class SimObject; +class SimObjectResolver; class EventQueue; typedef std::ostream CheckpointOut; @@ -449,17 +450,6 @@ class SerializableClass SerializableClass the##OBJ_CLASS##Class(CLASS_NAME, \ 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 { diff --git a/src/sim/sim_object.hh b/src/sim/sim_object.hh index c56dfd8bf..d2cedf5be 100644 --- a/src/sim/sim_object.hh +++ b/src/sim/sim_object.hh @@ -231,6 +231,21 @@ class SimObject : public EventManager, public Serializable, public Drainable 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 void debugObjectBreak(const char *objs); #endif |