#pragma once
#include "DataTypeWriterBase.h"
namespace relpipe {
namespace writer {
template<typename T> class DataTypeWriter : public DataTypeWriterBase {
public:
DataTypeWriter(const integer_t typeId, const string_t typeCode) : DataTypeWriterBase(typeId, typeCode) {
}
virtual ~DataTypeWriter() {
};
virtual T readValue(std::istream& input) = 0;
virtual string_t readString(std::istream &input);
virtual void writeValue(std::ostream& output, const T& value) = 0;
virtual void writeString(std::ostream& output, const string_t &stringValue);
virtual T toValue(const string_t &stringValue) = 0;
virtual string_t toString(const T& value) = 0;
};
}
}