src/RecfileCommand.h
branchv_0
changeset 2 2390e2949a36
parent 1 8dfb42e5c088
child 3 891fe13d7397
--- 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);
 		}
 	};