Loading src/DataImporter.cpp +89 −5 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 -----*/ Loading Loading @@ -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) Loading src/DataImporter.h +16 −2 Original line number Diff line number Diff line Loading @@ -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 Loading src/DataImporter.xmi +56 −0 Original line number Diff line number Diff line Loading @@ -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"/> Loading Loading @@ -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"/> Loading src/DataImporterClass.cpp +273 −0 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 Loading Loading @@ -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); Loading Loading @@ -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); } //-------------------------------------------------------- Loading src/DataImporterClass.h +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
src/DataImporter.cpp +89 −5 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 -----*/ Loading Loading @@ -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) Loading
src/DataImporter.h +16 −2 Original line number Diff line number Diff line Loading @@ -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 Loading
src/DataImporter.xmi +56 −0 Original line number Diff line number Diff line Loading @@ -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"/> Loading Loading @@ -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"/> Loading
src/DataImporterClass.cpp +273 −0 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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 Loading Loading @@ -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); Loading Loading @@ -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); } //-------------------------------------------------------- Loading
src/DataImporterClass.h +14 −0 Original line number Diff line number Diff line Loading @@ -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; Loading