{
}
+void
+SGSubsystem::shutdown ()
+{
+}
+
void
SGSubsystem::bind ()
{
_members[i]->subsystem->reinit();
}
+void
+SGSubsystemGroup::shutdown ()
+{
+ // reverse order to prevent order dependency problems
+ for (unsigned int i = _members.size(); i > 0; i--)
+ _members[i-1]->subsystem->shutdown();
+}
+
void
SGSubsystemGroup::bind ()
{
_groups[i]->reinit();
}
+void
+SGSubsystemMgr::shutdown ()
+{
+ // reverse order to prevent order dependency problems
+ for (int i = MAX_GROUPS-1; i >= 0; i--)
+ _groups[i]->shutdown();
+}
+
+
void
SGSubsystemMgr::bind ()
{
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.
*
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);
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);