* add the autotools buildsystem
[diffractometer.git] / src / PseudoAxes / PseudoAxesClass.h
blob149b4a81271c83fb9063a2d01dbce21def3680aa
1 //=============================================================================
2 //
3 // file : PseudoAxesClass.h
4 //
5 // description : Include for the PseudoAxesClass root class.
6 // This class is represents the singleton class for
7 // the PseudoAxes device class.
8 // It contains all properties and methods which the
9 // PseudoAxes requires only once e.g. the commands.
10 //
11 // project : TANGO Device Server
13 // $Author: $
15 // $Revision: $
17 // $Log: $
19 // copyleft : European Synchrotron Radiation Facility
20 // BP 220, Grenoble 38043
21 // FRANCE
23 //=============================================================================
25 // This file is generated by POGO
26 // (Program Obviously used to Generate tango Object)
28 // (c) - Software Engineering Group - ESRF
29 //=============================================================================
31 #ifndef _PSEUDOAXESCLASS_H
32 #define _PSEUDOAXESCLASS_H
34 #include <tango.h>
35 #include <PseudoAxes.h>
38 namespace PseudoAxes_ns
39 {//=====================================
40 // Define classes for attributes
41 //=====================================
42 class pseudoAxisNamesAttrib: public Tango::SpectrumAttr
44 public:
45 pseudoAxisNamesAttrib():SpectrumAttr("pseudoAxisNames", Tango::DEV_STRING, Tango::READ, 100) {};
46 ~pseudoAxisNamesAttrib() {};
48 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
49 {(static_cast<PseudoAxes *>(dev))->read_pseudoAxisNames(att);}
50 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
51 {return (static_cast<PseudoAxes *>(dev))->is_pseudoAxisNames_allowed(ty);}
54 class parametersAttrib: public Tango::SpectrumAttr
56 public:
57 parametersAttrib():SpectrumAttr("parameters", Tango::DEV_DOUBLE, Tango::READ_WRITE, 100) {};
58 ~parametersAttrib() {};
60 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
61 {(static_cast<PseudoAxes *>(dev))->read_parameters(att);}
62 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
63 {(static_cast<PseudoAxes *>(dev))->write_parameters(att);}
64 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
65 {return (static_cast<PseudoAxes *>(dev))->is_parameters_allowed(ty);}
68 class parametersNamesAttrib: public Tango::SpectrumAttr
70 public:
71 parametersNamesAttrib():SpectrumAttr("parametersNames", Tango::DEV_STRING, Tango::READ, 100) {};
72 ~parametersNamesAttrib() {};
74 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
75 {(static_cast<PseudoAxes *>(dev))->read_parametersNames(att);}
76 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
77 {return (static_cast<PseudoAxes *>(dev))->is_parametersNames_allowed(ty);}
80 class modeNamesAttrib: public Tango::SpectrumAttr
82 public:
83 modeNamesAttrib():SpectrumAttr("modeNames", Tango::DEV_STRING, Tango::READ, 100) {};
84 ~modeNamesAttrib() {};
86 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
87 {(static_cast<PseudoAxes *>(dev))->read_modeNames(att);}
88 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
89 {return (static_cast<PseudoAxes *>(dev))->is_modeNames_allowed(ty);}
92 class modeAttrib: public Tango::Attr
94 public:
95 modeAttrib():Attr("mode", Tango::DEV_STRING, Tango::READ_WRITE) {};
96 ~modeAttrib() {};
98 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
99 {(static_cast<PseudoAxes *>(dev))->read_mode(att);}
100 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
101 {(static_cast<PseudoAxes *>(dev))->write_mode(att);}
102 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
103 {return (static_cast<PseudoAxes *>(dev))->is_mode_allowed(ty);}
106 //=========================================
107 // Define classes for commands
108 //=========================================
109 class AxisInitClass : public Tango::Command
111 public:
112 AxisInitClass(const char *name,
113 Tango::CmdArgType in,
114 Tango::CmdArgType out,
115 const char *in_desc,
116 const char *out_desc,
117 Tango::DispLevel level)
118 :Command(name,in,out,in_desc,out_desc, level) {};
120 AxisInitClass(const char *name,
121 Tango::CmdArgType in,
122 Tango::CmdArgType out)
123 :Command(name,in,out) {};
124 ~AxisInitClass() {};
126 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
127 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
128 {return (static_cast<PseudoAxes *>(dev))->is_AxisInit_allowed(any);}
134 // The PseudoAxesClass singleton definition
137 class PseudoAxesClass : public Tango::DeviceClass
139 public:
140 // properties member data
142 // add your own data members here
143 //------------------------------------
145 public:
146 Tango::DbData cl_prop;
147 Tango::DbData cl_def_prop;
148 Tango::DbData dev_def_prop;
150 // Method prototypes
151 static PseudoAxesClass *init(const char *);
152 static PseudoAxesClass *instance();
153 ~PseudoAxesClass();
154 Tango::DbDatum get_class_property(string &);
155 Tango::DbDatum get_default_device_property(string &);
156 Tango::DbDatum get_default_class_property(string &);
158 protected:
159 PseudoAxesClass(string &);
160 static PseudoAxesClass *_instance;
161 void command_factory();
162 void get_class_property();
163 void attribute_factory(vector<Tango::Attr *> &);
164 void write_class_property();
165 void set_default_property();
167 private:
168 void device_factory(const Tango::DevVarStringArray *);
172 } // namespace PseudoAxes_ns
174 #endif // _PSEUDOAXESCLASS_H