// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md
#include "CrashdumpMetadataStore.hpp"
namespace
{
constexpr auto separator = "_";
constexpr auto defaultSerialNumberLength = 13;
constexpr auto defaultCommitHashLength = 8;
constexpr auto defaultProductName = "unknown";
constexpr auto defaultOsVersion = "0.0.0";
constexpr auto defaultFillValue = '0';
} // namespace
namespace Store
{
CrashdumpMetadata::CrashdumpMetadata() : productName(defaultProductName), osVersion(defaultOsVersion)
{
serialNumber.insert(0, defaultSerialNumberLength, defaultFillValue);
commitHash.insert(0, defaultCommitHashLength, defaultFillValue);
}
CrashdumpMetadata &CrashdumpMetadata::getInstance()
{
static CrashdumpMetadata instance;
return instance;
}
void CrashdumpMetadata::setSerialNumber(const std::string &sn)
{
serialNumber = sn;
}
const std::string &CrashdumpMetadata::getSerialNumber()
{
return serialNumber;
}
void CrashdumpMetadata::setProductName(const std::string &name)
{
productName = name;
}
const std::string &CrashdumpMetadata::getProductName()
{
return productName;
}
void CrashdumpMetadata::setOsVersion(const std::string &version)
{
osVersion = version;
}
const std::string &CrashdumpMetadata::getOsVersion()
{
return osVersion;
}
void CrashdumpMetadata::setCommitHash(const std::string &hash)
{
commitHash = hash;
}
const std::string &CrashdumpMetadata::getCommitHash()
{
return commitHash;
}
std::string CrashdumpMetadata::getMetadataString()
{
return productName + separator + osVersion + separator + commitHash + separator + serialNumber;
}
} // namespace Store