Skip to content
Snippets Groups Projects
AccessConfClass.h 5.57 KiB
Newer Older
/*----- PROTECTED REGION ID(AccessConfClass.h) ENABLED START -----*/
//=============================================================================
//
// file :        AccessConfClass.h
//
// description : Include for the AccessConfClass root class.
//               This class is the singleton class for.
//               the AccessConf device class..
//               It contains all properties and methods which the .
//               AccessConf requires only once e.g. the commands.
//
// project :     Storage Ring Access.
//
// $Author: graziano $
//
// $Revision: 1.1 $
// $Date: 2012-10-30 09:29:15 $
//
// SVN only:
// $HeadURL:  $
//
// CVS only:
// $Source: /home/cvsadm/cvsroot/fermi/servers/accessconf/src/AccessConfClass.h,v $
// $Log: AccessConfClass.h,v $
// Revision 1.1  2012-10-30 09:29:15  graziano
// *** empty log message ***
//
//
//
//=============================================================================
//                This file is generated by POGO
//        (Program Obviously used to Generate tango Object)
//=============================================================================


#ifndef ACCESSCONFCLASS_H
#define ACCESSCONFCLASS_H

#include <tango.h>
#include <AccessConf.h>

/*----- PROTECTED REGION END -----*/

namespace AccessConf_ns
{
	/*----- PROTECTED REGION ID(AccessConf::classes for dynamic creation) ENABLED START -----*/

	/*----- PROTECTED REGION END -----*/	//	AccessConf::classes for dynamic creation



//=========================================
//	Define classes for attributes
//=========================================
//	Attribute Version class definition
class VersionAttrib: public Tango::Attr
{
public:
	VersionAttrib():Attr("Version",
	                   Tango::DEV_STRING, Tango::READ) {};
	~VersionAttrib() {};

	VersionAttrib(const string &att_name):Attr(att_name.c_str(),
		                   Tango::DEV_STRING, Tango::READ) {};

	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<AccessConf *>(dev))->read_Version(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<AccessConf *>(dev))->is_Version_allowed(ty);}
};

//	Attribute BoolScalarDyn class definition
class BoolScalarDynAttrib: public Tango::Attr
{
public:
	BoolScalarDynAttrib():Attr("BoolScalarDyn",
	                   Tango::DEV_BOOLEAN, Tango::READ) {};
	~BoolScalarDynAttrib() {};
	
	BoolScalarDynAttrib(const string &att_name):Attr(att_name.c_str(),
		                   Tango::DEV_BOOLEAN, Tango::READ) {};

	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<AccessConf *>(dev))->read_BoolScalarDyn(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<AccessConf *>(dev))->is_BoolScalarDyn_allowed(ty);}
};

//	Attribute BoolSpectrumDyn class definition
class BoolSpectrumDynAttrib: public Tango::SpectrumAttr
{
public:
	BoolSpectrumDynAttrib():SpectrumAttr("BoolSpectrumDyn",
	                   Tango::DEV_BOOLEAN, Tango::READ, MAX_ATTR_SIZE) {};
	~BoolSpectrumDynAttrib() {};
	
	BoolSpectrumDynAttrib(const string &att_name, long size):SpectrumAttr(att_name.c_str(),
		                   Tango::DEV_BOOLEAN, Tango::READ, size) {};

	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<AccessConf *>(dev))->read_BoolSpectrumDyn(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<AccessConf *>(dev))->is_BoolSpectrumDyn_allowed(ty);}
};

//	Attribute StringSpectrumDyn class definition
class StringSpectrumDynAttrib: public Tango::SpectrumAttr
{
public:
	StringSpectrumDynAttrib():SpectrumAttr("StringSpectrumDyn",
	                   Tango::DEV_STRING, Tango::READ, MAX_ATTR_SIZE) {};
	~StringSpectrumDynAttrib() {};

	StringSpectrumDynAttrib(const string &att_name, long size):SpectrumAttr(att_name.c_str(),
		                   Tango::DEV_STRING, Tango::READ, size) {};

	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<AccessConf *>(dev))->read_StringSpectrumDyn(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<AccessConf *>(dev))->is_StringSpectrumDyn_allowed(ty);}
};





//=========================================
//	Define classes for commands
//=========================================




/**
 *	The TemplateDevServClass singleton definition
 */

class
#ifdef _TG_WINDOWS_
	__declspec(dllexport)
#endif
	AccessConfClass : public Tango::DeviceClass
{
	/*----- PROTECTED REGION ID(AccessConf::Additionnal DServer data members) ENABLED START -----*/

	/*----- PROTECTED REGION END -----*/	//	AccessConf::Additionnal 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 AccessConfClass *init(const char *);
	static AccessConfClass *instance();
	~AccessConfClass();
	Tango::DbDatum	get_class_property(string &);
	Tango::DbDatum	get_default_device_property(string &);
	Tango::DbDatum	get_default_class_property(string &);
	
protected:
	AccessConfClass(string &);
	static AccessConfClass *_instance;
	void command_factory();
	void attribute_factory(vector<Tango::Attr *> &);
	void write_class_property();
	void set_default_property();
	void get_class_property();
	string get_cvstag();
	string get_cvsroot();

private:
	void device_factory(const Tango::DevVarStringArray *);
	void create_static_attribute_list(vector<Tango::Attr *> &);
	void erase_dynamic_attributes(const Tango::DevVarStringArray *,vector<Tango::Attr *> &);
	vector<string>	defaultAttList;


};

}	//	namespace

#endif	//	ACCESSCONFCLASS_H