ClickHouse/src/Coordination/WriteBufferFromNuraftBuffer.h
2021-02-08 16:50:03 +03:00

31 lines
597 B
C++

#pragma once
#include <IO/WriteBuffer.h>
#include <libnuraft/nuraft.hxx> // Y_IGNORE
namespace DB
{
class WriteBufferFromNuraftBuffer : public WriteBuffer
{
private:
nuraft::ptr<nuraft::buffer> buffer;
bool is_finished = false;
static constexpr size_t initial_size = 32;
static constexpr size_t size_multiplier = 2;
void nextImpl() override;
public:
WriteBufferFromNuraftBuffer();
void finalize() override final;
nuraft::ptr<nuraft::buffer> getBuffer();
bool isFinished() const { return is_finished; }
~WriteBufferFromNuraftBuffer() override;
};
}