Salome HOME
Porting to Mandrake 10.1 and new products:
[modules/kernel.git] / src / Batch / Batch_BatchManagerCatalog.hxx
1 /*
2  * BatchManagerCatalog.hxx : 
3  *
4  * Auteur : Ivan DUTKA-MALEN - EDF R&D
5  * Date   : Septembre 2004
6  * Projet : SALOME 2
7  *
8  */
9
10 #ifndef _CATALOG_H_
11 #define _CATALOG_H_
12
13 #include <string>
14 #include <map>
15 #include <pthread.h>
16
17 namespace Batch {
18
19   class FactBatchManager;
20   
21   class BatchManagerCatalog
22   {
23   public:
24     // Constructeur
25     BatchManagerCatalog();
26     // Destructeur
27     virtual ~BatchManagerCatalog();
28
29     static Batch::FactBatchManager * getFactBatchManager(const char * type);
30     static void addFactBatchManager(const char * type, Batch::FactBatchManager * pFBM);
31     virtual Batch::FactBatchManager * operator() (const char * type) const;
32
33     virtual std::map<std::string, FactBatchManager *> * dict() const;
34     virtual std::string __repr__() const;
35
36   protected:
37     static std::map<std::string, FactBatchManager *> * _p_catalog;
38     static pthread_mutex_t _mutex;
39
40   private:
41
42   };
43
44 }
45
46 #endif