--- a/src/DataTypeReader.h Mon Aug 27 00:06:14 2018 +0200
+++ b/src/DataTypeReader.h Mon Sep 03 23:40:12 2018 +0200
@@ -1,5 +1,8 @@
#pragma once
+#include <sstream>
+#include <functional>
+
#include "DataTypeReaderBase.h"
namespace relpipe {
@@ -20,6 +23,16 @@
return toString(readValue(input));
}
+ virtual void read(std::istream &input, std::function<void(const void *, const std::type_info&) > handler) override {
+ T value = readValue(input);
+ handler(&value, typeid (T));
+ }
+
+ virtual void read(std::istream &input, std::function<void(const string_t&, const void *, const std::type_info&) > handler) override {
+ T value = readValue(input);
+ handler(toString(value), &value, typeid (T));
+ }
+
virtual string_t toString(const T& value) = 0;
};