Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

SpectrumFactoryTable.h

Go to the documentation of this file.
00001 #if !defined(AFX_SPECTRUMFACTORYTABLE_H__E3EDA893_F360_4B4D_9537_0831B21DD02F__INCLUDED_)
00002 #define AFX_SPECTRUMFACTORYTABLE_H__E3EDA893_F360_4B4D_9537_0831B21DD02F__INCLUDED_
00003 
00011 #if _MSC_VER > 1000
00012 #pragma once
00013 #endif // _MSC_VER > 1000
00014 
00015 #include <map>
00016 #include <string>
00017 #include <map>
00018 #include <list>
00019 #include "FluxSvc/ISpectrumFactory.h"
00020 
00021 class SpectrumFactoryTable : public std::map<std::string, const ISpectrumFactory* > 
00022 {
00023 public:
00024     void addFactory(std::string name, const ISpectrumFactory* factory ) {
00025         insert(std::make_pair<std::string, const ISpectrumFactory*>(name, factory));
00026     }
00027     
00029     ISpectrum* instantiate(const std::string& name, const std::string& params) const ;
00030     ISpectrum* instantiate(const std::string& name) const ;
00031     
00032     static SpectrumFactoryTable* instance(){
00033         return (s_instance==0)? new SpectrumFactoryTable : s_instance;
00034     }
00035     
00036     
00037     std::list<std::string> spectrumList()const;
00038     
00039 private:
00040     static SpectrumFactoryTable* s_instance;
00041     SpectrumFactoryTable(){s_instance=this;}
00042     
00043     
00044 };
00045 
00046 
00047 #endif // !defined(AFX_SPECTRUMFACTORYTABLE_H__E3EDA893_F360_4B4D_9537_0831B21DD02F__INCLUDED_)

Generated on Wed Oct 16 14:01:31 2002 by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001