Adding singleton static data member and access function
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 10 Dec 2007 14:32:52 +0000 (14:32 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 10 Dec 2007 14:32:52 +0000 (14:32 +0000)
MUON/mapping/AliMpSlatMotifMap.cxx
MUON/mapping/AliMpSlatMotifMap.h

index ee62a91..d4e255d 100644 (file)
 #include "TString.h"
 #include "Riostream.h"
 
+/// \cond CLASSIMP
 ClassImp(AliMpSlatMotifMap)
+/// \endcond
+
+AliMpSlatMotifMap* AliMpSlatMotifMap::fgInstance = 0;
+
+//______________________________________________________________________________
+AliMpSlatMotifMap* AliMpSlatMotifMap::Instance()
+{
+/// Return its instance
+
+  if ( ! fgInstance) {
+    fgInstance = new AliMpSlatMotifMap();
+  }  
+    
+  return fgInstance;
+}    
 
 //_____________________________________________________________________________
 AliMpSlatMotifMap::AliMpSlatMotifMap()
@@ -48,6 +64,8 @@ fMotifTypes()
   /// ctor
   fMotifs.SetOwner(kTRUE);
   fMotifTypes.SetOwner(kTRUE);
+
+  fgInstance = this;
 }
 
 //_____________________________________________________________________________
@@ -55,6 +73,7 @@ AliMpSlatMotifMap::~AliMpSlatMotifMap()
 {
   /// dtor
   Reset();
+  fgInstance = 0;
 }
 
 //_____________________________________________________________________________
index 816e8ff..7aa1590 100644 (file)
@@ -27,6 +27,9 @@ public:
   AliMpSlatMotifMap();
   virtual ~AliMpSlatMotifMap();
   
+  // static methods
+  static AliMpSlatMotifMap* Instance();
+
   AliMpVMotif* FindMotif(const TString& id) const;
   AliMpMotifType* FindMotifType(const TString& id) const;
   
@@ -38,10 +41,12 @@ public:
   void Reset();
   
 private:
+  static AliMpSlatMotifMap* fgInstance; ///< Singleton instance
+
   TMap fMotifs; ///< collection of motifs
   TMap fMotifTypes; ///< collection of motifTypes
   
-  ClassDef(AliMpSlatMotifMap,1) // Slat motif map 
+  ClassDef(AliMpSlatMotifMap,2) // Slat motif map 
 };
 
 #endif