summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorAL <26797547+Al12rs@users.noreply.github.com>2020-11-02 21:45:32 +0100
committerAL <26797547+Al12rs@users.noreply.github.com>2020-11-02 21:45:32 +0100
commit4814ba626e80f5137076556b687e59e6bbd8be34 (patch)
tree7497d6feec3aa864197680eac88bb616dcaf68db /src/shared
parentb7935aedec70dd4f0c40dbe948dba9a80a56a75a (diff)
Convert FileAlternative and DataArchiveOrigin to classes
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/fileentry.cpp34
-rw-r--r--src/shared/fileregister.cpp2
-rw-r--r--src/shared/fileregisterfwd.h37
3 files changed, 44 insertions, 29 deletions
diff --git a/src/shared/fileentry.cpp b/src/shared/fileentry.cpp
index 3e354bc9..559eae64 100644
--- a/src/shared/fileentry.cpp
+++ b/src/shared/fileentry.cpp
@@ -44,7 +44,7 @@ void FileEntry::addOrigin(
auto itor = std::find_if(
m_Alternatives.begin(), m_Alternatives.end(),
- [&](auto&& i) { return i.originID == m_Origin; });
+ [&](auto&& i) { return i.originID() == m_Origin; });
if (itor == m_Alternatives.end()) {
m_Alternatives.push_back({m_Origin, m_Archive});
@@ -64,13 +64,13 @@ void FileEntry::addOrigin(
}
for (auto iter = m_Alternatives.begin(); iter != m_Alternatives.end(); ++iter) {
- if (iter->originID == origin) {
+ if (iter->originID() == origin) {
// already an origin
return;
}
if ((m_Parent != nullptr) &&
- (m_Parent->getOriginByID(iter->originID).getPriority() < m_Parent->getOriginByID(origin).getPriority())) {
+ (m_Parent->getOriginByID(iter->originID()).getPriority() < m_Parent->getOriginByID(origin).getPriority())) {
m_Alternatives.insert(iter, {origin, {std::wstring(archive.begin(), archive.end()), order}});
found = true;
break;
@@ -92,17 +92,17 @@ bool FileEntry::removeOrigin(OriginID origin)
// find alternative with the highest priority
auto currentIter = m_Alternatives.begin();
for (auto iter = m_Alternatives.begin(); iter != m_Alternatives.end(); ++iter) {
- if (iter->originID != origin) {
+ if (iter->originID() != origin) {
//Both files are not from archives.
if (!iter->isFromArchive() && !currentIter->isFromArchive()) {
- if ((m_Parent->getOriginByID(iter->originID).getPriority() > m_Parent->getOriginByID(currentIter->originID).getPriority())) {
+ if ((m_Parent->getOriginByID(iter->originID()).getPriority() > m_Parent->getOriginByID(currentIter->originID()).getPriority())) {
currentIter = iter;
}
}
else {
//Both files are from archives
if (iter->isFromArchive() && currentIter->isFromArchive()) {
- if (iter->archive.order > currentIter->archive.order) {
+ if (iter->archive().order() > currentIter->archive().order()) {
currentIter = iter;
}
}
@@ -116,8 +116,8 @@ bool FileEntry::removeOrigin(OriginID origin)
}
}
- OriginID currentID = currentIter->originID;
- m_Archive = currentIter->archive;
+ OriginID currentID = currentIter->originID();
+ m_Archive = currentIter->archive();
m_Alternatives.erase(currentIter);
m_Origin = currentID;
@@ -129,7 +129,7 @@ bool FileEntry::removeOrigin(OriginID origin)
} else {
auto newEnd = std::remove_if(
m_Alternatives.begin(), m_Alternatives.end(),
- [&](auto &i) { return i.originID == origin; });
+ [&](auto &i) { return i.originID() == origin; });
if (newEnd != m_Alternatives.end()) {
m_Alternatives.erase(newEnd, m_Alternatives.end());
@@ -146,12 +146,12 @@ void FileEntry::sortOrigins()
std::sort(m_Alternatives.begin(), m_Alternatives.end(), [&](auto&& LHS, auto&& RHS) {
if (!LHS.isFromArchive() && !RHS.isFromArchive()) {
- int l = m_Parent->getOriginByID(LHS.originID).getPriority();
+ int l = m_Parent->getOriginByID(LHS.originID()).getPriority();
if (l < 0) {
l = INT_MAX;
}
- int r = m_Parent->getOriginByID(RHS.originID).getPriority();
+ int r = m_Parent->getOriginByID(RHS.originID()).getPriority();
if (r < 0) {
r = INT_MAX;
}
@@ -160,8 +160,8 @@ void FileEntry::sortOrigins()
}
if (LHS.isFromArchive() && RHS.isFromArchive()) {
- int l = LHS.archive.order; if (l < 0) l = INT_MAX;
- int r = RHS.archive.order; if (r < 0) r = INT_MAX;
+ int l = LHS.archive().order(); if (l < 0) l = INT_MAX;
+ int r = RHS.archive().order(); if (r < 0) r = INT_MAX;
return l < r;
}
@@ -174,8 +174,8 @@ void FileEntry::sortOrigins()
});
if (!m_Alternatives.empty()) {
- m_Origin = m_Alternatives.back().originID;
- m_Archive = m_Alternatives.back().archive;
+ m_Origin = m_Alternatives.back().originID();
+ m_Archive = m_Alternatives.back().archive();
m_Alternatives.pop_back();
}
}
@@ -188,12 +188,12 @@ bool FileEntry::isFromArchive(std::wstring archiveName) const
return m_Archive.isValid();
}
- if (m_Archive.name.compare(archiveName) == 0) {
+ if (m_Archive.name().compare(archiveName) == 0) {
return true;
}
for (auto alternative : m_Alternatives) {
- if (alternative.archive.name.compare(archiveName) == 0) {
+ if (alternative.archive().name().compare(archiveName) == 0) {
return true;
}
}
diff --git a/src/shared/fileregister.cpp b/src/shared/fileregister.cpp
index d5a23a7a..f9d57734 100644
--- a/src/shared/fileregister.cpp
+++ b/src/shared/fileregister.cpp
@@ -172,7 +172,7 @@ void FileRegister::unregisterFile(FileEntryPtr file)
const auto& alternatives = file->getAlternatives();
for (auto iter = alternatives.begin(); iter != alternatives.end(); ++iter) {
- m_OriginConnection->getByID(iter->originID).removeFile(file->getIndex());
+ m_OriginConnection->getByID(iter->originID()).removeFile(file->getIndex());
}
// unregister from directory
diff --git a/src/shared/fileregisterfwd.h b/src/shared/fileregisterfwd.h
index a3cf8132..57b3715a 100644
--- a/src/shared/fileregisterfwd.h
+++ b/src/shared/fileregisterfwd.h
@@ -46,29 +46,44 @@ constexpr OriginID InvalidOriginID = -1;
// is the order of the associated plugin in the plugins list
// is a file is not in an archive, archiveName is empty and order is usually
// -1
-struct DataArchiveOrigin
+class DataArchiveOrigin
{
- std::wstring name = L"";
- int order = -1;
+ std::wstring name_ = L"";
+ int order_ = -1;
+
+public:
+
+ int order() const { return order_; }
+ const std::wstring& name() const { return name_; }
bool isValid() const {
- return name.size() > 0;
+ return name_.size() > 0;
}
- DataArchiveOrigin(std::wstring pname, int porder)
- : name(pname), order(porder) {}
+ DataArchiveOrigin(std::wstring name, int order)
+ : name_(std::move(name)), order_(order) {}
- DataArchiveOrigin() {}
+ DataArchiveOrigin() = default;
};
-struct FileAlternative
+class FileAlternative
{
- OriginID originID = -1;
- DataArchiveOrigin archive;
+ OriginID originID_ = -1;
+ DataArchiveOrigin archive_;
+
+public:
+
+ OriginID originID() const { return originID_; }
+ const DataArchiveOrigin& archive() const { return archive_; }
bool isFromArchive() const {
- return archive.isValid();
+ return archive_.isValid();
}
+
+ FileAlternative() = default;
+
+ FileAlternative(OriginID originID, DataArchiveOrigin archive)
+ : originID_(originID), archive_(std::move(archive)) {}
};
using AlternativesVector = std::vector<FileAlternative>;