Print

Print


Commit in slic on MAIN
include/Module.hh+56added 1.1
src/Module.cc+18added 1.1
+74
2 added files
Added Module class including Verbose settings.

slic/include
Module.hh added at 1.1
diff -N Module.hh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Module.hh	16 Sep 2005 23:03:52 -0000	1.1
@@ -0,0 +1,56 @@
+// $Header: /cvs/lcd/slic/include/Module.hh,v 1.1 2005/09/16 23:03:52 jeremy Exp $
+#ifndef slic_Module_hh
+#define slic_Module_hh 1
+
+// slic
+#include "Verbose.hh"
+#include "G4ActionHandler.hh"
+
+// std
+#include <string>
+
+namespace slic
+{
+  /**
+   * @class Module
+   * @brief Base class for slic modules, providing a few common functions.
+   */
+  class Module : public Verbose
+  {
+  public:
+    enum ModuleStatus {
+      eOkay = 0,
+      eNotInitialized = 1,
+      eBadState = 2,
+      eFatalError = 3
+    };
+
+  protected:
+
+    /* Only concrete Module subclasses can access the ctor. */
+    Module(const std::string& name);
+
+  public:
+    virtual ~Module();
+
+  public:
+
+    const std::string& getName() const {
+      return m_name;
+    }
+
+    const ModuleStatus getStatus() const {
+      return m_status;
+    }
+
+    virtual void initialize() {}
+    virtual void reset() {}
+    virtual void cleanup() {}
+
+  public:
+    ModuleStatus m_status;
+    std::string m_name;
+  };
+}
+
+#endif

slic/src
Module.cc added at 1.1
diff -N Module.cc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Module.cc	16 Sep 2005 23:03:52 -0000	1.1
@@ -0,0 +1,18 @@
+// $Header: /cvs/lcd/slic/src/Module.cc,v 1.1 2005/09/16 23:03:52 jeremy Exp $
+#include "Module.hh"
+
+// slic
+#include "ModuleRegistry.hh"
+
+namespace slic
+{
+  Module::Module(const std::string& name)
+  {
+    m_name = name;
+
+    ModuleRegistry::instance()->registerModule(this);
+  }
+
+  Module::~Module()
+  {}
+}
CVSspam 0.2.8