Commit 4c9e52c4 authored by Marco De Marco's avatar Marco De Marco
Browse files

Data import database properties added

parent faee3577
Loading
Loading
Loading
Loading
+89 −5
Original line number Diff line number Diff line
@@ -209,6 +209,13 @@ void DataImporter::get_device_property()
	dev_prop.push_back(Tango::DbDatum("DatabaseTable"));
	dev_prop.push_back(Tango::DbDatum("RefreshTime"));
	dev_prop.push_back(Tango::DbDatum("Timeout"));
	dev_prop.push_back(Tango::DbDatum("DIDBHost"));
	dev_prop.push_back(Tango::DbDatum("DIDBPort"));
	dev_prop.push_back(Tango::DbDatum("DIDBUser"));
	dev_prop.push_back(Tango::DbDatum("DIDBPassword"));
	dev_prop.push_back(Tango::DbDatum("DIDBSchema"));
	dev_prop.push_back(Tango::DbDatum("DIDBIndexTable"));
	dev_prop.push_back(Tango::DbDatum("DIDBRejectedTable"));

	//	is there at least one property to be read ?
	if (dev_prop.size()>0)
@@ -388,6 +395,83 @@ void DataImporter::get_device_property()
		//	And try to extract Timeout value from database
		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  timeout;

		//	Try to initialize DIDBHost from class property
		cl_prop = ds_class->get_class_property(dev_prop[++i].name);
		if (cl_prop.is_empty()==false)	cl_prop  >>  dIDBHost;
		else {
			//	Try to initialize DIDBHost from default device value
			def_prop = ds_class->get_default_device_property(dev_prop[i].name);
			if (def_prop.is_empty()==false)	def_prop  >>  dIDBHost;
		}
		//	And try to extract DIDBHost value from database
		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  dIDBHost;

		//	Try to initialize DIDBPort from class property
		cl_prop = ds_class->get_class_property(dev_prop[++i].name);
		if (cl_prop.is_empty()==false)	cl_prop  >>  dIDBPort;
		else {
			//	Try to initialize DIDBPort from default device value
			def_prop = ds_class->get_default_device_property(dev_prop[i].name);
			if (def_prop.is_empty()==false)	def_prop  >>  dIDBPort;
		}
		//	And try to extract DIDBPort value from database
		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  dIDBPort;

		//	Try to initialize DIDBUser from class property
		cl_prop = ds_class->get_class_property(dev_prop[++i].name);
		if (cl_prop.is_empty()==false)	cl_prop  >>  dIDBUser;
		else {
			//	Try to initialize DIDBUser from default device value
			def_prop = ds_class->get_default_device_property(dev_prop[i].name);
			if (def_prop.is_empty()==false)	def_prop  >>  dIDBUser;
		}
		//	And try to extract DIDBUser value from database
		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  dIDBUser;

		//	Try to initialize DIDBPassword from class property
		cl_prop = ds_class->get_class_property(dev_prop[++i].name);
		if (cl_prop.is_empty()==false)	cl_prop  >>  dIDBPassword;
		else {
			//	Try to initialize DIDBPassword from default device value
			def_prop = ds_class->get_default_device_property(dev_prop[i].name);
			if (def_prop.is_empty()==false)	def_prop  >>  dIDBPassword;
		}
		//	And try to extract DIDBPassword value from database
		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  dIDBPassword;

		//	Try to initialize DIDBSchema from class property
		cl_prop = ds_class->get_class_property(dev_prop[++i].name);
		if (cl_prop.is_empty()==false)	cl_prop  >>  dIDBSchema;
		else {
			//	Try to initialize DIDBSchema from default device value
			def_prop = ds_class->get_default_device_property(dev_prop[i].name);
			if (def_prop.is_empty()==false)	def_prop  >>  dIDBSchema;
		}
		//	And try to extract DIDBSchema value from database
		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  dIDBSchema;

		//	Try to initialize DIDBIndexTable from class property
		cl_prop = ds_class->get_class_property(dev_prop[++i].name);
		if (cl_prop.is_empty()==false)	cl_prop  >>  dIDBIndexTable;
		else {
			//	Try to initialize DIDBIndexTable from default device value
			def_prop = ds_class->get_default_device_property(dev_prop[i].name);
			if (def_prop.is_empty()==false)	def_prop  >>  dIDBIndexTable;
		}
		//	And try to extract DIDBIndexTable value from database
		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  dIDBIndexTable;

		//	Try to initialize DIDBRejectedTable from class property
		cl_prop = ds_class->get_class_property(dev_prop[++i].name);
		if (cl_prop.is_empty()==false)	cl_prop  >>  dIDBRejectedTable;
		else {
			//	Try to initialize DIDBRejectedTable from default device value
			def_prop = ds_class->get_default_device_property(dev_prop[i].name);
			if (def_prop.is_empty()==false)	def_prop  >>  dIDBRejectedTable;
		}
		//	And try to extract DIDBRejectedTable value from database
		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  dIDBRejectedTable;

	}

	/*----- PROTECTED REGION ID(DataImporter::get_device_property_after) ENABLED START -----*/
