3 #ifndef INCLUDE_NN_NLIB_ZLIBOUTPUTSTREAM_H_
4 #define INCLUDE_NN_NLIB_ZLIBOUTPUTSTREAM_H_
16 typedef void* (*ReallocFunc)(
void* p,
size_t n);
26 buffer_size(64 * 1024),
27 level(Z_DEFAULT_COMPRESSION),
32 buffer_size(buffer_size_),
39 buffer_size(buffer_size_),
41 realloc_func(realloc_func_) {}
48 typedef ZlibOutputStreamSettings::ReallocFunc ReallocFunc;
52 virtual
errno_t Transform(OutputStream* os, const
void* p,
size_t nBytes,
54 virtual
void* GetWorkBuffer(
size_t* n)
NLIB_NOEXCEPT NLIB_OVERRIDE;
62 ReallocFunc m_Realloc;
63 unsigned char* m_BufIn;
64 unsigned char* m_BufOut;
68 bool m_IsInternalBuffer;
69 unsigned char m_BaseBuf[256];
81 return this->Init(settings);
84 return m_Transform.Init(settings);
94 #endif // INCLUDE_NN_NLIB_ZLIBOUTPUTSTREAM_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
errno_t Init() noexcept
デフォルト設定で初期化します。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
#define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
void * buf_out
z_stream::next_outに設定されるバッファです。
void * buf_in
z_stream::next_inに設定されるバッファです。
OutputTransformの派生クラスを保持するためのクラスです。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
size_t buffer_size
ZlibOutputStreamSettings::buf_in, ZlibOutputStreamSettings::buf_outのバッファサイズです。 ...
ReallocFunc realloc_func
ZlibOutputStream内部で利用するrealloc又はreallocと同等の関数です。
constexpr ZlibOutputStreamSettings() noexcept
デフォルトコンストラクタです。デフォルト値を設定します。
constexpr ZlibOutputStreamSettings(void *buf_in_, void *buf_out_, size_t buffer_size_, int level_) noexcept
それぞれのデータメンバを設定します。
ZlibOutputStreamの各種設定が格納されている構造体です。コンストラクト時にはデフォルトの設定が格納され...
zlibを用いてデータを圧縮してストリームに書き込みます。
int level
zlibのdeflateInit2関数に渡す圧縮設定です。
errno_t Init(const ZlibOutputStreamSettings &settings) noexcept
settings で指定した値に従いストリーミングに利用するバッファ等の設定を行います。
constexpr ZlibOutputStreamSettings(void *buf_in_, void *buf_out_, size_t buffer_size_, int level_, ReallocFunc realloc_func_) noexcept
それぞれのデータメンバを設定します。