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 ee62a91bb136fe6584c179be48093ba94e21469a..d4e255d91fb772455afd33733580d4dcf565e016 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 816e8ff3cc58bc6182fd7aced835bb6a0b137216..7aa1590df75794a851ca3b07a2504df77932c1d5 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