00001 // $Id: GiGaAssemblyStore.h,v 1.2 2003/01/23 09:20:37 ibelyaev Exp $ 00002 // ============================================================================ 00003 // CVS tag $Name: v18r6 $ 00004 // ============================================================================ 00005 // $Log: GiGaAssemblyStore.h,v $ 00006 // Revision 1.2 2003/01/23 09:20:37 ibelyaev 00007 // few fixes for Win2K platform 00008 // 00009 // Revision 1.1 2002/01/22 18:24:41 ibelyaev 00010 // Vanya: update for newer versions of Geant4 and Gaudi 00011 // 00012 // ============================================================================ 00013 #ifndef GIGACNV_GIGAASSEMBLYSTORE_H 00014 #define GIGACNV_GIGAASSEMBLYSTORE_H 1 00015 // Include files 00016 // STD & STL 00017 #include <vector> 00018 // GaudiKernel 00019 #include "GaudiKernel/StatusCode.h" 00020 // forward declaration 00021 class GiGaAssembly ; 00022 00031 class GiGaAssemblyStore 00032 { 00033 public: 00034 00037 friend class GiGaAssembly; 00038 00039 typedef std::vector<GiGaAssembly*> Assemblies; 00040 00041 protected: 00042 00045 GiGaAssemblyStore(); 00046 00047 public: 00048 00051 ~GiGaAssemblyStore(); 00052 00053 public: 00054 00058 static GiGaAssemblyStore* store() ; 00059 00063 GiGaAssembly* assembly( const std::string& Name ) ; 00064 00068 StatusCode clear() ; 00069 00070 protected: 00071 00076 StatusCode addAssembly ( GiGaAssembly* assembly ) ; 00077 00082 StatusCode removeAssembly ( GiGaAssembly* assembly ) ; 00083 00084 private: 00085 00086 GiGaAssemblyStore 00087 ( const GiGaAssemblyStore& ) ; 00088 00089 GiGaAssemblyStore& operator= 00090 ( const GiGaAssemblyStore& ) ; 00091 00092 private: 00093 00094 Assemblies m_assemblies ; 00095 }; 00096 00097 // ============================================================================ 00098 // End 00099 // ============================================================================ 00100 #endif // GIGACNV_GIGAASSEMBLYSTORE_H 00101 // ============================================================================