/*----- PROTECTED REGION ID(SupervisedIDClass.cpp) ENABLED START -----*/ //============================================================================= // // file : SupervisedIDClass.cpp // // description : C++ source for the SupervisedIDClass. A singleton // class derived from DeviceClass. It implements the // command list and all properties and methods required // by the �name� once per process. // // project : Supervised ID: common interface for supervised insertion devices. // // $Author: claudio $ // // $Revision: 1.2 $ // $Date: 2014-04-14 14:51:54 $ // // SVN only: // $HeadURL: $ // // CVS only: // $Source: /home/cvsadm/cvsroot/AbstractClasses7/SupervisedID/SupervisedIDClass.cpp,v $ // $Log: SupervisedIDClass.cpp,v $ // Revision 1.2 2014-04-14 14:51:54 claudio // for 8.1.2.c and pogo-8 // // Revision 1.1.1.1 2012-03-05 14:01:56 claudio // frist import // // //============================================================================= // This file is generated by POGO // (Program Obviously used to Generate tango Object) //============================================================================= #include <SupervisedIDClass.h> /*----- PROTECTED REGION END -----*/ // SupervisedIDClass.cpp //------------------------------------------------------------------- /** * Create SupervisedIDClass singleton and * return it in a C function for Python usage */ //------------------------------------------------------------------- extern "C" { #ifdef _TG_WINDOWS_ __declspec(dllexport) #endif Tango::DeviceClass *_create_SupervisedID_class(const char *name) { return SupervisedID_ns::SupervisedIDClass::init(name); } } namespace SupervisedID_ns { //=================================================================== // Initialize pointer for singleton pattern //=================================================================== SupervisedIDClass *SupervisedIDClass::_instance = NULL; //-------------------------------------------------------- /** * method : SupervisedIDClass::SupervisedIDClass(string &s) * description : constructor for the SupervisedIDClass * * @param s The class name */ //-------------------------------------------------------- SupervisedIDClass::SupervisedIDClass(string &s):Tango::DeviceClass(s) { cout2 << "Entering SupervisedIDClass constructor" << endl; set_default_property(); write_class_property(); /*----- PROTECTED REGION ID(SupervisedIDClass::constructor) ENABLED START -----*/ /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::constructor cout2 << "Leaving SupervisedIDClass constructor" << endl; } //-------------------------------------------------------- /** * method : SupervisedIDClass::~SupervisedIDClass() * description : destructor for the SupervisedIDClass */ //-------------------------------------------------------- SupervisedIDClass::~SupervisedIDClass() { /*----- PROTECTED REGION ID(SupervisedIDClass::destructor) ENABLED START -----*/ /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::destructor _instance = NULL; } //-------------------------------------------------------- /** * method : SupervisedIDClass::init * description : Create the object if not already done. * Otherwise, just return a pointer to the object * * @param name The class name */ //-------------------------------------------------------- SupervisedIDClass *SupervisedIDClass::init(const char *name) { if (_instance == NULL) { try { string s(name); _instance = new SupervisedIDClass(s); } catch (bad_alloc &) { throw; } } return _instance; } //-------------------------------------------------------- /** * method : SupervisedIDClass::instance * description : Check if object already created, * and return a pointer to the object */ //-------------------------------------------------------- SupervisedIDClass *SupervisedIDClass::instance() { if (_instance == NULL) { cerr << "Class is not initialised !!" << endl; exit(-1); } return _instance; } //=================================================================== // Command execution method calls //=================================================================== //=================================================================== // Properties management //=================================================================== //-------------------------------------------------------- /** * Method : SupervisedIDClass::get_class_property() * Description : Get the class property for specified name. */ //-------------------------------------------------------- Tango::DbDatum SupervisedIDClass::get_class_property(string &prop_name) { for (unsigned int i=0 ; i<cl_prop.size() ; i++) if (cl_prop[i].name == prop_name) return cl_prop[i]; // if not found, returns an empty DbDatum return Tango::DbDatum(prop_name); } //-------------------------------------------------------- /** * Method : SupervisedIDClass::get_default_device_property() * Description : Return the default value for device property. */ //-------------------------------------------------------- Tango::DbDatum SupervisedIDClass::get_default_device_property(string &prop_name) { for (unsigned int i=0 ; i<dev_def_prop.size() ; i++) if (dev_def_prop[i].name == prop_name) return dev_def_prop[i]; // if not found, return an empty DbDatum return Tango::DbDatum(prop_name); } //-------------------------------------------------------- /** * Method : SupervisedIDClass::get_default_class_property() * Description : Return the default value for class property. */ //-------------------------------------------------------- Tango::DbDatum SupervisedIDClass::get_default_class_property(string &prop_name) { for (unsigned int i=0 ; i<cl_def_prop.size() ; i++) if (cl_def_prop[i].name == prop_name) return cl_def_prop[i]; // if not found, return an empty DbDatum return Tango::DbDatum(prop_name); } //-------------------------------------------------------- /** * Method : SupervisedIDClass::set_default_property() * Description : Set default property (class and device) for wizard. * For each property, add to wizard property name and description. * If default value has been set, add it to wizard property and * store it in a DbDatum. */ //-------------------------------------------------------- void SupervisedIDClass::set_default_property() { string prop_name; string prop_desc; string prop_def; vector<string> vect_data; // Set Default Class Properties // Set Default device Properties prop_name = "HostPrivileges"; prop_desc = "list of host:privileges\nhost:2 host is privileged can read and write and change limits and change permission\nhost:1 host is authorized can read and write when permitted\nhost:0 host can only read"; 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); } //-------------------------------------------------------- /** * Method : SupervisedIDClass::write_class_property() * Description : Set class description fields as property in database */ //-------------------------------------------------------- void SupervisedIDClass::write_class_property() { } //=================================================================== // Factory methods //=================================================================== //-------------------------------------------------------- /** * Method : SupervisedIDClass::device_factory() * Description : Create the device object(s) * and store them in the device list */ //-------------------------------------------------------- void SupervisedIDClass::device_factory(const Tango::DevVarStringArray *devlist_ptr) { // This class is not concrete and cannot implement devices } //-------------------------------------------------------- /** * Method : SupervisedIDClass::attribute_factory() * Description : Create the attribute object(s) * and store them in the attribute list */ //-------------------------------------------------------- void SupervisedIDClass::attribute_factory(vector<Tango::Attr *> &att_list) { /*----- PROTECTED REGION ID(SupervisedIDClass::attribute_factory_before) ENABLED START -----*/ // Add your own code /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::attribute_factory_before /*----- PROTECTED REGION ID(SupervisedIDClass::attribute_factory_after) ENABLED START -----*/ // Add your own code /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::attribute_factory_after } //-------------------------------------------------------- /** * Method : SupervisedIDClass::pipe_factory() * Description : Create the pipe object(s) * and store them in the pipe list */ //-------------------------------------------------------- void SupervisedIDClass::pipe_factory() { /*----- PROTECTED REGION ID(SupervisedIDClass::pipe_factory_before) ENABLED START -----*/ // Add your own code /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::pipe_factory_before /*----- PROTECTED REGION ID(SupervisedIDClass::pipe_factory_after) ENABLED START -----*/ // Add your own code /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::pipe_factory_after } //-------------------------------------------------------- /** * Method : SupervisedIDClass::command_factory() * Description : Create the command object(s) * and store them in the command list */ //-------------------------------------------------------- void SupervisedIDClass::command_factory() { /*----- PROTECTED REGION ID(SupervisedIDClass::command_factory_before) ENABLED START -----*/ /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::command_factory_before /*----- PROTECTED REGION ID(SupervisedIDClass::command_factory_after) ENABLED START -----*/ /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::command_factory_after } /*----- PROTECTED REGION ID(SupervisedIDClass::Additional Methods) ENABLED START -----*/ /*----- PROTECTED REGION END -----*/ // SupervisedIDClass::Additional Methods } // namespace