00001 #ifndef FAULTSTATE_H_ 00002 #define FAULTSTATE_H_ 00003 00004 #include <iostream> 00005 #include <memory> 00006 #include "Properties.h" 00007 #include "Timestamp.h" 00008 00009 namespace acsalarm 00010 { 00011 /* 00012 * Class representing a single fault state for use by cpp alarm source clients 00013 * which wish to send an alarm to the laser alarm server. 00014 */ 00015 class FaultState 00016 { 00017 public: 00018 00022 FaultState(); 00023 00027 FaultState(const FaultState &); 00028 00032 FaultState(std::string family, std::string member, int code); 00033 00034 /* 00035 * Destructor 00036 */ 00037 virtual ~FaultState(); 00038 00039 FaultState & operator=(const FaultState & rhs); 00040 00045 void setCode(const int faultCode) { 00046 code=faultCode; 00047 } 00048 00053 int getCode() const { 00054 return code; 00055 } 00056 00061 void setDescriptor(const std::string & newDescriptor) { 00062 descriptor=newDescriptor; 00063 } 00064 00068 std::string getDescriptor() const { 00069 return descriptor; 00070 } 00071 00076 std::string getFamily() const { 00077 return family; 00078 } 00079 00084 std::string getMember() const { 00085 return member; 00086 } 00087 00088 00093 void setFamily(const std::string & faultFamily); 00094 00099 void setMember(const std::string & newFaultMember); 00100 00119 virtual std::string toXML(int amountToIndent = 3); 00120 00124 virtual void setUserProperties(std::auto_ptr<acsalarm::Properties> theProperties) { userProperties = theProperties; } 00125 00129 const virtual acsalarm::Properties & getUserProperties() const { return *userProperties; } 00130 00134 virtual void setUserTimestamp(std::auto_ptr<acsalarm::Timestamp> theTimestamp) { userTimestamp = theTimestamp; } 00135 00139 const virtual acsalarm::Timestamp & getUserTimestamp() const { return *userTimestamp; } 00140 00141 virtual bool getActivatedByBackup() const { return activatedByBackup; } 00142 virtual void setActivatedByBackup(bool newActivatedByBackup) { activatedByBackup = newActivatedByBackup; } 00143 00144 virtual bool getTerminatedByBackup() const { return terminatedByBackup; } 00145 virtual void setTerminatedByBackup(bool newTerminatedByBackup) { terminatedByBackup = newTerminatedByBackup; } 00146 00147 private: 00148 00149 std::string member; 00150 std::string family; 00151 std::string descriptor; 00152 int code; 00153 bool activatedByBackup; 00154 bool terminatedByBackup; 00155 std::auto_ptr<acsalarm::Properties> userProperties; 00156 std::auto_ptr<acsalarm::Timestamp> userTimestamp; 00157 }; 00158 }; 00159 #endif /*FAULTSTATE_H_*/