@@ -467,7 +551,7 @@ void DataImporter::get_device_property()
//--------------------------------------------------------
void DataImporter::always_executed_hook()
{
	DEBUG_STREAM << "DataImporter::always_executed_hook()  " << device_name << endl;
	INFO_STREAM << "DataImporter::always_executed_hook()  " << device_name << endl;
	/*----- PROTECTED REGION ID(DataImporter::always_executed_hook) ENABLED START -----*/

    if(get_state() != Tango::FAULT)
+16 −2
Original line number Diff line number Diff line
@@ -120,6 +120,20 @@ public:
	Tango::DevULong	refreshTime;
	//	Timeout:	Connection timeout (seconds)
	Tango::DevULong	timeout;
	//	DIDBHost:	Hostname where data import database is running
	string	dIDBHost;
	//	DIDBPort:	Port where data import database is listening
	Tango::DevULong	dIDBPort;
	//	DIDBUser:	User to login in data import database
	string	dIDBUser;
	//	DIDBPassword:	Password to login in data import database
	string	dIDBPassword;
	//	DIDBSchema:	Schema where data import tables are located
	string	dIDBSchema;
	//	DIDBIndexTable:	Index table name
	string	dIDBIndexTable;
	//	DIDBRejectedTable:	Rejected table name
	string	dIDBRejectedTable;


//	Constructors and destructors
+56 −0
Original line number Diff line number Diff line
@@ -13,6 +13,34 @@
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </classProperties>
    <classProperties name="DIDBHost" description="Hostname where data import database is running">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </classProperties>
    <classProperties name="DIDBPort" description="Port where data import database is listening">
      <type xsi:type="pogoDsl:UIntType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </classProperties>
    <classProperties name="DIDBUser" description="User to login in data import database">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </classProperties>
    <classProperties name="DIDBPassword" description="Password to login in data import database">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </classProperties>
    <classProperties name="DIDBSchema" description="Schema where data import tables are located">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </classProperties>
    <classProperties name="DIDBIndexTable" description="Index table name">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </classProperties>
    <classProperties name="DIDBRejectedTable" description="Rejected table name">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </classProperties>
    <deviceProperties name="CertificateFile" description="Absolute path to certificate chain file">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
@@ -75,6 +103,34 @@
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <DefaultPropValue>60</DefaultPropValue>
    </deviceProperties>
    <deviceProperties name="DIDBHost" description="Hostname where data import database is running">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="DIDBPort" description="Port where data import database is listening">
      <type xsi:type="pogoDsl:UIntType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="DIDBUser" description="User to login in data import database">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="DIDBPassword" description="Password to login in data import database">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="DIDBSchema" description="Schema where data import tables are located">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="DIDBIndexTable" description="Index table name">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="DIDBRejectedTable" description="Rejected table name">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="none">
        <type xsi:type="pogoDsl:VoidType"/>
+273 −0
Original line number Diff line number Diff line
@@ -259,6 +259,13 @@ void DataImporterClass::get_class_property()
	//	Read class properties from database.
	cl_prop.push_back(Tango::DbDatum("CertificateFile"));
	cl_prop.push_back(Tango::DbDatum("StoragePath"));
	cl_prop.push_back(Tango::DbDatum("DIDBHost"));
	cl_prop.push_back(Tango::DbDatum("DIDBPort"));
	cl_prop.push_back(Tango::DbDatum("DIDBUser"));
	cl_prop.push_back(Tango::DbDatum("DIDBPassword"));
	cl_prop.push_back(Tango::DbDatum("DIDBSchema"));
	cl_prop.push_back(Tango::DbDatum("DIDBIndexTable"));
	cl_prop.push_back(Tango::DbDatum("DIDBRejectedTable"));
	
	//	Call database and extract values
	if (Tango::Util::instance()->_UseDb==true)
@@ -290,6 +297,90 @@ void DataImporterClass::get_class_property()
			cl_prop[i]  <<  storagePath;
		}
	}
	//	Try to extract DIDBHost value
	if (cl_prop[++i].is_empty()==false)	cl_prop[i]  >>  dIDBHost;
	else
	{
		//	Check default value for DIDBHost
		def_prop = get_default_class_property(cl_prop[i].name);
		if (def_prop.is_empty()==false)
		{
			def_prop    >>  dIDBHost;
			cl_prop[i]  <<  dIDBHost;
		}
	}
	//	Try to extract DIDBPort value
	if (cl_prop[++i].is_empty()==false)	cl_prop[i]  >>  dIDBPort;
	else
	{
		//	Check default value for DIDBPort
		def_prop = get_default_class_property(cl_prop[i].name);
		if (def_prop.is_empty()==false)
		{
			def_prop    >>  dIDBPort;
			cl_prop[i]  <<  dIDBPort;
		}
	}
	//	Try to extract DIDBUser value
	if (cl_prop[++i].is_empty()==false)	cl_prop[i]  >>  dIDBUser;
	else
	{
		//	Check default value for DIDBUser
		def_prop = get_default_class_property(cl_prop[i].name);
		if (def_prop.is_empty()==false)
		{
			def_prop    >>  dIDBUser;
			cl_prop[i]  <<  dIDBUser;
		}
	}
	//	Try to extract DIDBPassword value
	if (cl_prop[++i].is_empty()==false)	cl_prop[i]  >>  dIDBPassword;
	else
	{
		//	Check default value for DIDBPassword
		def_prop = get_default_class_property(cl_prop[i].name);
		if (def_prop.is_empty()==false)
		{
			def_prop    >>  dIDBPassword;
			cl_prop[i]  <<  dIDBPassword;
		}
	}
	//	Try to extract DIDBSchema value
	if (cl_prop[++i].is_empty()==false)	cl_prop[i]  >>  dIDBSchema;
	else
	{
		//	Check default value for DIDBSchema
		def_prop = get_default_class_property(cl_prop[i].name);
		if (def_prop.is_empty()==false)
		{
			def_prop    >>  dIDBSchema;
			cl_prop[i]  <<  dIDBSchema;
		}
	}
	//	Try to extract DIDBIndexTable value
	if (cl_prop[++i].is_empty()==false)	cl_prop[i]  >>  dIDBIndexTable;
	else
	{
		//	Check default value for DIDBIndexTable
		def_prop = get_default_class_property(cl_prop[i].name);
		if (def_prop.is_empty()==false)
		{
			def_prop    >>  dIDBIndexTable;
			cl_prop[i]  <<  dIDBIndexTable;
		}
	}
	//	Try to extract DIDBRejectedTable value
	if (cl_prop[++i].is_empty()==false)	cl_prop[i]  >>  dIDBRejectedTable;
	else
	{
		//	Check default value for DIDBRejectedTable
		def_prop = get_default_class_property(cl_prop[i].name);
		if (def_prop.is_empty()==false)
		{
			def_prop    >>  dIDBRejectedTable;
			cl_prop[i]  <<  dIDBRejectedTable;
		}
	}
	/*----- PROTECTED REGION ID(DataImporterClass::get_class_property_after) ENABLED START -----*/
	
	//	Check class property data members init
