3 #ifndef INCLUDE_NN_NLIB_OSS_LZ4INPUTSTREAM_H_
4 #define INCLUDE_NN_NLIB_OSS_LZ4INPUTSTREAM_H_
12 #if defined(_MSC_VER) && defined(nx_oss_lz4_EXPORTS)
13 #undef NLIB_VIS_PUBLIC
14 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT
20 class Lz4OutputStreamSettings;
28 virtual
errno_t Transform(OutputStream* os, const
void* p,
size_t nBytes,
30 virtual
void* GetWorkBuffer(
size_t* n)
NLIB_NOEXCEPT NLIB_OVERRIDE;
37 LZ4F_compressionContext_t m_Ctx;
38 unsigned char* m_BufOut;
42 unsigned char m_Header[16];
43 unsigned char m_BaseBuf[256];
54 m_Pref.frameInfo.blockMode = LZ4F_blockLinked;
55 m_Pref.compressionLevel = 9;
59 m_Pref.frameInfo.contentSize = size;
62 return m_Pref.frameInfo.contentSize;
69 m_Pref.compressionLevel = level;
72 return m_Pref.compressionLevel;
75 m_Pref.frameInfo.blockSizeID = max_block_size;
78 return m_Pref.frameInfo.blockSizeID;
81 m_Pref.frameInfo.blockMode = independence ? LZ4F_blockIndependent : LZ4F_blockLinked;
84 return (m_Pref.frameInfo.blockMode != LZ4F_blockLinked);
88 LZ4F_preferences_t m_Pref;
89 friend class detail::Lz4OutputTransform;
99 return this->Init(settings);
102 return m_Transform.Init(settings);
112 #if defined(_MSC_VER) && defined(nx_oss_lz4_EXPORTS)
113 #undef NLIB_VIS_PUBLIC
114 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT
117 #endif // INCLUDE_NN_NLIB_OSS_LZ4INPUTSTREAM_H_
bool GetBlockIndependence() const noexcept
SetBlockIndependence()で設定された値を取得します。デフォルトはfalseです。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
Lz4OutputStreamSettings() noexcept
デフォルトコンストラクタです。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
#define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
~Lz4OutputStreamSettings() noexcept
デストラクタです。
LZ4F_blockSizeID_t GetMaxBlockSize() const noexcept
SetMaxBlockSize()で設定された値を取得します。デフォルトはLZ4F_defaultです。
void SetMaxBlockSize(LZ4F_blockSizeID_t max_block_size) noexcept
データブロックの最大サイズを設定します。大きいほど高速ですがメモリを必要とします。 ...
void SetContentSize(uint64_t size) noexcept
圧縮前のデータサイズをLZ4で圧縮されたデータに含めることができます。
OutputTransformの派生クラスを保持するためのクラスです。
errno_t Init(const Lz4OutputStreamSettings &settings) noexcept
ストリームを初期化します。
Lz4OutputStreamの設定情報の取得と設定を行うクラスです。
errno_t Init() noexcept
ストリームをデフォルトの設定で初期化します。
uint64_t GetContentSize() const noexcept
SetContentSize()で設定された値を取得します。デフォルトは0です。
void SetBlockIndependence(bool independence) noexcept
圧縮されたデータブロックが独立して解凍可能かどうかを設定します。
LZ4のフレームフォーマットに従ったデータを書きこむためのストリームクラスです。
int GetCompressionLevel() noexcept
SetCompressionLevel()で設定された値を取得します。デフォルトは9です。
void SetCompressionLevel(int level) noexcept
圧縮レベルを設定します。0-16の整数で数値が大きいほど圧縮率が高くなります。