* new from/to_proxy for the AxisAdpater class
[diffractometer.git] / src / TangoHKLAdapterFactory.h
blob1d8d8cfe5192112ee7bc96ae267e64545566ded9
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 DiffractometerDevice_ns
19 class DiffractometerDevice;
20 class TangoHKLAdapter;
23 namespace DiffractometerDevice_ns
25 typedef std::map<DiffractometerDevice*, 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 // Unregister diffractometer
36 TangoHKLAdapter * attach_device(DiffractometerDevice *device, HklGeometryType type);
38 void detach_device(DiffractometerDevice *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_