# HG changeset patch # User František Kučera # Date 1536442069 -7200 # Node ID abd3e7f2658450f17b807d944b6b04a97f2079bd # Parent befcfabc20fd59e182900507cc3e96fd0fe564b8 use for-each and type aliases diff -r befcfabc20fd -r abd3e7f26584 src/StreamRelationalReader.h --- a/src/StreamRelationalReader.h Sat Sep 08 19:43:20 2018 +0200 +++ b/src/StreamRelationalReader.h Sat Sep 08 23:27:49 2018 +0200 @@ -22,6 +22,9 @@ using namespace relpipe::protocol; +using StringHandler = relpipe::reader::handlers::RelationalReaderStringHadler; +using ValuesHandler = relpipe::reader::handlers::RelationalReaderValueHadler; + class StreamRelationalReader : public RelationalReader { private: std::istream &input; @@ -30,8 +33,8 @@ types::StringDataTypeReader stringReader; std::vector readers = {&booleanReader, &integerReader, &stringReader}; - std::vector stringHandlers; - std::vector valueHandlers; + std::vector stringHandlers; + std::vector valuesHandlers; /** * count of columns in the current table @@ -68,8 +71,8 @@ } void endOfPipe() { - for (int i = 0; i < stringHandlers.size(); i++) stringHandlers[i]->endOfPipe(); - for (int i = 0; i < valueHandlers.size(); i++) valueHandlers[i]->endOfPipe(); + for (StringHandler* handler : stringHandlers) handler->endOfPipe(); + for (ValuesHandler* handler : valuesHandlers) handler->endOfPipe(); } public: @@ -83,12 +86,12 @@ throw RelpipeReaderException(L"Unsupported data type: " + static_cast (typeId)); } - void addHandler(handlers::RelationalReaderStringHadler* handler) override { + void addHandler(StringHandler* handler) override { stringHandlers.push_back(handler); } - void addHandler(handlers::RelationalReaderValueHadler* handler) override { - valueHandlers.push_back(handler); + void addHandler(ValuesHandler* handler) override { + valuesHandlers.push_back(handler); } void process() override { @@ -158,8 +161,8 @@ columns[i] = {columnNames[i], columnTypes[i]}; } - for (int i = 0; i < stringHandlers.size(); i++) stringHandlers[i]->startRelation(tableName, columns); - for (int i = 0; i < valueHandlers.size(); i++) valueHandlers[i]->startRelation(tableName, columns); + for (StringHandler* handler : stringHandlers) handler->startRelation(tableName, columns); + for (ValuesHandler* handler : valuesHandlers) handler->startRelation(tableName, columns); } else if (dataPart == DATA_PART_ROW) { for (int i = 0; i < columnCount; i++) { @@ -167,12 +170,12 @@ if (stringHandlers.empty()) { read(input, [&](const void * rawValue, const std::type_info & typeInfo) { - for (int i = 0; i < valueHandlers.size(); i++) valueHandlers[i]->attribute(rawValue, typeInfo); + for (ValuesHandler* handler : valuesHandlers) handler->attribute(rawValue, typeInfo); }, typeId); } else { read(input, [&](const string_t& stringValue, const void * rawValue, const std::type_info & typeInfo) { - for (int i = 0; i < stringHandlers.size(); i++) stringHandlers[i]->attribute(stringValue); - for (int i = 0; i < valueHandlers.size(); i++) valueHandlers[i]->attribute(rawValue, typeInfo); + for (StringHandler* handler : stringHandlers) handler->attribute(stringValue); + for (ValuesHandler* handler : valuesHandlers) handler->attribute(rawValue, typeInfo); }, typeId); } }