ClickHouse/dbms/include/DB/DataStreams/NativeBlockOutputStream.h

32 lines
1.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <DB/DataStreams/IBlockOutputStream.h>
namespace DB
{
/** Сериализует поток блоков в родном бинарном формате (с именами и типами столбцов).
* Предназначено для взаимодействия между серверами.
*/
class NativeBlockOutputStream : public IBlockOutputStream
{
public:
/** В случае указания ненулевой client_revision, может записываться дополнительная информация о блоке,
* в зависимости от поддерживаемой для указанной ревизии.
*/
NativeBlockOutputStream(WriteBuffer & ostr_, UInt64 client_revision_ = 0)
: ostr(ostr_), client_revision(client_revision_) {}
void write(const Block & block) override;
void flush() override { ostr.next(); }
static void writeData(const IDataType & type, const ColumnPtr & column, WriteBuffer & ostr, size_t offset, size_t limit);
private:
WriteBuffer & ostr;
UInt64 client_revision;
};
}