Program Listing for File alarm.h

Return to documentation for file (src/property/pv/alarm.h)

/* alarm.h */
/*
 * Copyright information and license terms for this software can be
 * found in the file LICENSE that is included with the distribution
 */
#ifndef ALARM_H
#define ALARM_H

#include <string>

#include <pv/pvType.h>

#include <shareLib.h>

namespace epics { namespace pvData {

enum AlarmSeverity {
 noAlarm,minorAlarm,majorAlarm,invalidAlarm,undefinedAlarm
};

enum AlarmStatus {
    noStatus,deviceStatus,driverStatus,recordStatus,
    dbStatus,confStatus,undefinedStatus,clientStatus
};


class epicsShareClass AlarmSeverityFunc {
public:
    static AlarmSeverity getSeverity(int value);
    static StringArrayPtr getSeverityNames();
};

class epicsShareClass AlarmStatusFunc {
public:
    static AlarmStatus getStatus(int value);
    static StringArrayPtr getStatusNames();
};

class epicsShareClass Alarm {
public:
    Alarm() : severity(0),status(0), message(std::string("")) {}
    //default constructors and destructor are OK
    std::string getMessage() const {return message;}
    void setMessage(std::string const &value) {message = value;}
    AlarmSeverity getSeverity() const;
    void setSeverity(AlarmSeverity value) {severity = value;}
    AlarmStatus getStatus() const;
    void setStatus(AlarmStatus value) { status = value;}
private:
    int32 severity;
    int32 status;
    std::string message;
};

}}
#endif  /* ALARM_H */