diff -r 09cd32a65709 -r 3c8ea5dcf793 src/ArgumentsCommand.h --- a/src/ArgumentsCommand.h Tue Sep 22 17:42:19 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/** - * Relational pipes - * Copyright © 2018 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 "Command.h" - -namespace relpipe { -namespace in { -namespace cli { - -class ArgumentsCommand : public Command { -public: - - void process(std::istream& input, std::ostream& output, const relpipe::writer::string_t& command, const std::vector& arguments) override { - using namespace relpipe::writer; - - size_t i = 0; - string_t relationName = arguments[i++]; - integer_t attributeCount = std::stol(arguments[i++]); // TODO: use integer data type's method? + unsigned type - boolean_t writeHeader = true; // TODO: add option for header omitting - - // TODO: check argument count - - std::shared_ptr writer(Factory::create(output)); - - std::vector attributes(attributeCount); - - for (size_t j = 0; j < attributeCount; j++) { - string_t attributeName = arguments[i++]; - TypeId attributeType = writer->toTypeId(arguments[i++]); - attributes[j] = {attributeName, attributeType}; - } - - writer->startRelation(relationName, attributes, writeHeader); - - for (; i < arguments.size(); i++) { - writer->writeAttribute(arguments[i]); - } - } -}; - -} -} -}