Initial commit
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
#include "convert.h"
|
||||
|
||||
BEGIN_NAMESPACE(BusinessLogic)
|
||||
BEGIN_NAMESPACE(Convert)
|
||||
|
||||
size_t FromStdString::operator()(const std::array<char, 5> &value, size_t alphabetPower) const {
|
||||
if (value.empty()) {
|
||||
throw std::invalid_argument("undefined key");
|
||||
}
|
||||
|
||||
size_t result = 0;
|
||||
size_t counter = 0;
|
||||
for (auto crbegin = value.crbegin(), crend = value.crend()
|
||||
; crbegin != crend && *crbegin >= '!' && *crbegin <= '~'; ++crbegin, ++counter
|
||||
) {
|
||||
result += (*crbegin) * std::pow(alphabetPower, counter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
END_NAMESPACE // Convert
|
||||
END_NAMESPACE // BusinessLogic
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef CONVERT_H
|
||||
#define CONVERT_H
|
||||
|
||||
#include "../businessLogic.h"
|
||||
|
||||
#include <string>
|
||||
#include <stdexcept>
|
||||
#include <limits>
|
||||
#include <array>
|
||||
#include <cmath>
|
||||
|
||||
BEGIN_NAMESPACE(BusinessLogic)
|
||||
BEGIN_NAMESPACE(Convert)
|
||||
|
||||
class FromStdString
|
||||
{
|
||||
public:
|
||||
size_t operator()(const std::array<char, 5> &, size_t) const;
|
||||
};
|
||||
|
||||
END_NAMESPACE // Convert
|
||||
END_NAMESPACE // BusinessLogic
|
||||
|
||||
#endif // CONVERT_H
|
||||
Reference in New Issue
Block a user