diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /library/cpp/codecs/static/example | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'library/cpp/codecs/static/example')
-rw-r--r-- | library/cpp/codecs/static/example/example.cpp | 43 | ||||
-rw-r--r-- | library/cpp/codecs/static/example/example.h | 17 | ||||
-rw-r--r-- | library/cpp/codecs/static/example/huffman.1467494385.codec_info | bin | 0 -> 385 bytes | |||
-rw-r--r-- | library/cpp/codecs/static/example/solar-8k-a.huffman.1467494385.codec_info | bin | 0 -> 3425 bytes | |||
-rw-r--r-- | library/cpp/codecs/static/example/ya.make | 24 |
5 files changed, 84 insertions, 0 deletions
diff --git a/library/cpp/codecs/static/example/example.cpp b/library/cpp/codecs/static/example/example.cpp new file mode 100644 index 00000000000..5b750b717e1 --- /dev/null +++ b/library/cpp/codecs/static/example/example.cpp @@ -0,0 +1,43 @@ +#include "example.h" + +#include <library/cpp/codecs/static/static.h> + +#include <util/generic/yexception.h> + +extern "C" { +extern const ui8 codec_info_huff_20160707[]; +extern const ui32 codec_info_huff_20160707Size; +extern const ui8 codec_info_sa_huff_20160707[]; +extern const ui32 codec_info_sa_huff_20160707Size; +}; + +namespace NStaticCodecExample { + static const NCodecs::TCodecConstPtr CODECS[] = { + nullptr, + NCodecs::RestoreCodecFromArchive(codec_info_huff_20160707, codec_info_huff_20160707Size), + NCodecs::RestoreCodecFromArchive(codec_info_sa_huff_20160707, codec_info_sa_huff_20160707Size), + }; + + static_assert(Y_ARRAY_SIZE(CODECS) == DV_COUNT, "bad array size"); + + void Encode(TBuffer& out, TStringBuf in, EDictVersion dv) { + Y_ENSURE(dv > DV_NULL && dv < DV_COUNT, "invalid dict version: " << (int)dv); + out.Clear(); + if (!in) { + return; + } + CODECS[dv]->Encode(in, out); + out.Append((char)dv); + } + + void Decode(TBuffer& out, TStringBuf in) { + out.Clear(); + if (!in) { + return; + } + EDictVersion dv = (EDictVersion)in.back(); + Y_ENSURE(dv > DV_NULL && dv < DV_COUNT, "invalid dict version: " << (int)dv); + in.Chop(1); + CODECS[dv]->Decode(in, out); + } +} diff --git a/library/cpp/codecs/static/example/example.h b/library/cpp/codecs/static/example/example.h new file mode 100644 index 00000000000..f9b3a7324b7 --- /dev/null +++ b/library/cpp/codecs/static/example/example.h @@ -0,0 +1,17 @@ +#pragma once + +#include <util/generic/strbuf.h> +#include <util/generic/buffer.h> + +namespace NStaticCodecExample { + enum EDictVersion : ui8 { + DV_NULL = 0, + DV_HUFF_20160707, + DV_SA_HUFF_20160707, + DV_COUNT + }; + + void Encode(TBuffer&, TStringBuf, EDictVersion dv = DV_SA_HUFF_20160707); + + void Decode(TBuffer&, TStringBuf); +} diff --git a/library/cpp/codecs/static/example/huffman.1467494385.codec_info b/library/cpp/codecs/static/example/huffman.1467494385.codec_info Binary files differnew file mode 100644 index 00000000000..5fc18270a6b --- /dev/null +++ b/library/cpp/codecs/static/example/huffman.1467494385.codec_info diff --git a/library/cpp/codecs/static/example/solar-8k-a.huffman.1467494385.codec_info b/library/cpp/codecs/static/example/solar-8k-a.huffman.1467494385.codec_info Binary files differnew file mode 100644 index 00000000000..d36d8e24ec9 --- /dev/null +++ b/library/cpp/codecs/static/example/solar-8k-a.huffman.1467494385.codec_info diff --git a/library/cpp/codecs/static/example/ya.make b/library/cpp/codecs/static/example/ya.make new file mode 100644 index 00000000000..ca6c5fd900a --- /dev/null +++ b/library/cpp/codecs/static/example/ya.make @@ -0,0 +1,24 @@ +LIBRARY() + +OWNER(velavokr) + +SRCS( + GLOBAL example.cpp +) + +PEERDIR( + library/cpp/codecs + library/cpp/codecs/static +) + +ARCHIVE_ASM( + "solar-8k-a.huffman.1467494385.codec_info" + NAME codec_info_sa_huff_20160707 +) + +ARCHIVE_ASM( + "huffman.1467494385.codec_info" + NAME codec_info_huff_20160707 +) + +END() |