Skip to content
Snippets Groups Projects
SimulatedE2PSClass.h 10.8 KiB
Newer Older
Claudio Scafuri's avatar
Claudio Scafuri committed
/*----- PROTECTED REGION ID(SimulatedE2PSClass.h) ENABLED START -----*/
/* clang-format on */
//=============================================================================
//
// file :        SimulatedE2PSClass.h
//
// description : Include for the SimulatedE2PS root class.
//               This class is the singleton class for
//                the SimulatedE2PS device class.
//               It contains all properties and methods which the
//               SimulatedE2PS requires only once e.g. the commands.
//
// project :     SimulatedE2PS
//
// This file is part of Tango device class.
//
// Tango is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Tango is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Tango.  If not, see <http://www.gnu.org/licenses/>.
//
//
//
//=============================================================================
//                This file is generated by POGO
//        (Program Obviously used to Generate tango Object)
//=============================================================================


#ifndef SimulatedE2PSClass_H
#define SimulatedE2PSClass_H

#include <tango/tango.h>
#include "SimulatedE2PS.h"

/* clang-format off */
/*----- PROTECTED REGION END -----*/	//	SimulatedE2PSClass.h


namespace SimulatedE2PS_ns
{
/*----- PROTECTED REGION ID(SimulatedE2PSClass::classes for dynamic creation) ENABLED START -----*/
/* clang-format on */

/* clang-format off */
/*----- PROTECTED REGION END -----*/	//	SimulatedE2PSClass::classes for dynamic creation

//=========================================
//	Define classes for attributes
//=========================================
//	Attribute current class definition
class currentAttrib: public Tango::Attr
{
public:
	currentAttrib():Attr("current",
			Tango::DEV_DOUBLE, Tango::READ_WRITE) {}
	~currentAttrib() {}
	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<SimulatedE2PS *>(dev))->read_current(att);}
	virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
		{(static_cast<SimulatedE2PS *>(dev))->write_current(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<SimulatedE2PS *>(dev))->is_current_allowed(ty);}
};

//	Attribute voltage class definition
class voltageAttrib: public Tango::Attr
{
public:
	voltageAttrib():Attr("voltage",
			Tango::DEV_DOUBLE, Tango::READ) {}
	~voltageAttrib() {}
	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<SimulatedE2PS *>(dev))->read_voltage(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<SimulatedE2PS *>(dev))->is_voltage_allowed(ty);}
};

//	Attribute currentSet class definition
class currentSetAttrib: public Tango::Attr
{
public:
	currentSetAttrib():Attr("currentSet",
			Tango::DEV_DOUBLE, Tango::READ) {}
	~currentSetAttrib() {}
	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<SimulatedE2PS *>(dev))->read_currentSet(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<SimulatedE2PS *>(dev))->is_currentSet_allowed(ty);}
};

//	Attribute CurrentRipple class definition
class CurrentRippleAttrib: public Tango::Attr
{
public:
	CurrentRippleAttrib():Attr("CurrentRipple",
			Tango::DEV_DOUBLE, Tango::READ_WRITE) {}
	~CurrentRippleAttrib() {}
	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<SimulatedE2PS *>(dev))->read_CurrentRipple(att);}
	virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
		{(static_cast<SimulatedE2PS *>(dev))->write_CurrentRipple(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<SimulatedE2PS *>(dev))->is_CurrentRipple_allowed(ty);}
};

//	Attribute AddRipple class definition
class AddRippleAttrib: public Tango::Attr
{
public:
	AddRippleAttrib():Attr("AddRipple",
			Tango::DEV_BOOLEAN, Tango::READ_WRITE) {}
	~AddRippleAttrib() {}
	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<SimulatedE2PS *>(dev))->read_AddRipple(att);}
	virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
		{(static_cast<SimulatedE2PS *>(dev))->write_AddRipple(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<SimulatedE2PS *>(dev))->is_AddRipple_allowed(ty);}
};


//=========================================
//	Define classes for commands
//=========================================
//	Command On class definition
class OnClass : public Tango::Command
{
public:
	OnClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out,
				   const char        *in_desc,
				   const char        *out_desc,
				   Tango::DispLevel  level)
	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}

	OnClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out)
	:Command(cmd_name,in,out)	{}
	~OnClass() {}

	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
	{return (static_cast<SimulatedE2PS *>(dev))->is_On_allowed(any);}
};

