-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdev_message.cpp
116 lines (99 loc) · 2.94 KB
/
dev_message.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/******************************************************************************
* *
* Program : Message processor *
* *
* Date : 11 / 04 / 2021 *
* *
* Programmer : Nikita Seliverstov (nikselko) *
* *
* *
******************************************************************************/
#include "dev_message.h"
long Message::new_id()
{
static long id = 0x1000;
return ++id;
}
std::string type_to_str(TargetType m_type)
{
switch (m_type) // Wwitch was used to write less code,
{
case TargetType::dev_temperature_sensor: return "temperature_sensor"; break;
case TargetType::dev_pressure_sensor: return "pressure_sensor"; break;
case TargetType::dev_humidity_sensor: return "humidity_sensor"; break;
case TargetType::dev_heater: return "heater"; break;
case TargetType::dev_air_purifier: return "air_purifier"; break;
case TargetType::UNKNOWN: return "UNKNOWN"; break;
}
return "UNKNOWN"; // Enumerated logic: if(m_type < TargetType::UNKNOWN) return type_name[m_type]; - was tested and works well
}
long long Message::generate_timestamp()
{
long long l_time;
if (time(&l_time))
return l_time;
else
return 0;
}
Message::Message() :
timestamp{ generate_timestamp() },
target_type{ TargetType::UNKNOWN },
target_id{ 0 },
message_id{ new_id() },
text{ "" } {}
Message::Message(TargetType m_target_type, long m_target_id, std::string m_text) :
timestamp{ generate_timestamp() },
target_type{ m_target_type },
target_id{ m_target_id },
message_id{ new_id() },
text{ m_text } {}
const long Message::get_message_id()
{
return message_id;
}
const long Message::get_target_id()
{
return target_id;
}
const TargetType Message::get_target_type()
{
return target_type;
}
const long long Message::get_timestamp()
{
return timestamp;
}
const std::string Message::get_text()
{
return text;
}
void Message::set_text(std::string m_text)
{
text = m_text;
}
bool Message::is_valid()
{
if (target_type != TargetType::UNKNOWN)
{
if (text != "")
return true;
else
return false;
}
else
return false;
}
std::string Message::as_string()
{
std::string tmp_return = "[message_id: "
+ std::to_string(message_id)
+ ", timestamp: "
+ std::to_string(timestamp)
+ ", target_id: "
+ std::to_string(target_id)
+ ", target_type: "
+ type_to_str(target_type)
+ "]: "
+ text;
return tmp_return;
}