co-maps/libs/storage/storage_defines.cpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

91 lines
3 KiB
C++
Raw Permalink Normal View History

2025-11-22 13:58:55 +01:00
#include "storage/storage_defines.hpp"
#include "base/assert.hpp"
#include <sstream>
using namespace std;
using namespace string_literals;
namespace storage
{
storage::CountryId const kInvalidCountryId;
bool IsCountryIdValid(CountryId const & countryId)
{
return countryId != kInvalidCountryId;
}
string DebugPrint(Status status)
{
switch (status)
{
case Status::Undefined: return "EUndefined"s;
case Status::OnDisk: return "OnDisk"s;
case Status::NotDownloaded: return "NotDownloaded"s;
case Status::DownloadFailed: return "DownloadFailed"s;
case Status::Downloading: return "Downloading"s;
case Status::Applying: return "Applying"s;
case Status::InQueue: return "InQueue"s;
case Status::UnknownError: return "Unknown"s;
case Status::OnDiskOutOfDate: return "OnDiskOutOfDate"s;
case Status::OutOfMemFailed: return "OutOfMemFailed"s;
}
UNREACHABLE();
}
string DebugPrint(NodeStatus status)
{
switch (status)
{
case NodeStatus::Undefined: return "Undefined"s;
case NodeStatus::Error: return "Error"s;
case NodeStatus::OnDisk: return "OnDisk"s;
case NodeStatus::NotDownloaded: return "NotDownloaded"s;
case NodeStatus::Downloading: return "Downloading"s;
case NodeStatus::Applying: return "Applying"s;
case NodeStatus::InQueue: return "InQueue"s;
case NodeStatus::OnDiskOutOfDate: return "OnDiskOutOfDate"s;
case NodeStatus::Partly: return "Partly"s;
}
UNREACHABLE();
}
string DebugPrint(NodeErrorCode status)
{
switch (status)
{
case NodeErrorCode::NoError: return "NoError"s;
case NodeErrorCode::UnknownError: return "UnknownError"s;
case NodeErrorCode::OutOfMemFailed: return "OutOfMemFailed"s;
case NodeErrorCode::NoInetConnection: return "NoInetConnection"s;
}
UNREACHABLE();
}
StatusAndError ParseStatus(Status innerStatus)
{
switch (innerStatus)
{
case Status::Undefined: return StatusAndError(NodeStatus::Undefined, NodeErrorCode::NoError);
case Status::OnDisk: return StatusAndError(NodeStatus::OnDisk, NodeErrorCode::NoError);
case Status::NotDownloaded: return StatusAndError(NodeStatus::NotDownloaded, NodeErrorCode::NoError);
case Status::DownloadFailed: return StatusAndError(NodeStatus::Error, NodeErrorCode::NoInetConnection);
case Status::Downloading: return StatusAndError(NodeStatus::Downloading, NodeErrorCode::NoError);
case Status::Applying: return StatusAndError(NodeStatus::Applying, NodeErrorCode::NoError);
case Status::InQueue: return StatusAndError(NodeStatus::InQueue, NodeErrorCode::NoError);
case Status::UnknownError: return StatusAndError(NodeStatus::Error, NodeErrorCode::UnknownError);
case Status::OnDiskOutOfDate: return StatusAndError(NodeStatus::OnDiskOutOfDate, NodeErrorCode::NoError);
case Status::OutOfMemFailed: return StatusAndError(NodeStatus::Error, NodeErrorCode::OutOfMemFailed);
}
UNREACHABLE();
}
string DebugPrint(StatusAndError statusAndError)
{
ostringstream out;
out << "StatusAndError[" << DebugPrint(statusAndError.status) << ", " << DebugPrint(statusAndError.error) << "]";
return out.str();
}
} // namespace storage