mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-13 11:04:10 +00:00
29 lines
778 B
C++
29 lines
778 B
C++
#pragma once
|
|
|
|
#include <string>
|
|
|
|
namespace DB
|
|
{
|
|
|
|
/** Этот интерфейс определяет функции, которые классы ReadBufferAIO и WriteBufferAIO реализуют.
|
|
*/
|
|
class IBufferAIO
|
|
{
|
|
public:
|
|
virtual ~IBufferAIO() = default;
|
|
virtual std::string getFileName() const noexcept = 0;
|
|
virtual int getFD() const noexcept = 0;
|
|
|
|
public:
|
|
/// Граница, на которых должны быть выровнены блоки.
|
|
static const size_t BLOCK_SIZE = 512;
|
|
|
|
protected:
|
|
/// Ждать окончания текущей асинхронной задачи.
|
|
virtual void waitForCompletion() = 0;
|
|
/// Менять местами основной и дублирующий буферы.
|
|
virtual void swapBuffers() noexcept = 0;
|
|
};
|
|
|
|
}
|