* now the PsudoAxesconfig is public to allow a better integration with the dynamic...
[diffractometer.git] / src / PseudoAxes / PseudoAxesClass.h
blob02f85b1f346ae9011c0cc54de6f16a6540ba17a2
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 AxisInitClass : public Tango::Command
125 public:
126 AxisInitClass(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 AxisInitClass(const char *name,
135 Tango::CmdArgType in,
136 Tango::CmdArgType out)
137 :Command(name,in,out) {};
138 ~AxisInitClass() {};
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_AxisInit_allowed(any);}
148 // The PseudoAxesClass singleton definition
151 class PseudoAxesClass : public Tango::DeviceClass
153 public:
154 // properties member data
156 // add your own data members here
157 //------------------------------------
159 public:
160 Tango::DbData cl_prop;
161 Tango::DbData cl_def_prop;
162 Tango::DbData dev_def_prop;
164 // Method prototypes
165 static PseudoAxesClass *init(const char *);
166 static PseudoAxesClass *instance();
167 ~PseudoAxesClass();
168 Tango::DbDatum get_class_property(string &);
169 Tango::DbDatum get_default_device_property(string &);
170 Tango::DbDatum get_default_class_property(string &);
172 protected:
173 PseudoAxesClass(string &);
174 static PseudoAxesClass *_instance;
175 void command_factory();
176 void get_class_property();
177 void attribute_factory(vector<Tango::Attr *> &);
178 void write_class_property();
179 void set_default_property();
181 private:
182 void device_factory(const Tango::DevVarStringArray *);
186 } // namespace PseudoAxes_ns
188 #endif // _PSEUDOAXESCLASS_H