# HG changeset patch # User František Kučera # Date 1554567914 -7200 # Node ID 2390e2949a3643bdb2c5b9af875e19a029a54bd7 # Parent 8dfb42e5c08881f2f8a9d572adaf97c7b7ea5c1e parse recfile: separate methods diff -r 8dfb42e5c088 -r 2390e2949a36 src/RecfileCommand.h --- a/src/RecfileCommand.h Sat Apr 06 17:33:42 2019 +0200 +++ b/src/RecfileCommand.h Sat Apr 06 18:25:14 2019 +0200 @@ -38,11 +38,33 @@ DATA, SEPARATOR, COMMENT, + END, }; class RecfileHandler { private: RelationalWriter* writer; + + void metadata(const string_t& name, const string_t& value) { + std::wcerr << L"metadata(" << name << L", " << value << L");" << std::endl; // TODO: remove debug + } + + void data(const string_t& name, const string_t& value) { + std::wcerr << L"data(" << name << L", " << value << L");" << std::endl; // TODO: remove debug + } + + void comment(const string_t& value) { + std::wcerr << L"comment(" << value << L");" << std::endl; // TODO: remove debug + } + + void separator() { + std::wcerr << L"separator()" << std::endl; // TODO: remove debug + } + + void end() { + std::wcerr << L"end()" << std::endl; // TODO: remove debug + } + public: RecfileHandler(RelationalWriter* writer) : writer(writer) { @@ -52,9 +74,15 @@ } void logicalLine(RecfileLineType type, const string_t& name = L"", const string_t& value = L"") { - std::wcerr << L"logicalLine(" << (int) type << L", " << name << L", " << value << L");" << std::endl; // TODO: remove debug // TODO: writer->startRelation() // TODO: writer->writeAttribute() + switch (type) { + case RecfileLineType::METADATA: return metadata(name, value); + case RecfileLineType::DATA: return data(name, value); + case RecfileLineType::COMMENT: return comment(value); + case RecfileLineType::SEPARATOR: return separator(); + case RecfileLineType::END: return end(); + } } }; @@ -155,6 +183,7 @@ } } emitLogicalLine(type, name, value); + handler.logicalLine(RecfileLineType::END); } };