@@ -339,6 +430,97 @@ void DataImporterClass::set_default_property()
		cl_def_prop.push_back(data);
		add_wiz_class_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_class_prop(prop_name, prop_desc);
	prop_name = "DIDBHost";
	prop_desc = "Hostname where data import database is running";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		cl_def_prop.push_back(data);
		add_wiz_class_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_class_prop(prop_name, prop_desc);
	prop_name = "DIDBPort";
	prop_desc = "Port where data import database is listening";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		cl_def_prop.push_back(data);
		add_wiz_class_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_class_prop(prop_name, prop_desc);
	prop_name = "DIDBUser";
	prop_desc = "User to login in data import database";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		cl_def_prop.push_back(data);
		add_wiz_class_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_class_prop(prop_name, prop_desc);
	prop_name = "DIDBPassword";
	prop_desc = "Password to login in data import database";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		cl_def_prop.push_back(data);
		add_wiz_class_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_class_prop(prop_name, prop_desc);
	prop_name = "DIDBSchema";
	prop_desc = "Schema where data import tables are located";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		cl_def_prop.push_back(data);
		add_wiz_class_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_class_prop(prop_name, prop_desc);
	prop_name = "DIDBIndexTable";
	prop_desc = "Index table name";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		cl_def_prop.push_back(data);
		add_wiz_class_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_class_prop(prop_name, prop_desc);
	prop_name = "DIDBRejectedTable";
	prop_desc = "Rejected table name";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		cl_def_prop.push_back(data);
		add_wiz_class_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_class_prop(prop_name, prop_desc);

