Newer
Older
/*----- PROTECTED REGION ID(AlarmHandler.cpp) ENABLED START -----*/

Graziano Scalamera
committed
//=============================================================================
//

Graziano Scalamera
committed
//
// description : C++ source for the AlarmHandler class and its commands.

Graziano Scalamera
committed
// The class is derived from Device. It represents the
// CORBA servant object which will be accessed from the
// network. All commands which can be executed on the
// AlarmHandler are implemented in this file.

Graziano Scalamera
committed
//
// project : Elettra alarm handler device server

Graziano Scalamera
committed
//
// 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/>.
//
//
//
//=============================================================================
// This file is generated by POGO
// (Program Obviously used to Generate tango Object)
//=============================================================================
#include <AlarmHandler.h>
#include <AlarmHandlerClass.h>

Graziano Scalamera
committed
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <ctype.h> //for tolower
#include "alarm-thread.h"
#include "alarm_grammar.h"
#include "update-thread.h"
//#define _DUMP_TREE_XML
#ifdef _DUMP_TREE_XML
#if BOOST_VERSION < 103600
#include <boost/spirit/iterator/fixed_size_queue.hpp>
#include <boost/spirit/core.hpp>
#include <boost/spirit/tree/ast.hpp>
#include <boost/spirit/tree/tree_to_xml.hpp>
using namespace boost::spirit;
#else
#include <boost/spirit/include/classic_fixed_size_queue.hpp>
#include <boost/spirit/include/classic_core.hpp>
#include <boost/spirit/include/classic_ast.hpp>
#include <boost/spirit/include/classic_tree_to_xml.hpp>
using namespace boost::spirit::classic;
#endif
#include <iostream>
#include <stack>
#include <functional>
#include <string>
#include <cassert>
#endif //_DUMP_TREE_XML
#include <sstream>
std::map<parser_id, std::string> rule_names; //only for log messages
int AlarmHandler_ns::AlarmHandler::instanceCounter = 0;

Graziano Scalamera
committed
#ifndef ALARM_BUILDTIME
#define ALARM_BUILDTIME __DATE__ " " __TIME__ " boost=" BOOST_LIB_VERSION
#endif
const char version_string[] = "$Build: @buildID@ " ALARM_BUILDTIME " $";
static const char __FILE__rev[] = __FILE__ " $Revision: 1.29 $";
/*----- PROTECTED REGION END -----*/ // AlarmHandler.cpp

Graziano Scalamera
committed
/**
* AlarmHandler class description:
* Elettra alarm handler device server

Graziano Scalamera
committed
*/
//================================================================
// The following table gives the correspondence
// between command and method names.
//

Graziano Scalamera
committed
// Command name | Method name

Graziano Scalamera
committed
//================================================================

Graziano Scalamera
committed
// State | Inherited (no method)
// Status | Inherited (no method)
// Ack | ack
// Load | load
// Remove | remove
// SearchAlarm | search_alarm
// StopAudible | stop_audible
// Silence | silence
// Modify | modify
// Shelve | shelve
// Enable | enable
// Disable | disable
// ResetStatistics | reset_statistics
// StopNew | stop_new
// GetAlarmInfo | get_alarm_info

Graziano Scalamera
committed
//================================================================
//================================================================

Graziano Scalamera
committed
// Attributes managed are:

Graziano Scalamera
committed
//================================================================
// alarmAudible | Tango::DevBoolean Scalar
// StatisticsResetTime | Tango::DevDouble Scalar
// alarm | Tango::DevString Spectrum ( max = 1024)
// alarmNormal | Tango::DevString Spectrum ( max = 10000)
// alarmUnacknowledged | Tango::DevString Spectrum ( max = 10000)
// alarmAcknowledged | Tango::DevString Spectrum ( max = 10000)
// alarmUnacknowledgedNormal | Tango::DevString Spectrum ( max = 10000)
// alarmShelved | Tango::DevString Spectrum ( max = 10000)
// alarmOutOfService | Tango::DevString Spectrum ( max = 10000)
// alarmSilenced | Tango::DevString Spectrum ( max = 10000)
// alarmList | Tango::DevString Spectrum ( max = 10000)
// alarmFrequency | Tango::DevDouble Spectrum ( max = 10000)
// alarmSummary | Tango::DevString Spectrum ( max = 10000)

Graziano Scalamera
committed
//================================================================

Graziano Scalamera
committed
{
/*----- PROTECTED REGION ID(AlarmHandler::namespace_starting) ENABLED START -----*/

Graziano Scalamera
committed
// static initializations
/*----- PROTECTED REGION END -----*/ // AlarmHandler::namespace_starting

Graziano Scalamera
committed
//--------------------------------------------------------
/**
* Method : AlarmHandler::AlarmHandler()

Graziano Scalamera
committed
* Description : Constructors for a Tango device
* implementing the classAlarmHandler

Graziano Scalamera
committed
*/
//--------------------------------------------------------
AlarmHandler::AlarmHandler(Tango::DeviceClass *cl, string &s)

Graziano Scalamera
committed
: TANGO_BASE_CLASS(cl, s.c_str())
{
/*----- PROTECTED REGION ID(AlarmHandler::constructor_1) ENABLED START -----*/

Graziano Scalamera
committed
init_device();
/*----- PROTECTED REGION END -----*/ // AlarmHandler::constructor_1

Graziano Scalamera
committed
}
//--------------------------------------------------------
AlarmHandler::AlarmHandler(Tango::DeviceClass *cl, const char *s)

Graziano Scalamera
committed
: TANGO_BASE_CLASS(cl, s)
{
/*----- PROTECTED REGION ID(AlarmHandler::constructor_2) ENABLED START -----*/

Graziano Scalamera
committed
init_device();
/*----- PROTECTED REGION END -----*/ // AlarmHandler::constructor_2

Graziano Scalamera
committed
}
//--------------------------------------------------------
AlarmHandler::AlarmHandler(Tango::DeviceClass *cl, const char *s, const char *d)

Graziano Scalamera
committed
: TANGO_BASE_CLASS(cl, s, d)
{
/*----- PROTECTED REGION ID(AlarmHandler::constructor_3) ENABLED START -----*/

Graziano Scalamera
committed
init_device();
/*----- PROTECTED REGION END -----*/ // AlarmHandler::constructor_3

Graziano Scalamera
committed
}
//--------------------------------------------------------
/**
* Method : AlarmHandler::delete_device()

Graziano Scalamera
committed
* Description : will be called at device destruction or at init command
*/
//--------------------------------------------------------
void AlarmHandler::delete_device()

Graziano Scalamera
committed
{
DEBUG_STREAM << "AlarmHandler::delete_device() " << device_name << endl;
/*----- PROTECTED REGION ID(AlarmHandler::delete_device) ENABLED START -----*/

Graziano Scalamera
committed
// Delete device allocated objects

Graziano Scalamera
committed
* unsubscribe events and release memory
*/
bool starting = Tango::Util::instance()->is_svr_starting();
bool shutting_down = Tango::Util::instance()->is_svr_shutting_down();
bool restarting = Tango::Util::instance()->is_device_restarting(device_name);
DEBUG_STREAM << __func__ << " starting="<<(int)starting << " shutting_down="<<(int)shutting_down<<" restarting="<<(int)restarting;

Graziano Scalamera
committed
abortflag = true;
DEBUG_STREAM << "AlarmHandler::delete_device(): after abortflag=true..." << endl;

Graziano Scalamera
committed
try {

Graziano Scalamera
committed
} catch (string& err) {
ERROR_STREAM << err << endl;
}
Loading full blame...