include/RelationalWriter.h
branchv_0
changeset 20 bef6648e79b1
parent 19 98b901d7bb95
child 21 118b68d73420
--- a/include/RelationalWriter.h	Sat Jul 28 15:42:33 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#pragma once
-
-#include <string>
-#include <iostream>
-#include <vector>
-
-#include "typedefs.h"
-#include "TypeId.h"
-
-namespace relpipe {
-namespace writer {
-
-class RelationalWriter {
-public:
-
-	virtual ~RelationalWriter() = default;
-
-	/**
-	 * @param typeCode string type code as defined in Specification
-	 * @return numeric id of given type
-	 * @throws RelpipeWriterException on unsupported typeCode
-	 */
-	virtual TypeId toTypeId(const string_t typeCode) = 0;
-
-	/**
-	 * @param typeId numeric type id as defined in Specification
-	 * @return string code of given type
-	 * @throws RelpipeWriterException on unsupported typeId
-	 */
-	virtual string_t toTypeCode(const TypeId typeId) = 0;
-
-	/**
-	 * @param name name of the relation (table)
-	 * @param attributes list of attributes (columns) containing their names and types
-	 * @param writeHeader header might be omitted – when appending new records to a stream alreaready containing the header
-	 */
-	virtual void startRelation(string_t name, std::vector<std::pair<string_t, TypeId>> attributes, boolean_t writeHeader) = 0;
-
-	/**
-	 * Writes a single attribute.
-	 * @param value string representation of value of given attribute type as defined in Specification
-	 */
-	virtual void writeAttribute(const string_t& value) = 0;
-
-	// TODO: fluent interface?
-	// TODO: << operator?
-	// TODO: write bitmap + attribute:
-	// virtual void writeBitmap(...) = 0;
-	// virtual void writeAttribute(string_t attribute) = 0;
-
-	/**
-	 * Writes a single attribute.
-	 * @param value raw pointer to the value in format of given attribute type as defined in Specification
-	 * @param type used as a safety mechanism to avoid wrong pointer interpretation;
-	 * should be called in this way: writeAttribute(&value, typeid(value));
-	 * if the type does not match, the RelpipeWriterException is thrown
-	 */
-	virtual void writeAttribute(const void* value, const std::type_info& type) = 0;
-
-};
-
-}
-}