From 6af6fe15f9f95440736b854c2fe3f66baab77854 Mon Sep 17 00:00:00 2001 From: Daniel Tam Date: Sun, 3 Sep 2017 13:48:58 -0500 Subject: [PATCH] Created program with params --- server/.gitignore | 1 + server/argh.h | 328 +++++++++++++++++++++++++++++++++++++++++++++ server/cardnet.cpp | 66 +++++++++ server/cardnet.exe | Bin 0 -> 233077 bytes 4 files changed, 395 insertions(+) create mode 100644 server/.gitignore create mode 100644 server/argh.h create mode 100644 server/cardnet.cpp create mode 100755 server/cardnet.exe diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 0000000..4d294b6 --- /dev/null +++ b/server/.gitignore @@ -0,0 +1 @@ +cardnet diff --git a/server/argh.h b/server/argh.h new file mode 100644 index 0000000..9585355 --- /dev/null +++ b/server/argh.h @@ -0,0 +1,328 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +namespace argh +{ + // Terminology: + // A command line is composed of 2 types of args: + // 1. Positional args, i.e. free standing values + // 2. Options: args beginning with '-'. We identify two kinds: + // 2.1: Flags: boolean options => (exist ? true : false) + // 2.2: Parameters: a name followed by a non-option value + +#if !defined(__GNUC__) || (__GNUC__ >= 5) + using string_stream = std::istringstream; +#else + // Until GCC 5, istringstream did not have a move constructor. + // stringstream_proxy is used instead, as a workaround. + class stringstream_proxy + { + public: + stringstream_proxy() = default; + + // Construct with a value. + stringstream_proxy(std::string const& value) : + stream_(value) + {} + + // Copy constructor. + stringstream_proxy(const stringstream_proxy& other) : + stream_(other.stream_.str()) + { + stream_.setstate(other.stream_.rdstate()); + } + + void setstate(std::ios_base::iostate state) { stream_.setstate(state); } + + // Stream out the value of the parameter. + // If the conversion was not possible, the stream will enter the fail state, + // and operator bool will return false. + template + stringstream_proxy& operator >> (T& thing) + { + stream_ >> thing; + return *this; + } + + + // Get the string value. + std::string str() const { return stream_.str(); } + + std::stringbuf* rdbuf() const { return stream_.rdbuf(); } + + // Check the state of the stream. + // False when the most recent stream operation failed + operator bool() const { return !!stream_; } + + ~stringstream_proxy() = default; + private: + std::istringstream stream_; + }; + using string_stream = stringstream_proxy; +#endif + + class parser + { + public: + enum Mode { PREFER_FLAG_FOR_UNREG_OPTION = 1 << 0, + PREFER_PARAM_FOR_UNREG_OPTION = 1 << 1, + NO_SPLIT_ON_EQUALSIGN = 1 << 2, + SINGLE_DASH_IS_MULTIFLAG = 1 << 3, + }; + + parser() = default; + parser(int argc, const char* const argv[], int mode = PREFER_FLAG_FOR_UNREG_OPTION) + { + parse(argc, argv, mode); + } + + void add_param(std::string const& name); + void parse(int argc, const char* const argv[], int mode = PREFER_FLAG_FOR_UNREG_OPTION); + + std::multiset const& flags() const { return flags_; } + std::map const& params() const { return params_; } + std::vector const& pos_args() const { return pos_args_; } + + ////////////////////////////////////////////////////////////////////////// + // Accessors + + // flag (boolean) accessors: return true if the flag appeared, otherwise false. + bool operator[](std::string const& name); + + // returns positional arg string by order. Like argv[] but without the options + std::string const& operator[](size_t ind); + + // returns a std::istream that can be used to convert a positional arg to a typed value. + string_stream operator()(size_t ind); + + // same as above, but with a default value in case the arg is missing (index out of range). + template + string_stream operator()(size_t ind, T&& def_val); + + // parameter accessors, give a name get an std::istream that can be used to convert to a typed value. + // call .str() on result to get as string + string_stream operator()(std::string const& name); + + // same as above, but with a default value in case the param was missing. + // Non-string def_val types must have an operator<<() (output stream operator) + // If T only has an input stream operator, pass the string version of the type as in "3" instead of 3. + template + string_stream operator()(std::string const& name, T&& def_val); + + private: + string_stream bad_stream() const; + std::string trim_leading_dashes(std::string const& name); + bool is_number(std::string const& arg); + bool is_option(std::string const& arg); + + private: + std::vector args_; + std::map params_; + std::vector pos_args_; + std::multiset flags_; + std::set registeredParams_; + std::string empty_; + }; + + + ////////////////////////////////////////////////////////////////////////// + + void parser::parse(int argc, const char* const argv[], int mode /*= PREFER_FLAG_FOR_UNREG_OPTION*/) + { + // convert to strings + args_.resize(argc); + std::transform(argv, argv + argc, args_.begin(), [](const char* const arg) { return arg; }); + + // parse line + for (auto i = 0u; i < args_.size(); ++i) + { + if (!is_option(args_[i])) + { + pos_args_.emplace_back(args_[i]); + continue; + } + + auto name = trim_leading_dashes(args_[i]); + + if (!(mode & NO_SPLIT_ON_EQUALSIGN)) + { + auto equalPos = name.find('='); + if (equalPos != std::string::npos) + { + params_.insert({ name.substr(0, equalPos), name.substr(equalPos + 1) }); + continue; + } + } + + // if the option is unregistered and should be a multi-flag + if (1 == (args_[i].size() - name.size()) && // single dash + argh::parser::SINGLE_DASH_IS_MULTIFLAG & mode && // multi-flag mode + registeredParams_.find(name) == registeredParams_.end()) // unregistered + { + for (auto const& c : name) + { + flags_.emplace(std::string{ c }); + } + } + + // any potential option will get as its value the next arg, unless that arg is an option too + // in that case it will be determined a flag. + if (i == args_.size() - 1 || is_option(args_[i + 1])) + { + flags_.emplace(name); + continue; + } + + // if 'name' is a pre-registered option, then the next arg cannot be a free parameter to it is skipped + // otherwise we have 2 modes: + // PREFER_FLAG_FOR_UNREG_OPTION: a non-registered 'name' is determined a flag. + // The following value (the next arg) will be a free parameter. + // + // PREFER_PARAM_FOR_UNREG_OPTION: a non-registered 'name' is determined a parameter, the next arg + // will be the value of that option. + + if (registeredParams_.find(name) != registeredParams_.end() || + argh::parser::PREFER_PARAM_FOR_UNREG_OPTION & mode) + { + params_.insert({ name, args_[i + 1] }); + ++i; // skip next value, it is not a free parameter + continue; + } + + if (argh::parser::PREFER_FLAG_FOR_UNREG_OPTION & mode) + flags_.emplace(name); + }; + } + + ////////////////////////////////////////////////////////////////////////// + + string_stream parser::bad_stream() const + { + string_stream bad; + bad.setstate(std::ios_base::failbit); + return bad; + } + + ////////////////////////////////////////////////////////////////////////// + + bool parser::is_number(std::string const& arg) + { + // inefficient but simple way to determine if a string is a number (which can start with a '-') + std::istringstream istr(arg); + double number; + istr >> number; + return !(istr.fail() || istr.bad()); + } + + ////////////////////////////////////////////////////////////////////////// + + bool parser::is_option(std::string const& arg) + { + assert(0 != arg.size()); + if (is_number(arg)) + return false; + return '-' == arg[0]; + } + + ////////////////////////////////////////////////////////////////////////// + + std::string parser::trim_leading_dashes(std::string const& name) + { + auto pos = name.find_first_not_of('-'); + return name.substr(pos); + } + + ////////////////////////////////////////////////////////////////////////// + + bool parser::operator[](std::string const& name) + { + return flags_.end() != flags_.find(trim_leading_dashes(name)); + } + + ////////////////////////////////////////////////////////////////////////// + + std::string const& parser::operator[](size_t ind) + { + if (ind < pos_args_.size()) + return pos_args_[ind]; + return empty_; + } + + ////////////////////////////////////////////////////////////////////////// + + string_stream parser::operator()(std::string const& name) + { + if (name.empty()) + return bad_stream(); + + auto optIt = params_.find(trim_leading_dashes(name)); + if (params_.end() == optIt) + return bad_stream(); + + return string_stream(optIt->second); + } + + ////////////////////////////////////////////////////////////////////////// + + template + string_stream parser::operator()(std::string const& name, T&& def_val) + { + if (name.empty()) + { + std::ostringstream ostr; + ostr << def_val; + return string_stream(ostr.str()); + } + + auto optIt = params_.find(trim_leading_dashes(name)); + if (params_.end() == optIt) + { + std::ostringstream ostr; + ostr << def_val; + return string_stream(ostr.str()); + } + + return string_stream(optIt->second); + } + + ////////////////////////////////////////////////////////////////////////// + + string_stream parser::operator()(size_t ind) + { + if (pos_args_.size() <= ind) + return bad_stream(); + + return string_stream(pos_args_[ind]); + } + + ////////////////////////////////////////////////////////////////////////// + + template + string_stream parser::operator()(size_t ind, T&& def_val) + { + if (pos_args_.size() <= ind) + { + std::ostringstream ostr; + ostr << def_val; + return string_stream(ostr.str()); + } + + return string_stream(pos_args_[ind]); + } + + ////////////////////////////////////////////////////////////////////////// + + void parser::add_param(std::string const& name) + { + registeredParams_.insert(trim_leading_dashes(name)); + } +} + + diff --git a/server/cardnet.cpp b/server/cardnet.cpp new file mode 100644 index 0000000..fd09a6d --- /dev/null +++ b/server/cardnet.cpp @@ -0,0 +1,66 @@ +#include +#include +#include "argh.h" + +void exampleMessage(); + +int main (int argc, char* argv[]) +{ + std::string file, check; + //std::string check = "" ; + int port = 0; + + argh::parser cmdl; + cmdl.parse(argc, argv, argh::parser::PREFER_PARAM_FOR_UNREG_OPTION); + + if(cmdl["-h"]) // help + { + exampleMessage(); + } + + for(auto& param: cmdl.params()) + { + if(!param.first.compare("f")) // card0 file + { + file = param.second; + } + if(!param.first.compare("c")) // checker file + { + check = param.second; + } + if(!param.first.compare("p")) // port + { + try + { + port = stoi(param.second); // convert to int + if (port < 1 || port > 65535) // validate port number + exampleMessage(); + } + catch (std::invalid_argument) + { + exampleMessage(); + } + } + } + + if(file == "" || check == "" || port == 0) + exampleMessage(); + + std::cout << "File:\t" << file << std::endl; + std::cout << "Check:\t" << check << std::endl; + std::cout << "Port:\t" << port << std::endl; + + + return 0; +} + +void exampleMessage() +{ + std::cout << "Availble options:" << std::endl; + std::cout << " -f\tLocation of card0.txt file" << std::endl; + std::cout << " -c\tLocation of check file" << std::endl; + std::cout << " -p\tPort number to listen on (1-65535)" << std::endl; + std::cout << std::endl << "Example usage: cardnet.exe -f G:\\card0.txt -c G:\\check.txt -p 4500" << std::endl; + exit(0); + +} \ No newline at end of file diff --git a/server/cardnet.exe b/server/cardnet.exe new file mode 100755 index 0000000000000000000000000000000000000000..c7b811ef0639a09f718d9d8b0751755e0ca2f2e6 GIT binary patch literal 233077 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

n8 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 WO4=<3`uHTi&8