# HG changeset patch # User František Kučera # Date 1579522763 -3600 # Node ID ef726975c34be7e5eff27ebc21aa8d7654237f49 # Parent 170a993745be775486ba771369abc27331ce344d parallel processing: rename FilesystemCommandBase to FilesystemCommand diff -r 170a993745be -r ef726975c34b src/FilesystemCommand.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/FilesystemCommand.h Mon Jan 20 13:19:23 2020 +0100 @@ -0,0 +1,83 @@ +/** + * Relational pipes + * Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include + +#include "Configuration.h" +#include "AttributeFinder.h" +#include "FileAttributeFinder.h" +#include "XattrAttributeFinder.h" +#include "StreamletAttributeFinder.h" + +namespace relpipe { +namespace in { +namespace filesystem { + +namespace fs = std::filesystem; +using namespace relpipe::writer; + +class FilesystemCommand { +protected: + std::wstring_convert> convertor; // TODO: support also other encodings. + + std::map> createAttributeFinders() { + return { + {RequestedField::GROUP_FILE, std::make_shared()}, + {RequestedField::GROUP_STREAMLET, std::make_shared()}, + {RequestedField::GROUP_XATTR, std::make_shared()}}; + } + + void reset(std::stringstream& stream) { + stream.str(""); + stream.clear(); + } + + bool readNext(std::istream& input, std::stringstream& originalName) { + for (char ch; input.get(ch);) { + if (ch == 0) return true; + else originalName << ch; + } + return originalName.tellp(); + } + +public: + + virtual ~FilesystemCommand() = default; + + virtual void process(std::istream& input, std::ostream& output, Configuration& configuration) = 0; +}; + +} +} +} diff -r 170a993745be -r ef726975c34b src/FilesystemCommandBase.h --- a/src/FilesystemCommandBase.h Mon Jan 20 13:11:50 2020 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/** - * Relational pipes - * Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include - -#include "Configuration.h" -#include "AttributeFinder.h" -#include "FileAttributeFinder.h" -#include "XattrAttributeFinder.h" -#include "StreamletAttributeFinder.h" - -namespace relpipe { -namespace in { -namespace filesystem { - -namespace fs = std::filesystem; -using namespace relpipe::writer; - -class FilesystemCommandBase { -protected: - std::wstring_convert> convertor; // TODO: support also other encodings. - - std::map> createAttributeFinders() { - return { - {RequestedField::GROUP_FILE, std::make_shared()}, - {RequestedField::GROUP_STREAMLET, std::make_shared()}, - {RequestedField::GROUP_XATTR, std::make_shared()}}; - } - - void reset(std::stringstream& stream) { - stream.str(""); - stream.clear(); - } - - bool readNext(std::istream& input, std::stringstream& originalName) { - for (char ch; input.get(ch);) { - if (ch == 0) return true; - else originalName << ch; - } - return originalName.tellp(); - } - -public: - - virtual ~FilesystemCommandBase() = default; - - virtual void process(std::istream& input, std::ostream& output, Configuration& configuration) = 0; -}; - -} -} -} diff -r 170a993745be -r ef726975c34b src/ParallelFilesystemCommand.h --- a/src/ParallelFilesystemCommand.h Mon Jan 20 13:11:50 2020 +0100 +++ b/src/ParallelFilesystemCommand.h Mon Jan 20 13:19:23 2020 +0100 @@ -16,7 +16,7 @@ */ #pragma once -#include "FilesystemCommandBase.h" +#include "FilesystemCommand.h" namespace relpipe { namespace in { @@ -25,7 +25,7 @@ namespace fs = std::filesystem; using namespace relpipe::writer; -class ParallelFilesystemCommand : public FilesystemCommandBase { +class ParallelFilesystemCommand : public FilesystemCommand { public: void process(std::istream& input, std::ostream& output, Configuration& configuration) { diff -r 170a993745be -r ef726975c34b src/PlainFilesystemCommand.h --- a/src/PlainFilesystemCommand.h Mon Jan 20 13:11:50 2020 +0100 +++ b/src/PlainFilesystemCommand.h Mon Jan 20 13:19:23 2020 +0100 @@ -16,7 +16,7 @@ */ #pragma once -#include "FilesystemCommandBase.h" +#include "FilesystemCommand.h" namespace relpipe { namespace in { @@ -25,7 +25,7 @@ namespace fs = std::filesystem; using namespace relpipe::writer; -class PlainFilesystemCommand : public FilesystemCommandBase { +class PlainFilesystemCommand : public FilesystemCommand { private: std::map> attributeFinders = createAttributeFinders(); diff -r 170a993745be -r ef726975c34b src/relpipe-in-filesystem.cpp --- a/src/relpipe-in-filesystem.cpp Mon Jan 20 13:11:50 2020 +0100 +++ b/src/relpipe-in-filesystem.cpp Mon Jan 20 13:19:23 2020 +0100 @@ -47,7 +47,7 @@ try { CLIParser cliParser; Configuration configuration = cliParser.parse(cli.arguments()); - std::unique_ptr command; + std::unique_ptr command; if (configuration.parallelism == 1) command = std::make_unique(); else command = std::make_unique(); command->process(cin, cout, configuration);