From db465fd7888337e90269e1efd2af995cb6bc4ca9 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Tue, 1 Sep 2015 13:40:05 +0100 Subject: 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. --- src/sim/serialize.hh | 12 +----------- src/sim/sim_object.hh | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 11 deletions(-) (limited to 'src/sim') 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 -- cgit v1.2.3