Merge branch 'maint' into next
[diffractometer.git] / src / PseudoAxes / PseudoAxesClass.h
blobd32efd729767a18cd397ab519aa1f64d2451921d
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 initializedAttrib: public Tango::Attr
94 public:
95 initializedAttrib():Attr("initialized", Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
96 ~initializedAttrib() {};
98 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
99 {(static_cast<PseudoAxes *>(dev))->read_initialized(att);}
100 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
101 {(static_cast<PseudoAxes *>(dev))->write_initialized(att);}
102 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
103 {return (static_cast<PseudoAxes *>(dev))->is_initialized_allowed(ty);}
106 class modeAttrib: public Tango::Attr
108 public:
109 modeAttrib():Attr("mode", Tango::DEV_STRING, Tango::READ_WRITE) {};
110 ~modeAttrib() {};
112 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
113 {(static_cast<PseudoAxes *>(dev))->read_mode(att);}
114 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
115 {(static_cast<PseudoAxes *>(dev))->write_mode(att);}
116 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
117 {return (static_cast<PseudoAxes *>(dev))->is_mode_allowed(ty);}
120 //=========================================
121 // Define classes for commands
122 //=========================================
123 class ApplyCmd : public Tango::Command
125 public:
126 ApplyCmd(const char *name,
127 Tango::CmdArgType in,
128 Tango::CmdArgType out,
129 const char *in_desc,
130 const char *out_desc,
131 Tango::DispLevel level)
132 :Command(name,in,out,in_desc,out_desc, level) {};
134 ApplyCmd(const char *name,
135 Tango::CmdArgType in,
136 Tango::CmdArgType out)
137 :Command(name,in,out) {};
138 ~ApplyCmd() {};
140 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
141 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
142 {return (static_cast<PseudoAxes *>(dev))->is_Apply_allowed(any);}
147 class AxisInitClass : public Tango::Command
149 public:
150 AxisInitClass(const char *name,
151 Tango::CmdArgType in,
152 Tango::CmdArgType out,
153 const char *in_desc,
154 const char *out_desc,
155 Tango::DispLevel level)
156 :Command(name,in,out,in_desc,out_desc, level) {};
158 AxisInitClass(const char *name,
159 Tango::CmdArgType in,
160 Tango::CmdArgType out)
161 :Command(name,in,out) {};
162 ~AxisInitClass() {};
164 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
165 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
166 {return (static_cast<PseudoAxes *>(dev))->is_AxisInit_allowed(any);}
172 // The PseudoAxesClass singleton definition
175 class PseudoAxesClass : public Tango::DeviceClass
177 public:
178 // properties member data
180 // add your own data members here
181 //------------------------------------
183 public:
184 Tango::DbData cl_prop;
185 Tango::DbData cl_def_prop;
186 Tango::DbData dev_def_prop;
188 // Method prototypes
189 static PseudoAxesClass *init(const char *);
190 static PseudoAxesClass *instance();
191 ~PseudoAxesClass();
192 Tango::DbDatum get_class_property(string &);
193 Tango::DbDatum get_default_device_property(string &);
194 Tango::DbDatum get_default_class_property(string &);
196 protected:
197 PseudoAxesClass(string &);
198 static PseudoAxesClass *_instance;
199 void command_factory();
200 void get_class_property();
201 void attribute_factory(vector<Tango::Attr *> &);
202 void write_class_property();
203 void set_default_property();
205 private:
206 void device_factory(const Tango::DevVarStringArray *);
210 } // namespace PseudoAxes_ns
212 #endif // _PSEUDOAXESCLASS_H