Use an enum type for the 'should read fingerprint' flag, rather than a mysterious boolean

Fix tests.
This commit is contained in:
Daniel Patterson
2016-11-15 14:49:28 -08:00
parent 7b1131b982
commit 53ef2e2955
7 changed files with 58 additions and 47 deletions
+9 -4
View File
@@ -31,19 +31,24 @@ class FileReader
boost::filesystem::ifstream input_stream;
public:
FileReader(const std::string &filename, const bool check_fingerprint = false)
: FileReader(boost::filesystem::path(filename), check_fingerprint)
enum FingerprintFlag
{
VerifyFingerprint,
HasNoFingerprint
};
FileReader(const std::string &filename, const FingerprintFlag flag)
: FileReader(boost::filesystem::path(filename), flag)
{
}
FileReader(const boost::filesystem::path &filename_, const bool check_fingerprint = false)
FileReader(const boost::filesystem::path &filename_, const FingerprintFlag flag)
: filename(filename_.string())
{
input_stream.open(filename_, std::ios::binary);
if (!input_stream)
throw util::exception("Error opening " + filename + ":" + std::strerror(errno));
if (check_fingerprint && !ReadAndCheckFingerprint())
if (flag == VerifyFingerprint && !ReadAndCheckFingerprint())
{
throw util::exception("Fingerprint mismatch in " + filename);
}
-1
View File
@@ -7,7 +7,6 @@
#include <cstdint>
#include <array>
#include <iostream>
namespace osrm
{