Adapt to changes in c++utilities

This commit is contained in:
Martchus 2019-06-10 22:44:05 +02:00
parent 533ecbef96
commit 245a5f6803
3 changed files with 16 additions and 19 deletions

View File

@ -1,6 +1,6 @@
#include "./angle.h" #include "./angle.h"
#include <c++utilities/application/failure.h> #include <c++utilities/misc/parseerror.h>
#include <c++utilities/conversion/stringconversion.h> #include <c++utilities/conversion/stringconversion.h>
#include <cmath> #include <cmath>
@ -13,8 +13,7 @@
#endif #endif
using namespace std; using namespace std;
using namespace ApplicationUtilities; using namespace CppUtilities;
using namespace ConversionUtilities;
Angle::Angle() Angle::Angle()
: m_val(0) : m_val(0)
@ -46,14 +45,14 @@ Angle::Angle(const string &value, AngularMeasure measure)
if (mpos == string::npos) if (mpos == string::npos)
m_val += stringToNumber<double>(value); m_val += stringToNumber<double>(value);
else if (mpos >= (value.length() - 1)) else if (mpos >= (value.length() - 1))
throw Failure("excepted minutes after ':' in " + value); throw ParseError("excepted minutes after ':' in " + value);
else { else {
m_val += stringToNumber<double>(value.substr(0, mpos)); m_val += stringToNumber<double>(value.substr(0, mpos));
spos = value.find(':', mpos + 1); spos = value.find(':', mpos + 1);
if (spos == string::npos) if (spos == string::npos)
m_val += stringToNumber<double>(value.substr(mpos + 1)) / 60.0; m_val += stringToNumber<double>(value.substr(mpos + 1)) / 60.0;
else if (spos >= (value.length() - 1)) else if (spos >= (value.length() - 1))
throw Failure("excepted seconds after second ':'' in " + value); throw ParseError("excepted seconds after second ':'' in " + value);
else else
m_val += (stringToNumber<double>(value.substr(mpos + 1, spos - mpos - 1)) / 60.0) m_val += (stringToNumber<double>(value.substr(mpos + 1, spos - mpos - 1)) / 60.0)
+ (stringToNumber<double>(value.substr(spos + 1)) / 3600.0); + (stringToNumber<double>(value.substr(spos + 1)) / 3600.0);

View File

@ -1,6 +1,6 @@
#include "./location.h" #include "./location.h"
#include <c++utilities/application/failure.h> #include <c++utilities/misc/parseerror.h>
#include <c++utilities/conversion/stringconversion.h> #include <c++utilities/conversion/stringconversion.h>
#include <cmath> #include <cmath>
@ -8,8 +8,7 @@
#include <sstream> #include <sstream>
using namespace std; using namespace std;
using namespace ApplicationUtilities; using namespace CppUtilities;
using namespace ConversionUtilities;
// WGS84 Parameters // WGS84 Parameters
#define WGS84_A 6378137.0 // major axis #define WGS84_A 6378137.0 // major axis
@ -54,11 +53,11 @@ Location::Location(const string &latitudeAndLongitude, Angle::AngularMeasure mea
{ {
string::size_type dpos = latitudeAndLongitude.find(','); string::size_type dpos = latitudeAndLongitude.find(',');
if (dpos == string::npos) if (dpos == string::npos)
throw Failure("Pair of coordinates (latitude and longitude) required."); throw ParseError("Pair of coordinates (latitude and longitude) required.");
else if (dpos >= (latitudeAndLongitude.length() - 1)) else if (dpos >= (latitudeAndLongitude.length() - 1))
throw Failure("No second longitude following after comma."); throw ParseError("No second longitude following after comma.");
else if (latitudeAndLongitude.find(',', dpos + 1) != string::npos) else if (latitudeAndLongitude.find(',', dpos + 1) != string::npos)
throw Failure("More then 2 coordinates given."); throw ParseError("More then 2 coordinates given.");
m_lat = Angle(latitudeAndLongitude.substr(0, dpos), measure); m_lat = Angle(latitudeAndLongitude.substr(0, dpos), measure);
m_lon = Angle(latitudeAndLongitude.substr(dpos + 1), measure); m_lon = Angle(latitudeAndLongitude.substr(dpos + 1), measure);
} }
@ -199,7 +198,7 @@ Location Location::midpoint(const Location &location1, const Location &location2
double Location::trackLength(const std::vector<Location> &track, bool circle) double Location::trackLength(const std::vector<Location> &track, bool circle)
{ {
if (track.size() < 2) if (track.size() < 2)
throw Failure("At least two locations are required to calculate a distance."); throw ParseError("At least two locations are required to calculate a distance.");
const Location *location1 = &track.at(0); const Location *location1 = &track.at(0);
const Location *location2 = &track.at(1); const Location *location2 = &track.at(1);
@ -288,7 +287,7 @@ void Location::setValueByProvidedUtmWgs4Coordinates(const string &utmWgs4Coordin
return; return;
} }
} }
throw Failure("UTM coordinates incomplete."); throw ParseError("UTM coordinates incomplete.");
} }
void Location::setValueByProvidedUtmWgs4Coordinates(int zone, char zoneDesignator, double easting, double northing) void Location::setValueByProvidedUtmWgs4Coordinates(int zone, char zoneDesignator, double easting, double northing)

View File

@ -4,7 +4,7 @@
#include "resources/config.h" #include "resources/config.h"
#include <c++utilities/application/argumentparser.h> #include <c++utilities/application/argumentparser.h>
#include <c++utilities/application/failure.h> #include <c++utilities/misc/parseerror.h>
#include <c++utilities/conversion/stringbuilder.h> #include <c++utilities/conversion/stringbuilder.h>
#include <c++utilities/conversion/stringconversion.h> #include <c++utilities/conversion/stringconversion.h>
@ -13,8 +13,7 @@
#include <iostream> #include <iostream>
using namespace std; using namespace std;
using namespace ConversionUtilities; using namespace CppUtilities;
using namespace ApplicationUtilities;
Angle::AngularMeasure inputAngularMeasure = Angle::AngularMeasure::Degree; Angle::AngularMeasure inputAngularMeasure = Angle::AngularMeasure::Degree;
Angle::OutputForm outputFormForAngles = Angle::OutputForm::Degrees; Angle::OutputForm outputFormForAngles = Angle::OutputForm::Degrees;
@ -103,7 +102,7 @@ int main(int argc, char *argv[])
Argument version("version", 'v', "Shows the version of this application."); Argument version("version", 'v', "Shows the version of this application.");
argparser.setMainArguments({ &help, &convert, &distance, &trackLength, &bearing, &fbearing, &midpoint, &destination, &gmapsLink, argparser.setMainArguments({ &help, &convert, &distance, &trackLength, &bearing, &fbearing, &midpoint, &destination, &gmapsLink,
&inputAngularMeasureArg, &outputFormForAnglesArg, &inputSystemForLocationsArg, &outputSystemForLocationsArg, &version }); &inputAngularMeasureArg, &outputFormForAnglesArg, &inputSystemForLocationsArg, &outputSystemForLocationsArg, &version });
argparser.parseArgsOrExit(argc, argv); argparser.parseArgs(argc, argv);
if (inputAngularMeasureArg.isPresent()) { if (inputAngularMeasureArg.isPresent()) {
const char *inputFormat = inputAngularMeasureArg.values().front(); const char *inputFormat = inputAngularMeasureArg.values().front();
@ -186,7 +185,7 @@ int main(int argc, char *argv[])
cerr << "The provided numbers couldn't be parsed correctly." << endl; cerr << "The provided numbers couldn't be parsed correctly." << endl;
cerr << endl; cerr << endl;
printAngleFormatInfo(cerr); printAngleFormatInfo(cerr);
} catch (const Failure &ex) { } catch (const ParseError &ex) {
cerr << "The provided locations/coordinates couldn't be parsed correctly: " << ex.what() << endl; cerr << "The provided locations/coordinates couldn't be parsed correctly: " << ex.what() << endl;
cerr << endl; cerr << endl;
printAngleFormatInfo(cerr); printAngleFormatInfo(cerr);
@ -331,7 +330,7 @@ void printMapsLink(const string &filePath)
} }
cout << "&mra=mi&mrsp=2&sz=16&z=16"; cout << "&mra=mi&mrsp=2&sz=16&z=16";
} else { } else {
throw Failure("At least one location is required to generate a link."); throw ParseError("At least one location is required to generate a link.");
} }
} catch (const std::ios_base::failure &failure) { } catch (const std::ios_base::failure &failure) {
cout << "An IO failure occured when reading file from provided path: " << failure.what() << endl; cout << "An IO failure occured when reading file from provided path: " << failure.what() << endl;