# HG changeset patch # User František Kučera # Date 1531580476 -7200 # Node ID fc3a84a62dd9f16b1fa85b56660cb9c3f7fdd891 # Parent c80d55cdb42de991f34d37b3b7bb26a2d9c966a6 rename writers to readers diff -r c80d55cdb42d -r fc3a84a62dd9 include/DataTypeReader.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/DataTypeReader.h Sat Jul 14 17:01:16 2018 +0200 @@ -0,0 +1,31 @@ +#pragma once + +#include "DataTypeReaderBase.h" + +namespace relpipe { +namespace writer { + +template class DataTypeReader : public DataTypeReaderBase { +public: + + DataTypeReader(const integer_t typeId, const string_t typeCode) : DataTypeReaderBase(typeId, typeCode) { + } + + virtual ~DataTypeReader() { + }; + + 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; + +}; + +} +} \ No newline at end of file diff -r c80d55cdb42d -r fc3a84a62dd9 include/DataTypeReaderBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/DataTypeReaderBase.h Sat Jul 14 17:01:16 2018 +0200 @@ -0,0 +1,61 @@ +#pragma once + +#include +#include "typedefs.h" + +namespace relpipe { +namespace writer { + +/** + * This class contains common features that are independent from particular data type (generic/template type) + */ +class DataTypeReaderBase { +private: + const integer_t typeId; + const string_t typeCode; +public: + + DataTypeReaderBase(const integer_t typeId, const string_t typeCode) : + typeId(typeId), typeCode(typeCode) { + } + + virtual ~DataTypeReaderBase() { + }; + + /** + * @param input input stream, should be at position where the value is to be read; the stream will not be closed afred reading + * @return read value in form of the string representation of given data type. + * E.g. integer 123 is returned as a character string "123", + * boolean true is returned as a character string "true". + * See Relational pipes format specification for details. + */ + virtual string_t readString(std::istream &input) = 0; + + /** + * @param output output stream, should be at position where the value is to be written; the stream will not be closed not flushed after writing + * @param stringValue write value as given data type (e.g. integer or boolean); stringValue parameter contains given value in string representation of given data type + * E.g. integer 123 is passed as a character string "123" + * boolean true is passed as a character string "true". + * See Relational pipes format specification for details. + */ + virtual void writeString(std::ostream& output, const string_t &stringValue) = 0; + + /** + * @param dataType data type code as defined in DDP L0 + * @return whether this class supports conversions of this type + */ + virtual bool supports(const integer_t &dataType); + + /** + * @param dataType data type name as defined in DDP L0 + * @return whether this class supports conversions of this type + */ + virtual bool supports(const string_t &dataType); + + integer_t getTypeId(); + + string_t getTypeCode(); +}; + +} +} \ No newline at end of file diff -r c80d55cdb42d -r fc3a84a62dd9 include/DataTypeWriter.h --- a/include/DataTypeWriter.h Sat Jul 14 16:58:33 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -#pragma once - -#include "DataTypeWriterBase.h" - -namespace relpipe { -namespace writer { - -template 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; - -}; - -} -} \ No newline at end of file diff -r c80d55cdb42d -r fc3a84a62dd9 include/DataTypeWriterBase.h --- a/include/DataTypeWriterBase.h Sat Jul 14 16:58:33 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -#pragma once - -#include -#include "typedefs.h" - -namespace relpipe { -namespace writer { - -/** - * This class contains common features that are independent from particular data type (generic/template type) - */ -class DataTypeWriterBase { -private: - const integer_t typeId; - const string_t typeCode; -public: - - DataTypeWriterBase(const integer_t typeId, const string_t typeCode) : - typeId(typeId), typeCode(typeCode) { - } - - virtual ~DataTypeWriterBase() { - }; - - /** - * @param input input stream, should be at position where the value is to be read; the stream will not be closed afred reading - * @return read value in form of the string representation of given data type. - * E.g. integer 123 is returned as a character string "123", - * boolean true is returned as a character string "true". - * See Relational pipes format specification for details. - */ - virtual string_t readString(std::istream &input) = 0; - - /** - * @param output output stream, should be at position where the value is to be written; the stream will not be closed not flushed after writing - * @param stringValue write value as given data type (e.g. integer or boolean); stringValue parameter contains given value in string representation of given data type - * E.g. integer 123 is passed as a character string "123" - * boolean true is passed as a character string "true". - * See Relational pipes format specification for details. - */ - virtual void writeString(std::ostream& output, const string_t &stringValue) = 0; - - /** - * @param dataType data type code as defined in DDP L0 - * @return whether this class supports conversions of this type - */ - virtual bool supports(const integer_t &dataType); - - /** - * @param dataType data type name as defined in DDP L0 - * @return whether this class supports conversions of this type - */ - virtual bool supports(const string_t &dataType); - - integer_t getTypeId(); - - string_t getTypeCode(); -}; - -} -} \ No newline at end of file diff -r c80d55cdb42d -r fc3a84a62dd9 src/DataTypeReader.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DataTypeReader.cpp Sat Jul 14 17:01:16 2018 +0200 @@ -0,0 +1,15 @@ +#include "../include/DataTypeReader.h" + +namespace relpipe { +namespace writer { + +template string_t DataTypeReader::readString(std::istream &input) { + return toString(readValue(input)); +}; + +template void DataTypeReader::writeString(std::ostream& output, const string_t &stringValue) { + writeValue(output, toValue(stringValue)); +}; + +} +} diff -r c80d55cdb42d -r fc3a84a62dd9 src/DataTypeReaderBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DataTypeReaderBase.cpp Sat Jul 14 17:01:16 2018 +0200 @@ -0,0 +1,24 @@ +#include +#include "../include/DataTypeReaderBase.h" + +namespace relpipe { +namespace writer { + +bool DataTypeReaderBase::supports(const integer_t &dataType) { + return dataType == typeId; +} + +bool DataTypeReaderBase::supports(const string_t &dataType) { + return dataType == typeCode; +} + +integer_t DataTypeReaderBase::getTypeId() { + return typeId; +} + +string_t DataTypeReaderBase::getTypeCode() { + return typeCode; +} + +} +} diff -r c80d55cdb42d -r fc3a84a62dd9 src/DataTypeWriter.cpp --- a/src/DataTypeWriter.cpp Sat Jul 14 16:58:33 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -#include "../include/DataTypeWriter.h" - -namespace relpipe { -namespace writer { - -template string_t DataTypeWriter::readString(std::istream &input) { - return toString(readValue(input)); -}; - -template void DataTypeWriter::writeString(std::ostream& output, const string_t &stringValue) { - writeValue(output, toValue(stringValue)); -}; - -} -} diff -r c80d55cdb42d -r fc3a84a62dd9 src/DataTypeWriterBase.cpp --- a/src/DataTypeWriterBase.cpp Sat Jul 14 16:58:33 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -#include -#include "../include/DataTypeWriterBase.h" - -namespace relpipe { -namespace writer { - -bool DataTypeWriterBase::supports(const integer_t &dataType) { - return dataType == typeId; -} - -bool DataTypeWriterBase::supports(const string_t &dataType) { - return dataType == typeCode; -} - -integer_t DataTypeWriterBase::getTypeId() { - return typeId; -} - -string_t DataTypeWriterBase::getTypeCode() { - return typeCode; -} - -} -}