[Pkg-running-devel] [antpm] 26/31: antpm: don't download fit files already in database
Kristof Ralovich
ralovich-guest at moszumanska.debian.org
Fri Mar 24 23:19:38 UTC 2017
This is an automated email from the git hooks/post-receive script.
ralovich-guest pushed a commit to branch master
in repository antpm.
commit e50f524468340a07b0a686a2552a675bbdddde8f
Author: RALOVICH, Kristof <tade60 at freemail.hu>
Date: Fri Mar 24 16:51:43 2017 +0100
antpm: don't download fit files already in database
---
src/AntFr310XT.cpp | 6 ++++++
src/DeviceSettings.cpp | 2 +-
src/DeviceSettings.hpp | 4 ++--
src/FIT.cpp | 26 ++++++++++++++++++++++++++
src/FIT.hpp | 2 ++
5 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/src/AntFr310XT.cpp b/src/AntFr310XT.cpp
index 4bbb930..107fadb 100644
--- a/src/AntFr310XT.cpp
+++ b/src/AntFr310XT.cpp
@@ -496,6 +496,8 @@ AntFr310XT::handleEvents()
}
else if(state == ST_ANTFS_DL_DIRECTORY)
{
+ Database db = m_ds->getDatabaseFiles();
+
CHECK_RETURN_FALSE(createDownloadFolder());
//ANTFS_Upload(); //command pipe
@@ -518,6 +520,10 @@ AntFr310XT::handleEvents()
LOG_VAR(zfc.activityFiles.size());
LOG_VAR(zfc.courseFiles.size());
LOG_VAR(zfc.waypointsFiles.size());
+ zfc.cullFitFiles(db);
+ LOG_VAR(zfc.activityFiles.size());
+ LOG_VAR(zfc.courseFiles.size());
+ LOG_VAR(zfc.waypointsFiles.size());
// TODO: read bcast here?
diff --git a/src/DeviceSettings.cpp b/src/DeviceSettings.cpp
index 7d60f36..d8caee0 100644
--- a/src/DeviceSettings.cpp
+++ b/src/DeviceSettings.cpp
@@ -113,7 +113,7 @@ DeviceSettings::getDatabaseFiles(size_t count) const
{
continue;
}
- files.insert(DatabaseEntity(static_cast<ushort>(value),
+ files.insert(DatabaseEntity(static_cast<uint16_t>(value),
FITEntity(fit.path().string(), fs::file_size(fit.path()))));
}
}
diff --git a/src/DeviceSettings.hpp b/src/DeviceSettings.hpp
index d3e6cc8..65fa8ee 100644
--- a/src/DeviceSettings.hpp
+++ b/src/DeviceSettings.hpp
@@ -33,8 +33,8 @@ namespace antpm {
// <fileIdx, <path, bytes> >
typedef std::pair<std::string, size_t> FITEntity;
-typedef std::multimap<ushort, FITEntity> Database;
-typedef std::pair<ushort, FITEntity> DatabaseEntity;
+typedef std::multimap<uint16_t, FITEntity> Database;
+typedef std::pair<uint16_t, FITEntity> DatabaseEntity;
class DeviceSettings
{
diff --git a/src/FIT.cpp b/src/FIT.cpp
index 048b3c1..99c9fed 100644
--- a/src/FIT.cpp
+++ b/src/FIT.cpp
@@ -66,6 +66,32 @@ ZeroFileContent::getFitFileTime(const uint16_t idx)
return 0;
}
+void ZeroFileContent::cullFitFiles(const std::multimap<uint16_t, std::pair<string, size_t> >& files)
+{
+ for(auto it : files)
+ {
+ cullFitFile(it.first, it.second.second);
+ }
+}
+
+void ZeroFileContent::cullFitFile(const uint16_t idx, const size_t file_size_bytes)
+{
+ auto remover = [this,idx,file_size_bytes](uint16_t file_idx)
+ {
+ ZeroFileRecord& zfRecord(zfRecords[file_idx]);
+ if(idx == file_idx && file_size_bytes == zfRecord.fileSize) {
+ return true;
+ }
+ return false;
+ };
+ waypointsFiles.erase(std::remove_if(waypointsFiles.begin(), waypointsFiles.end(),
+ remover), waypointsFiles.end());
+ activityFiles.erase(std::remove_if(activityFiles.begin(), activityFiles.end(),
+ remover), activityFiles.end());
+ courseFiles.erase(std::remove_if(courseFiles.begin(), courseFiles.end(),
+ remover), courseFiles.end());
+}
+
FIT::FIT()
{
diff --git a/src/FIT.hpp b/src/FIT.hpp
index f848cec..41cdedf 100644
--- a/src/FIT.hpp
+++ b/src/FIT.hpp
@@ -284,6 +284,8 @@ public:
std::vector<uint16_t> waypointsFiles;
std::vector<uint16_t> courseFiles;
std::time_t getFitFileTime(const uint16_t idx); // represented in garmintime
+ void cullFitFiles(const std::multimap<uint16_t, std::pair<std::string, size_t>>& files);
+ void cullFitFile(const uint16_t idx, const size_t file_size_bytes);
};
class FIT
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-running/antpm.git
More information about the Pkg-running-devel
mailing list