* do not remove dynamic devices when stopping the Diffractometer device.
[diffractometer.git] / src / TangoHKLAdapterFactory.h
bloba856b656e89d6d42b72827e197c4d8358b43e1e3
1 #ifndef _TANGOHKLADAPTERFACTORY_H_
2 #define _TANGOHKLADAPTERFACTORY_H_
4 #if ( _MSC_VER && _MSC_VER <= 1200 )
5 // Ce pragma ne devrait pas être dans ce fichier car le warning ne s'affiche
6 // que si l'on compile une version DEBUG de la librairie.
7 // Il faut utiliser l'option de compilation \wd4786 mais elle n'est présente
8 // qu'à partir de VC++7
9 #pragma warning (disable : 4786)
10 #endif
12 #include <map>
13 #include <string>
14 #include <hkl/hkl-geometry-factory.h>
16 // forward declaration
17 namespace Diffractometer_ns
19 class Diffractometer;
20 class TangoHKLAdapter;
23 namespace Diffractometer_ns
25 typedef std::map<Diffractometer*, TangoHKLAdapter*> adapterMap_t;
27 /**
28 * Class which create an association between HKL Library, Diffractometer and Pseudo Axis
30 class TangoHKLAdapterFactory
32 public :
33 static TangoHKLAdapterFactory *instance(void);
35 // register/unregister Diffractometer device
36 TangoHKLAdapter * attach_diffractometer_device(Diffractometer *device, HklGeometryType type);
38 void detach_diffractometer_device(Diffractometer *device);
40 TangoHKLAdapter *get_diffractometer_adapter(std::string const & diffractometerProxyName);
42 protected :
44 // Constructor
45 TangoHKLAdapterFactory() {};
47 // Destructor
48 virtual ~TangoHKLAdapterFactory(void);
50 private :
51 adapterMap_t _adapterMap;
53 static TangoHKLAdapterFactory *_instance;
57 #endif //_TANGOHKLADAPTERFACTORY_H_