aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/clickhouse/client/base/compressed.h
blob: d7c628ebb7d2b9cbe3f9e519bd3a9d3209e9031e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

#include "coded.h"

#include <util/memory/tempbuf.h>
#include <util/stream/zerocopy.h>
#include <util/stream/mem.h>

namespace NClickHouse {
    class TCompressedInput: public IZeroCopyInput {
    public:
        TCompressedInput(TCodedInputStream* input);
        ~TCompressedInput();

    protected:
        size_t DoNext(const void** ptr, size_t len) override;

        bool Decompress();

    private:
        TCodedInputStream* const Input_;

        TTempBuf Data_;
        TMemoryInput Mem_;
    };

}