2020-05-17 01:17:11 +02:00
|
|
|
#include <framework/housekeeping/HousekeepingMessage.h>
|
2020-06-13 17:37:48 +02:00
|
|
|
#include <cstring>
|
2020-05-17 01:17:11 +02:00
|
|
|
|
2020-06-24 00:24:15 +02:00
|
|
|
HousekeepingMessage::HousekeepingMessage(): CommandMessage() {
|
2020-06-13 17:37:48 +02:00
|
|
|
}
|
2020-06-08 01:22:21 +02:00
|
|
|
|
2020-06-14 19:03:28 +02:00
|
|
|
HousekeepingMessage::~HousekeepingMessage() {}
|
|
|
|
|
|
|
|
void HousekeepingMessage::setParameter(uint32_t parameter) {
|
|
|
|
std::memcpy(getData(), ¶meter, sizeof(parameter));
|
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t HousekeepingMessage::getParameter() const {
|
|
|
|
uint32_t parameter;
|
|
|
|
std::memcpy(¶meter, getData(), sizeof(parameter));
|
|
|
|
return parameter;
|
2020-06-13 17:37:48 +02:00
|
|
|
}
|
2020-06-08 01:22:21 +02:00
|
|
|
|
2020-06-13 17:37:48 +02:00
|
|
|
void HousekeepingMessage::setHkReportMessage(sid_t sid,
|
|
|
|
store_address_t storeId) {
|
2020-06-24 00:24:15 +02:00
|
|
|
CommandMessage::setCommand(HK_REPORT);
|
2020-06-13 17:37:48 +02:00
|
|
|
setSid(sid);
|
|
|
|
setParameter(storeId.raw);
|
|
|
|
}
|
|
|
|
|
2020-06-14 19:03:28 +02:00
|
|
|
void HousekeepingMessage::setHkDiagnosticsMessage(sid_t sid,
|
|
|
|
store_address_t storeId) {
|
2020-06-24 00:24:15 +02:00
|
|
|
CommandMessage::setCommand(DIAGNOSTICS_REPORT);
|
2020-06-14 19:03:28 +02:00
|
|
|
setSid(sid);
|
|
|
|
setParameter(storeId.raw);
|
2020-06-13 17:37:48 +02:00
|
|
|
}
|
|
|
|
|
2020-06-23 21:03:22 +02:00
|
|
|
//size_t HousekeepingMessage::getMinimumMessageSize() const {
|
|
|
|
// return HK_MESSAGE_SIZE;
|
|
|
|
//}
|
2020-06-13 17:37:48 +02:00
|
|
|
|
|
|
|
sid_t HousekeepingMessage::getSid() const {
|
|
|
|
sid_t sid;
|
2020-06-24 00:24:15 +02:00
|
|
|
std::memcpy(&sid.raw, CommandMessage::getData(), sizeof(sid.raw));
|
2020-06-13 17:37:48 +02:00
|
|
|
return sid;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2020-06-14 19:03:28 +02:00
|
|
|
sid_t HousekeepingMessage::getHkReportMessage(
|
|
|
|
store_address_t *storeIdToSet) const {
|
|
|
|
if(storeIdToSet != nullptr) {
|
|
|
|
*storeIdToSet = getParameter();
|
|
|
|
}
|
|
|
|
return getSid();
|
2020-06-13 17:37:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void HousekeepingMessage::setSid(sid_t sid) {
|
2020-06-24 00:24:15 +02:00
|
|
|
std::memcpy(CommandMessage::getData(), &sid.raw, sizeof(sid.raw));
|
2020-06-13 17:37:48 +02:00
|
|
|
}
|
2020-06-14 19:03:28 +02:00
|
|
|
|
|
|
|
|
|
|
|
uint8_t* HousekeepingMessage::getData() {
|
2020-06-24 00:24:15 +02:00
|
|
|
return CommandMessage::getData() + sizeof(sid_t);
|
2020-06-14 19:03:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
const uint8_t* HousekeepingMessage::getData() const {
|
2020-06-24 00:24:15 +02:00
|
|
|
return CommandMessage::getData() + sizeof(sid_t);
|
2020-06-14 19:03:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void HousekeepingMessage::clear() {
|
|
|
|
// clear IPC store where it is needed.
|
|
|
|
}
|