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

30 lines
967 B
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(); }
private:
WriteBuffer & ostr;
UInt64 client_revision;
};
}