@@ -540,6 +722,97 @@ void DataImporterClass::set_default_property()
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
	prop_name = "DIDBHost";
	prop_desc = "Hostname where data import database is running";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
	prop_name = "DIDBPort";
	prop_desc = "Port where data import database is listening";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
	prop_name = "DIDBUser";
	prop_desc = "User to login in data import database";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
	prop_name = "DIDBPassword";
	prop_desc = "Password to login in data import database";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
	prop_name = "DIDBSchema";
	prop_desc = "Schema where data import tables are located";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
	prop_name = "DIDBIndexTable";
	prop_desc = "Index table name";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
	prop_name = "DIDBRejectedTable";
	prop_desc = "Rejected table name";
	prop_def  = "";
	vect_data.clear();
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
		data << vect_data ;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc,  prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
}

//--------------------------------------------------------
+14 −0
Original line number Diff line number Diff line
@@ -127,6 +127,20 @@ class DataImporterClass : public Tango::DeviceClass
		string	certificateFile;
		//	StoragePath:	Absolute path to storage
		string	storagePath;
		//	DIDBHost:	Hostname where data import database is running
		string	dIDBHost;
		//	DIDBPort:	Port where data import database is listening
		Tango::DevULong	dIDBPort;
		//	DIDBUser:	User to login in data import database
		string	dIDBUser;
		//	DIDBPassword:	Password to login in data import database
		string	dIDBPassword;
		//	DIDBSchema:	Schema where data import tables are located
		string	dIDBSchema;
		//	DIDBIndexTable:	Index table name
		string	dIDBIndexTable;
		//	DIDBRejectedTable:	Rejected table name
		string	dIDBRejectedTable;
	public:
		//	write class properties data members
		Tango::DbData	cl_prop;