From 73eeef99f68c307a1402cd3d21ae5a0cf20cb9b1 Mon Sep 17 00:00:00 2001 From: Roland Jax Date: Mon, 24 Nov 2014 18:19:10 +0100 Subject: [PATCH] class Appl: changed command from required to not-required. --- src/lib/utils/appl.cpp | 26 +++++++++----------------- src/lib/utils/appl.h | 21 +++++++++++++-------- src/tools/ebusctl.cpp | 13 +++++++------ src/tools/ebusfeed.cpp | 6 ++---- 4 files changed, 31 insertions(+), 35 deletions(-) diff --git a/src/lib/utils/appl.cpp b/src/lib/utils/appl.cpp index c5fad1f7..92028def 100644 --- a/src/lib/utils/appl.cpp +++ b/src/lib/utils/appl.cpp @@ -107,25 +107,17 @@ void Appl::parseArgs(int argc, char* argv[]) } // check command - if (m_needCommand == true) { - for (int i = 1; i < argc; i++) { + for (int i = 1; i < argc; i++) { - if (_argv[i].rfind("-", 0) != string::npos) { - i++; - continue; - } - if (m_command.size() == 0) - m_command = _argv[i]; - else - m_arguments.push_back(_argv[i]); - } - - if (m_command.size() == 0) { - cerr << endl << "command needed" << endl; - printHelp(); + if (_argv[i].rfind("-", 0) != string::npos) { + i++; + continue; } + if (m_command.size() == 0) + m_command = _argv[i]; + else + m_arguments.push_back(_argv[i]); } - } bool Appl::checkOption(const string& option, const string& value) @@ -196,7 +188,7 @@ void Appl::printHelp() cerr << endl << "Usage:" << endl << " " << m_argv[0].substr(m_argv[0].find_last_of("/\\") + 1) << " [OPTIONS...]" ; - if (m_needCommand == true) + if (m_withCommand == true) if (m_withArgument == true) cerr << " COMMAND {ARGS...}" << endl << endl; else diff --git a/src/lib/utils/appl.h b/src/lib/utils/appl.h index 0a2a01c9..126ce567 100644 --- a/src/lib/utils/appl.h +++ b/src/lib/utils/appl.h @@ -175,6 +175,12 @@ public: * @return number of commands and arguments. */ int numArgs() const { return m_arguments.size(); } + /** + * @brief returns the string of an interested argument. + * @param num number of interested argument. + * @return the argument string. + */ + string getArg(const int num) const { return m_arguments[num]; } /** * @brief returns the string of given command. @@ -183,11 +189,10 @@ public: string getCommand() const { return m_command; } /** - * @brief returns the string of an interested argument. - * @param num number of interested argument. - * @return the argument string. + * @brief returns the string of given command. + * @return the command string. */ - string getArg(const int num) const { return m_arguments[num]; } + bool missingCommand() const { return (m_command.size() == 0 ? true : false); } private: /** private constructor - singleton pattern */ @@ -197,7 +202,7 @@ private: * @param argument is true if command could have an argument. */ Appl(const bool command, const bool argument) - : m_needCommand(command), m_withArgument(argument) {} + : m_withCommand(command), m_withArgument(argument) {} /** * @brief private copy construtor. @@ -229,10 +234,10 @@ private: /** application version string */ const char* m_version; - /** true if the application need a command */ - bool m_needCommand; + /** true if the application could have a command */ + bool m_withCommand; - /** true if the needed command could have an argument */ + /** true if the command could have an argument */ bool m_withArgument; /** command (argument 0 = command) string */ diff --git a/src/tools/ebusctl.cpp b/src/tools/ebusctl.cpp index 47ea5d06..aaaf56a3 100644 --- a/src/tools/ebusctl.cpp +++ b/src/tools/ebusctl.cpp @@ -22,13 +22,9 @@ #endif #include "appl.h" -#include "port.h" -#include "decode.h" #include "tcpsocket.h" #include -#include -#include -#include +#include using namespace std; @@ -58,6 +54,11 @@ int main(int argc, char* argv[]) // parse arguments A.parseArgs(argc, argv); + if (A.missingCommand() == true) { + cout << "interactive mode started." << endl; + exit(EXIT_FAILURE); + } + TCPClient* client = new TCPClient(); TCPSocket* socket = client->connect(A.getOptVal("server"), A.getOptVal("port")); @@ -87,6 +88,6 @@ int main(int argc, char* argv[]) delete client; - return 0; + exit(EXIT_SUCCESS); } diff --git a/src/tools/ebusfeed.cpp b/src/tools/ebusfeed.cpp index 009d8980..11cd3a4a 100644 --- a/src/tools/ebusfeed.cpp +++ b/src/tools/ebusfeed.cpp @@ -23,12 +23,10 @@ #include "appl.h" #include "port.h" -#include "decode.h" -#include "tcpsocket.h" #include +#include #include #include -#include using namespace std; @@ -96,6 +94,6 @@ int main(int argc, char* argv[]) cout << "error opening device " << A.getOptVal("device") << endl; - return 0; + exit(EXIT_SUCCESS); }