ClickHouse/dbms/include/DB/DataTypes/IDataTypeNumber.h

54 lines
1.1 KiB
C
Raw Normal View History

2010-03-05 17:38:01 +00:00
#ifndef DBMS_DATA_TYPES_IDATATYPE_NUMBER_H
#define DBMS_DATA_TYPES_IDATATYPE_NUMBER_H
2010-03-03 19:48:02 +00:00
2010-03-05 17:38:01 +00:00
#include <DB/DataTypes/IDataType.h>
2010-03-03 19:48:02 +00:00
namespace DB
{
2010-03-05 17:38:01 +00:00
/** Реализует часть интерфейса IDataType, общую для всяких чисел
2010-03-03 19:48:02 +00:00
* - ввод и вывод в текстовом виде.
*/
template <typename FieldType>
2010-03-05 17:38:01 +00:00
class IDataTypeNumber : public IDataType
2010-03-03 19:48:02 +00:00
{
public:
void serializeText(const Field & field, std::ostream & ostr) const
{
ostr << boost::get<FieldType>(field);
}
void deserializeText(Field & field, std::istream & istr) const
{
FieldType x;
istr >> x;
field = x;
}
void serializeTextEscaped(const Field & field, std::ostream & ostr) const
{
serializeText(field, ostr);
}
void deserializeTextEscaped(Field & field, std::istream & istr) const
{
deserializeText(field, istr);
}
void serializeTextQuoted(const Field & field, std::ostream & ostr, bool compatible = false) const
{
serializeText(field, ostr);
}
void deserializeTextQuoted(Field & field, std::istream & istr, bool compatible = false) const
{
deserializeText(field, istr);
}
};
}
#endif