00001 00034 #ifndef ALARMCONFIGURATION_H 00035 #define ALARMCONFIGURATION_H 00036 00037 #include "oldgcccompat.h" // Compatibilty macros for GCC < 4.7 00038 00039 #include <deque> 00040 #include <vector> 00041 #include <QtCore/QString> 00042 #include <KDE/KSharedConfig> 00043 #include <KDE/KConfigGroup> 00044 #include <KDE/KConfigSkeleton> 00045 00046 namespace AlarmNotifications 00047 { 00048 00058 class AlarmConfiguration 00059 { 00060 private: 00066 const std::string _configfilelocation; 00072 KSharedConfigPtr _backend; 00078 KConfigSkeleton _skeleton; 00086 QString _activemquri; 00094 QString _activemqusername; 00102 QString _activemqpassword; 00108 QString _activemqtopicname; 00114 unsigned int _laboratorynotificationtimeout; 00120 unsigned int _desktopnotificationtimeout; 00126 unsigned int _emailnotificationtimeout; 00132 QString _emailnotificationfrom; 00138 QString _emailnotificationto; 00144 QString _emailnotificationservername; 00150 unsigned int _emailnotificationserverport; 00156 QString _flashlightrelaisdevicenode; 00162 KConfigSkeleton::ItemString* _activemquriitem; 00168 KConfigSkeleton::ItemString* _activemqusernameitem; 00174 KConfigSkeleton::ItemString* _activemqpassworditem; 00180 KConfigSkeleton::ItemString* _activemqtopicnameitem; 00186 KConfigSkeleton::ItemUInt* _laboratorynotificationtimeoutitem; 00192 KConfigSkeleton::ItemUInt* _desktopnotificationtimeoutitem; 00198 KConfigSkeleton::ItemUInt* _emailnotificationtimeoutitem; 00204 KConfigSkeleton::ItemString* _emailnotificationfromitem; 00210 KConfigSkeleton::ItemString* _emailnotificationtoitem; 00216 KConfigSkeleton::ItemString* _emailnotificationservernameitem; 00222 KConfigSkeleton::ItemUInt* _emailnotificationserverportitem; 00228 KConfigSkeleton::ItemString* _flashlightrelaisdevicenodeitem; 00238 static std::string CreateConfigFileLocation(); 00245 AlarmConfiguration(); 00252 void CreateActiveMQConnectivitySettings(); 00253 public: 00260 static AlarmConfiguration& instance() noexcept; 00267 AlarmConfiguration ( const AlarmConfiguration& other ) = delete; 00274 AlarmConfiguration ( AlarmConfiguration&& other ) = delete; 00280 ~AlarmConfiguration(); 00288 AlarmConfiguration& operator= ( const AlarmConfiguration& other ) = delete; 00296 AlarmConfiguration& operator= ( AlarmConfiguration&& other ) = delete; 00303 const std::string& getConfigFileLocation() const noexcept; 00310 void ReReadConfiguration(); 00317 void WriteConfiguration(); 00326 std::string getActiveMQURI() const noexcept; 00334 void setActiveMQURI ( const std::string& newSetting ); 00343 std::string getActiveMQUsername() const noexcept; 00351 void setActiveMQUsername ( const std::string& newSetting ); 00360 std::string getActiveMQPassword() const noexcept; 00368 void setActiveMQPassword ( const std::string& newSetting ); 00377 std::string getActiveMQTopicName() const noexcept; 00385 void setActiveMQTopicName ( const std::string& newSetting ); 00394 unsigned int getLaboratoryNotificationTimeout() const noexcept; 00402 void setLaboratoryNotificationTimeout ( const unsigned int newSetting ); 00411 unsigned int getDesktopNotificationTimeout() const noexcept; 00419 void setDesktopNotificationTimeout ( const unsigned int newSetting ); 00428 unsigned int getEMailNotificationTimeout() const noexcept; 00436 void setEMailNotificationTimeout ( const unsigned int newSetting ); 00445 std::string getEMailNotificationFrom() const noexcept; 00453 void setEMailNotificationFrom ( const std::string& newSetting ); 00462 std::string getEMailNotificationTo() const noexcept; 00470 void setEMailNotificationTo ( const std::string& newSetting ); 00479 std::string getEMailNotificationServerName() const noexcept; 00487 void setEMailNotificationServerName ( const std::string& newSetting ); 00496 unsigned int getEMailNotificationServerPort() const noexcept; 00504 void setEMailNotificationServerPort ( const unsigned int newSetting ); 00513 std::string getFlashLightRelaisDeviceNode() const noexcept; 00521 void setFlashLightRelaisDevideNode ( const std::string& newSetting ); 00530 KSharedConfigPtr internal(); 00539 KConfigSkeleton* internal_skel(); 00540 }; 00541 00542 } 00543 00544 #endif // ALARMCONFIGURATION_H