From 4a108063524ff8bc6b9af5c78e1249e0d7f12f86 Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Sat, 8 Feb 2014 19:15:14 +0100 Subject: [PATCH] SubsystemMgr: helper to remove all subsystems. --- simgear/structure/subsystem_mgr.cxx | 10 ++++++++++ simgear/structure/subsystem_mgr.hxx | 15 ++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/simgear/structure/subsystem_mgr.cxx b/simgear/structure/subsystem_mgr.cxx index 35d6c59d..f9eb752b 100644 --- a/simgear/structure/subsystem_mgr.cxx +++ b/simgear/structure/subsystem_mgr.cxx @@ -333,6 +333,16 @@ SGSubsystemGroup::remove_subsystem (const string &name) SG_LOG(SG_GENERAL, SG_WARN, "remove_subsystem: missing:" << name); } +//------------------------------------------------------------------------------ +void SGSubsystemGroup::clearSubsystems() +{ + for( MemberVec::iterator it = _members.begin(); + it != _members.end(); + ++it ) + delete *it; + _members.clear(); +} + void SGSubsystemGroup::set_fixed_update_time(double dt) { diff --git a/simgear/structure/subsystem_mgr.hxx b/simgear/structure/subsystem_mgr.hxx index 4fd935f1..caa804e8 100644 --- a/simgear/structure/subsystem_mgr.hxx +++ b/simgear/structure/subsystem_mgr.hxx @@ -1,4 +1,3 @@ - // Written by David Megginson, started 2000-12 // // Copyright (C) 2000 David Megginson, david@megginson.com @@ -55,7 +54,6 @@ typedef std::vector::iterator eventTimeVecIterator; typedef void (*SGSubsystemTimingCb)(void* userData, const std::string& name, SampleStatistic* pStatistic); - /** * Basic interface for all FlightGear subsystems. * @@ -285,8 +283,7 @@ protected: }; typedef SGSharedPtr SGSubsystemRef; - - + /** * A group of FlightGear subsystems. */ @@ -316,6 +313,11 @@ public: virtual void remove_subsystem (const std::string &name); virtual bool has_subsystem (const std::string &name) const; + /** + * Remove all subsystems. + */ + virtual void clearSubsystems(); + void reportTiming(void); /** @@ -343,8 +345,6 @@ private: unsigned int _initPosition; }; - - /** * Manage subsystems for FlightGear. * @@ -421,7 +421,4 @@ private: SubsystemDict _subsystem_map; }; - - #endif // __SUBSYSTEM_MGR_HXX - -- 2.39.5