]> git.mxchange.org Git - simgear.git/blobdiff - simgear/structure/subsystem_mgr.hxx
SGPath rename wrapper. Let's see what Win32 makes of it.
[simgear.git] / simgear / structure / subsystem_mgr.hxx
index 212ce58455330b4d2db7e0e48ea6c3758d08f344..60313fd4a3543a8f723f233dc66c660a0ecd2951 100644 (file)
@@ -29,8 +29,8 @@
 #include <map>
 #include <vector>
 
-#include <simgear/props/props.hxx>
 #include <simgear/timing/timestamp.hxx>
+#include <simgear/structure/SGSharedPtr.hxx>
 #include "SGSmplstat.hxx"
 
 
@@ -169,6 +169,16 @@ public:
   virtual void reinit ();
 
 
+  /**
+   * Shutdown the subsystem.
+   *
+   * <p>Release any state associated with subsystem. Shutdown happens in
+   * the reverse order to init(), so this is the correct place to do
+   * shutdown that depends on other subsystems.
+   * </p>
+   */
+  virtual void shutdown ();
+   
   /**
    * Acquire the subsystem's property bindings.
    *
@@ -297,6 +307,7 @@ public:
     virtual void init ();
     virtual void postinit ();
     virtual void reinit ();
+    virtual void shutdown ();
     virtual void bind ();
     virtual void unbind ();
     virtual void update (double delta_time_sec);
@@ -312,6 +323,7 @@ public:
     virtual bool has_subsystem (const std::string &name) const;
 
     void collectDebugTiming(bool collect);
+    void printTimingStatistics(double minMaxTime=0.0,double minJitter=0.0);
 
     /**
      * 
@@ -328,8 +340,8 @@ private:
         virtual ~Member ();
 
         virtual void update (double delta_time_sec);
-       void printTimingInformation(double time);
-        void printTimingStatistics();
+        void printTimingInformation(double time);
+        void printTimingStatistics(double minMaxTime=0.0,double minJitter=0.0);
         void updateExecutionTime(double time);
         double getTimeWarningThreshold();
         void collectDebugTiming (bool collect) { collectTimeStats = collect; };
@@ -392,6 +404,7 @@ public:
     virtual void init ();
     virtual void postinit ();
     virtual void reinit ();
+    virtual void shutdown ();
     virtual void bind ();
     virtual void unbind ();
     virtual void update (double delta_time_sec);
@@ -415,10 +428,11 @@ public:
     virtual SGSubsystem * get_subsystem(const std::string &name) const;
 
    void collectDebugTiming(bool collect);
+   void printTimingStatistics(double minMaxTime=0.0,double minJitter=0.0);
 
 private:
 
-    SGSubsystemGroup _groups[MAX_GROUPS];
+    SGSubsystemGroup* _groups[MAX_GROUPS];
     
     typedef std::map<std::string, SGSubsystem*> SubsystemDict;
     SubsystemDict _subsystem_map;