/*----- PROTECTED REGION ID(Alarm::DynAttrUtils.cpp) ENABLED START -----*/ static const char *RcsId = "$Id: $"; //============================================================================= // // file : AlarmDynAttrUtils.cpp // // description : Dynamic attributes utilities file for the Alarm class // // project : Elettra alarm device server // // 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/>. // // $Author: $ // // $Revision: $ // $Date: $ // // $HeadURL: $ // //============================================================================= // This file is generated by POGO // (Program Obviously used to Generate tango Object) //============================================================================= #include <Alarm.h> #include <AlarmClass.h> /*----- PROTECTED REGION END -----*/ // Alarm::DynAttrUtils.cpp //================================================================ // Attributes managed is: //================================================================ // AlarmState | Tango::DevBoolean Scalar //================================================================ // For compatibility reason, this file (AlarmDynAttrUtils) // manage also the dynamic command utilities. //================================================================ // The following table gives the correspondence // between command and method names. // // Command name | Method name //================================================================ //================================================================ namespace Alarm_ns { //============================================================= // Add/Remove dynamic attribute methods //============================================================= //-------------------------------------------------------- /** * Add a AlarmState dynamic attribute. * * parameter attname: attribute name to be cretated and added. */ //-------------------------------------------------------- void Alarm::add_AlarmState_dynamic_attribute(string attname) { // Attribute : AlarmState AlarmStateAttrib *alarmstate = new AlarmStateAttrib(attname); Tango::UserDefaultAttrProp alarmstate_prop; // description not set for AlarmState // label not set for AlarmState // unit not set for AlarmState // standard_unit not set for AlarmState // display_unit not set for AlarmState // format not set for AlarmState // max_value not set for AlarmState // min_value not set for AlarmState // max_alarm not set for AlarmState // min_alarm not set for AlarmState // max_warning not set for AlarmState // min_warning not set for AlarmState // delta_t not set for AlarmState // delta_val not set for AlarmState /*----- PROTECTED REGION ID(Alarm::att_AlarmState_dynamic_attribute) ENABLED START -----*/ DEBUG_STREAM << __func__<<": entering name="<<attname; /*----- PROTECTED REGION END -----*/ // Alarm::att_AlarmState_dynamic_attribute alarmstate->set_default_properties(alarmstate_prop); // Not Polled alarmstate->set_disp_level(Tango::OPERATOR); // Not Memorized alarmstate->set_change_event(true, true); alarmstate->set_archive_event(true, true); AlarmState_data.insert(make_pair(attname, false)); add_attribute(alarmstate); } //-------------------------------------------------------- /** * remove a AlarmState dynamic attribute. * * parameter attname: attribute name to be removed. */ //-------------------------------------------------------- void Alarm::remove_AlarmState_dynamic_attribute(string attname) { remove_attribute(attname, true); map<string,Tango::DevBoolean>::iterator ite; if ((ite=AlarmState_data.find(attname))!=AlarmState_data.end()) { /*----- PROTECTED REGION ID(Alarm::remove_AlarmState_dynamic_attribute) ENABLED START -----*/ DEBUG_STREAM << __func__<<": entering name="<<attname; /*----- PROTECTED REGION END -----*/ // Alarm::remove_AlarmState_dynamic_attribute AlarmState_data.erase(ite); } } //============================================================ // Tool methods to get pointer on attribute data buffer //============================================================ //-------------------------------------------------------- /** * Return a pointer on AlarmState data. * * parameter attname: the specified attribute name. */ //-------------------------------------------------------- Tango::DevBoolean *Alarm::get_AlarmState_data_ptr(string &name) { map<string,Tango::DevBoolean>::iterator ite; if ((ite=AlarmState_data.find(name))==AlarmState_data.end()) { TangoSys_OMemStream tms; tms << "Dynamic attribute " << name << " has not been created"; Tango::Except::throw_exception( (const char *)"ATTRIBUTE_NOT_FOUND", tms.str().c_str(), (const char *)"Alarm::get_AlarmState_data_ptr()"); } return &(ite->second); } //============================================================= // Add/Remove dynamic command methods //============================================================= } // namespace