* idem for the state and status.
[diffractometer.git] / src / TangoHKLAdapterFactory.h
blobfcf7bc3880f0ab64f525d5542de9f4b84aa1dc1c
1 #ifndef _TANGOHKLADAPTERFACTORY_H_
2 #define _TANGOHKLADAPTERFACTORY_H_
4 #include <map>
5 #include <string>
6 #include <hkl/hkl-geometry-factory.h>
7 #include <omnithread.h>
9 // forward declaration
10 namespace Diffractometer_ns
12 class Diffractometer;
13 class TangoHKLAdapter;
16 namespace Diffractometer_ns
18 typedef std::map<Diffractometer*, TangoHKLAdapter*> adapterMap_t;
20 /**
21 * Class which create an association between HKL Library, Diffractometer and Pseudo Axis
23 class TangoHKLAdapterFactory
25 public :
26 static TangoHKLAdapterFactory *instance(void);
28 // register/unregister Diffractometer device
29 TangoHKLAdapter * attach_diffractometer_device(Diffractometer *device, HklGeometryType type);
31 void detach_diffractometer_device(Diffractometer *device);
33 TangoHKLAdapter *get_diffractometer_adapter(std::string const & diffractometerProxyName);
35 protected :
37 // Constructor
38 TangoHKLAdapterFactory() {};
40 // Destructor
41 virtual ~TangoHKLAdapterFactory(void);
43 private :
44 omni_mutex _lock;
45 adapterMap_t _adapterMap;
47 static TangoHKLAdapterFactory *_instance;
51 #endif //_TANGOHKLADAPTERFACTORY_H_