MAlarm.h
1 /*****************************************************************************
2  **
3  ** Header file for Muster API MAlarm object
4  **
5  ** Name : MAlarm.h
6  ** Author : Leonardo Bernardini
7 ** Version : Alpha 9.0 Wed May 17th 2017
8  **
9  ** Copyright 2000-2017, Virtual Vertex
10  ** All Rights Reserved.
11  **
12  ** This file contains UNPUBLISHED PROPRIETARY SOURCE CODE.
13  ** The contents of this file may not be disclosed to third parties, copied
14  ** or duplicated in any form, in whole or in part, without the prior written
15  ** permission of the author.
16  **
17  *****************************************************************************/
18 #ifndef MALARM_H
19 #define MALARM_H
20 
21 #ifdef WIN32
22 // Windows definitions
23 #ifdef MCLIENTLIB_EXPORTS
24 #define MCLIENTLIB_API __declspec(dllexport)
25 #else
26 #define MCLIENTLIB_API __declspec(dllimport)
27 #endif
28 #else
29 
30 #ifndef MCLIENTLIB_EXPORTS
31 #ifdef LINUX
32 #define MCLIENTLIB_API
33 #else
34 #define MCLIENTLIB_API
35 #endif
36 #else
37 #define MCLIENTLIB_API
38 #endif
39 #endif
40 
41 #if defined(_WIN32)
42 #pragma warning(disable: 4251)
43 #endif // _WIN32
44 
45 #include <string>
46 #include <vector>
47 
48 namespace MClientLib {
49 
59  class MCLIENTLIB_API MAlarm {
60  public:
61 
62  private:
63  int alarmType;
64  std::string alarmDescription;
65  time_t alarmRaiseTime;
66  time_t alarmTriggerTime;
67  time_t alarmEndTime;
68  unsigned long long alarmId;
69  bool expired;
70  bool silenced;
71  public:
72 
78  enum kAlarmType {
83  kRamOver, /*< RAM usage gone over a certain threshold */
84  kProcRamOver, /*< Process RAM usage gone over a certain threshold */
85  kSwapOver, /*< Swap usage gone over a certain threshold */
86  kDiskUsageOver, /*< Disk free space usage gone over a certain threshold */
87  kCustomAlarm /*< Custom alarm */
88  };
89 
90  MAlarm();
91  virtual ~MAlarm();
93  virtual int getType();
94  virtual const std::string& getDescription();
95  virtual time_t getRaiseTime();
96  virtual time_t getTriggerTime();
97  virtual time_t getEndTime();
98  virtual unsigned long long getAlarmId();
99  virtual bool getExpired();
100  virtual bool getSilenced();
101 
102  virtual void setType(int _alarmType);
103  virtual void setDescription(const std::string& _alarmDescription);
104  virtual void setRaiseTime(time_t _raiseTime);
105  virtual void setTriggerTime(time_t _triggerTime);
106  virtual void setEndTime(time_t _endTime);
107  virtual void setAlarmId(unsigned long long _alarmId);
108  virtual void setExpired(bool _expired);
109  virtual void setSilenced(bool _silenced);
110 
112  bool Unmarshall(const std::vector<std::string>& items);
113  std::string Marshall();
116  };
117 
119 }
120 
121 #endif
kAlarmType
Enumeration of alarms types.
Definition: MAlarm.h:78
Class holding an alarm data.
Definition: MAlarm.h:59