common/Protocol.cpp | 46 +++++++++------------------------------------- common/Protocol.hpp | 8 ++------ test/WhiteBoxTests.cpp | 2 +- test/httpwstest.cpp | 25 ++++++++++++------------- 4 files changed, 24 insertions(+), 57 deletions(-)
New commits: commit d906c78198468d10d70de31a23b4166924dd7550 Author: Jan Holesovsky <ke...@collabora.com> AuthorDate: Fri Nov 8 14:50:33 2019 +0100 Commit: Jan Holesovsky <ke...@collabora.com> CommitDate: Fri Nov 8 22:20:58 2019 +0100 killpoco: Remove POCO from Protocol.cpp + related StringTokenizer usage. Change-Id: I9d93c03dde110a4e88f7ec86e5934916596a27c1 Reviewed-on: https://gerrit.libreoffice.org/82301 Reviewed-by: Jan Holesovsky <ke...@collabora.com> Tested-by: Jan Holesovsky <ke...@collabora.com> diff --git a/common/Protocol.cpp b/common/Protocol.cpp index 9aa4a230a..e915f8085 100644 --- a/common/Protocol.cpp +++ b/common/Protocol.cpp @@ -19,10 +19,6 @@ #define LOK_USE_UNSTABLE_API #include <LibreOfficeKit/LibreOfficeKitEnums.h> -#include <Poco/StringTokenizer.h> - -using Poco::StringTokenizer; - namespace LOOLProtocol { std::tuple<int, int, std::string> ParseVersion(const std::string& version) @@ -31,15 +27,15 @@ namespace LOOLProtocol int minor = -1; std::string patch; - StringTokenizer firstTokens(version, ".", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM); - if (firstTokens.count() > 0) + std::vector<std::string> firstTokens(tokenize(version, '.')); + if (firstTokens.size() > 0) { major = std::stoi(firstTokens[0]); - StringTokenizer secondTokens(firstTokens[1], "-", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM); + std::vector<std::string> secondTokens(tokenize(firstTokens[1], '-')); minor = std::stoi(secondTokens[0]); - if (secondTokens.count() > 1) + if (secondTokens.size() > 1) patch = secondTokens[1]; } return std::make_tuple(major, minor, patch); @@ -167,9 +163,9 @@ namespace LOOLProtocol return false; } - bool getTokenInteger(const Poco::StringTokenizer& tokens, const std::string& name, int& value) + bool getTokenInteger(const std::vector<std::string>& tokens, const std::string& name, int& value) { - for (size_t i = 0; i < tokens.count(); i++) + for (size_t i = 0; i < tokens.size(); i++) { if (getTokenInteger(tokens[i], name, value)) return true; @@ -177,19 +173,9 @@ namespace LOOLProtocol return false; } - bool getTokenString(const Poco::StringTokenizer& tokens, const std::string& name, std::string& value) + bool getTokenKeyword(const std::vector<std::string>& tokens, const std::string& name, const std::map<std::string, int>& map, int& value) { - for (size_t i = 0; i < tokens.count(); i++) - { - if (getTokenString(tokens[i], name, value)) - return true; - } - return false; - } - - bool getTokenKeyword(const Poco::StringTokenizer& tokens, const std::string& name, const std::map<std::string, int>& map, int& value) - { - for (size_t i = 0; i < tokens.count(); i++) + for (size_t i = 0; i < tokens.size(); i++) { if (getTokenKeyword(tokens[i], name, map, value)) return true; @@ -197,19 +183,6 @@ namespace LOOLProtocol return false; } - bool getTokenInteger(const std::vector<std::string>& tokens, const std::string& name, int& value) - { - for (const auto& pair : tokens) - { - if (getTokenInteger(pair, name, value)) - { - return true; - } - } - - return false; - } - bool getTokenStringFromMessage(const std::string& message, const std::string& name, std::string& value) { if (message.size() > name.size() + 1) @@ -235,8 +208,7 @@ namespace LOOLProtocol bool getTokenKeywordFromMessage(const std::string& message, const std::string& name, const std::map<std::string, int>& map, int& value) { - Poco::StringTokenizer tokens(message, " \n", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM); - return getTokenKeyword(tokens, name, map, value); + return getTokenKeyword(tokenize(message), name, map, value); } }; diff --git a/common/Protocol.hpp b/common/Protocol.hpp index cb915fa5f..b915d1a7c 100644 --- a/common/Protocol.hpp +++ b/common/Protocol.hpp @@ -17,9 +17,7 @@ #include <map> #include <sstream> #include <string> - -#include <Poco/Format.h> -#include <Poco/StringTokenizer.h> +#include <vector> #include <Poco/Net/WebSocket.h> @@ -76,9 +74,7 @@ namespace LOOLProtocol bool getTokenString(const std::string& token, const std::string& name, std::string& value); bool getTokenKeyword(const std::string& token, const std::string& name, const std::map<std::string, int>& map, int& value); - bool getTokenInteger(const Poco::StringTokenizer& tokens, const std::string& name, int& value); - bool getTokenString(const Poco::StringTokenizer& tokens, const std::string& name, std::string& value); - bool getTokenKeyword(const Poco::StringTokenizer& tokens, const std::string& name, const std::map<std::string, int>& map, int& value); + bool getTokenKeyword(const std::vector<std::string>& tokens, const std::string& name, const std::map<std::string, int>& map, int& value); bool getTokenInteger(const std::vector<std::string>& tokens, const std::string& name, int& value); diff --git a/test/WhiteBoxTests.cpp b/test/WhiteBoxTests.cpp index 219c3ccf2..db892fdb5 100644 --- a/test/WhiteBoxTests.cpp +++ b/test/WhiteBoxTests.cpp @@ -79,7 +79,7 @@ void WhiteBoxTests::testLOOLProtocolFunctions() CPPUNIT_ASSERT_EQUAL(2, mumble); std::string message("hello x=1 y=2 foo=42 bar=hello-sailor mumble='goodbye' zip zap"); - Poco::StringTokenizer tokens(message, " ", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); + std::vector<std::string> tokens(LOOLProtocol::tokenize(message)); CPPUNIT_ASSERT(LOOLProtocol::getTokenInteger(tokens, "foo", foo)); CPPUNIT_ASSERT_EQUAL(42, foo); diff --git a/test/httpwstest.cpp b/test/httpwstest.cpp index e49e54a60..1f6ecf085 100644 --- a/test/httpwstest.cpp +++ b/test/httpwstest.cpp @@ -29,7 +29,6 @@ #include <Poco/Path.h> #include <Poco/RegularExpression.h> #include <Poco/StreamCopier.h> -#include <Poco/StringTokenizer.h> #include <Poco/URI.h> #include <Poco/DOM/Node.h> #include <Poco/DOM/Document.h> @@ -659,8 +658,8 @@ void HTTPWSTest::testExcelLoad() const auto status = assertResponseString(socket, "status:", testname); // Expected format is something like 'status: type=text parts=2 current=0 width=12808 height=1142'. - Poco::StringTokenizer tokens(status, " ", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); - CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(8), tokens.count()); + std::vector<std::string> tokens(LOOLProtocol::tokenize(status, ' ')); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(8), tokens.size()); } catch (const Poco::Exception& exc) { @@ -857,7 +856,7 @@ void HTTPWSTest::testSlideShow() response = getResponseString(socket, "downloadas:", testname); CPPUNIT_ASSERT_MESSAGE("did not receive a downloadas: message as expected", !response.empty()); - Poco::StringTokenizer tokens(response.substr(11), " ", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); + std::vector<std::string> tokens(LOOLProtocol::tokenize(response.substr(11), ' ')); // "downloadas: jail= dir= name=slideshow.svg port= id=slideshow" const std::string jail = tokens[0].substr(std::string("jail=").size()); const std::string dir = tokens[1].substr(std::string("dir=").size()); @@ -1059,11 +1058,11 @@ void HTTPWSTest::getPartHashCodes(const std::string& testname, TST_LOG("Reading parts from [" << response << "]."); // Expected format is something like 'type= parts= current= width= height= viewid= [hiddenparts=]'. - Poco::StringTokenizer tokens(line, " ", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); + std::vector<std::string> tokens(LOOLProtocol::tokenize(line, ' ')); #if defined CPPUNIT_ASSERT_GREATEREQUAL - CPPUNIT_ASSERT_GREATEREQUAL(static_cast<size_t>(7), tokens.count()); + CPPUNIT_ASSERT_GREATEREQUAL(static_cast<size_t>(7), tokens.size()); #else - CPPUNIT_ASSERT_MESSAGE("Expected at least 7 tokens.", static_cast<size_t>(7) <= tokens.count()); + CPPUNIT_ASSERT_MESSAGE("Expected at least 7 tokens.", static_cast<size_t>(7) <= tokens.size()); #endif const std::string type = tokens[0].substr(std::string("type=").size()); @@ -1107,7 +1106,7 @@ void HTTPWSTest::getCursor(const std::string& message, CPPUNIT_ASSERT_EQUAL(std::string(".uno:CellCursor"), text); text = command->get("commandValues").toString(); CPPUNIT_ASSERT(!text.empty()); - Poco::StringTokenizer position(text, ",", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); + std::vector<std::string> position(LOOLProtocol::tokenize(text, ',')); cursorX = std::stoi(position[0]); cursorY = std::stoi(position[1]); cursorWidth = std::stoi(position[2]); @@ -2101,8 +2100,8 @@ void HTTPWSTest::testCursorPosition() const auto& command0 = result0.extract<Poco::JSON::Object::Ptr>(); CPPUNIT_ASSERT_MESSAGE("missing property rectangle", command0->has("rectangle")); - Poco::StringTokenizer cursorTokens(command0->get("rectangle").toString(), ",", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); - CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), cursorTokens.count()); + std::vector<std::string> cursorTokens(LOOLProtocol::tokenize(command0->get("rectangle").toString(), ',')); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), cursorTokens.size()); // Create second view std::shared_ptr<LOOLWebSocket> socket1 = loadDocAndGetSocket(_uri, docURL, testname); @@ -2115,8 +2114,8 @@ void HTTPWSTest::testCursorPosition() const auto& command = result.extract<Poco::JSON::Object::Ptr>(); CPPUNIT_ASSERT_MESSAGE("missing property rectangle", command->has("rectangle")); - Poco::StringTokenizer viewTokens(command->get("rectangle").toString(), ",", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); - CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), viewTokens.count()); + std::vector<std::string> viewTokens(LOOLProtocol::tokenize(command->get("rectangle").toString(), ',')); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), viewTokens.size()); // check both cursor should be equal CPPUNIT_ASSERT_EQUAL(cursorTokens[0], viewTokens[0]); @@ -2150,7 +2149,7 @@ void HTTPWSTest::testAlertAllUsers() for (int i = 0; i < 2; i++) { const std::string response = assertResponseString(socket[i], "error:", testname); - Poco::StringTokenizer tokens(response.substr(6), " ", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); + std::vector<std::string> tokens(LOOLProtocol::tokenize(response.substr(6), ' ')); std::string cmd; LOOLProtocol::getTokenString(tokens, "cmd", cmd); CPPUNIT_ASSERT_EQUAL(std::string("internal"), cmd); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits