--- 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);
}
};