//	Command Off class definition
class OffClass : public Tango::Command
{
public:
	OffClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out,
				   const char        *in_desc,
				   const char        *out_desc,
				   Tango::DispLevel  level)
	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}

	OffClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out)
	:Command(cmd_name,in,out)	{}
	~OffClass() {}

	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
	{return (static_cast<SimulatedE2PS *>(dev))->is_Off_allowed(any);}
};

//	Command Reset class definition
class ResetClass : public Tango::Command
{
public:
	ResetClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out,
				   const char        *in_desc,
				   const char        *out_desc,
				   Tango::DispLevel  level)
	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}

	ResetClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out)
	:Command(cmd_name,in,out)	{}
	~ResetClass() {}

	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
	{return (static_cast<SimulatedE2PS *>(dev))->is_Reset_allowed(any);}
};

//	Command StartCycling class definition
class StartCyclingClass : public Tango::Command
{
public:
	StartCyclingClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out,
				   const char        *in_desc,
				   const char        *out_desc,
				   Tango::DispLevel  level)
	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}

	StartCyclingClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out)
	:Command(cmd_name,in,out)	{}
	~StartCyclingClass() {}

	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
	{return (static_cast<SimulatedE2PS *>(dev))->is_StartCycling_allowed(any);}
};

//	Command Abort class definition
class AbortClass : public Tango::Command
{
public:
	AbortClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out,
				   const char        *in_desc,
				   const char        *out_desc,
				   Tango::DispLevel  level)
	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}

	AbortClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out)
	:Command(cmd_name,in,out)	{}
	~AbortClass() {}

	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
	{return (static_cast<SimulatedE2PS *>(dev))->is_Abort_allowed(any);}
};

//	Command Fault class definition
class FaultClass : public Tango::Command
{
public:
	FaultClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out,
				   const char        *in_desc,
				   const char        *out_desc,
				   Tango::DispLevel  level)
	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}

	FaultClass(const char   *cmd_name,
	               Tango::CmdArgType in,
				   Tango::CmdArgType out)
	:Command(cmd_name,in,out)	{}
	~FaultClass() {}

	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
	{return (static_cast<SimulatedE2PS *>(dev))->is_Fault_allowed(any);}
};


/**
 *	The SimulatedE2PSClass singleton definition
 */

#ifdef _TG_WINDOWS_
class __declspec(dllexport)  SimulatedE2PSClass : public Tango::DeviceClass
#else
class SimulatedE2PSClass : public Tango::DeviceClass
#endif
{
	/*----- PROTECTED REGION ID(SimulatedE2PSClass::Additional DServer data members) ENABLED START -----*/
	/* clang-format on */
	//	Add your own code
	/* clang-format off */
	/*----- PROTECTED REGION END -----*/	//	SimulatedE2PSClass::Additional DServer data members

	public:
		//	write class properties data members
		Tango::DbData	cl_prop;
		Tango::DbData	cl_def_prop;
		Tango::DbData	dev_def_prop;
		//	Method prototypes
		static SimulatedE2PSClass *init(const char *);
		static SimulatedE2PSClass *instance();
		~SimulatedE2PSClass();
		Tango::DbDatum	get_class_property(std::string &);
		Tango::DbDatum	get_default_device_property(std::string &);
		Tango::DbDatum	get_default_class_property(std::string &);

	protected:
		SimulatedE2PSClass(std::string &);
		static SimulatedE2PSClass *_instance;
		void command_factory();
		void attribute_factory(std::vector<Tango::Attr *> &);
		void pipe_factory();
		void write_class_property();
		void set_default_property();
		void get_class_property();
		std::string get_cvstag();
		std::string get_cvsroot();

	private:
		void device_factory(TANGO_UNUSED(const Tango::DevVarStringArray *));
		void create_static_attribute_list(std::vector<Tango::Attr *> &);
		void erase_dynamic_attributes(const Tango::DevVarStringArray *,std::vector<Tango::Attr *> &);
		std::vector<std::string>	defaultAttList;
		Tango::Attr *get_attr_object_by_name(std::vector<Tango::Attr *> &att_list, std::string attname);
};

}	//	End of namespace

#endif   //	SimulatedE2PS_H