summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2015-09-01 13:40:05 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2015-09-01 13:40:05 +0100
commitdb465fd7888337e90269e1efd2af995cb6bc4ca9 (patch)
tree531a99e061840b16bf31c0dde335be476343f77e /src/sim
parent66941163e50abceaa86c5eb6a18de6bbc2ec4ef8 (diff)
downloadgem5-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.hh12
-rw-r--r--src/sim/sim_object.hh15
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