ClickHouse/src/Coordination/WriteBufferFromNuraftBuffer.h

31 lines
585 B
C++
Raw Normal View History

2021-01-19 09:40:25 +00:00
#pragma once
#include <IO/WriteBuffer.h>
#include <libnuraft/nuraft.hxx>
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;
};
}