nlib
Lz4InputStream.h
[詳解]
1 
2 #pragma once
3 #ifndef INCLUDE_NN_NLIB_OSS_LZ4OUTPUTSTREAM_H_
4 #define INCLUDE_NN_NLIB_OSS_LZ4OUTPUTSTREAM_H_
5 
6 #include "nn/nlib/Config.h"
7 #include "nn/nlib/InputStream.h"
9 
10 #if defined(_MSC_VER) && defined(nx_oss_lz4_EXPORTS)
11 #undef NLIB_VIS_PUBLIC
12 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT
13 #endif
14 
15 NLIB_NAMESPACE_BEGIN
16 namespace oss {
17 
19  public:
21 };
22 
23 namespace detail {
24 
25 class NLIB_VIS_PUBLIC Lz4InputTransform NLIB_FINAL : public InputTransform {
26  public:
27  Lz4InputTransform() NLIB_NOEXCEPT;
28  virtual ~Lz4InputTransform() NLIB_NOEXCEPT NLIB_OVERRIDE;
29  errno_t Init(const Lz4InputStreamSettings& settings) NLIB_NOEXCEPT;
30  virtual errno_t Transform(InputStream* is, void* p, size_t nBytes,
31  size_t* written) NLIB_NOEXCEPT NLIB_OVERRIDE;
32  virtual void* GetWorkBuffer(size_t* n) NLIB_NOEXCEPT NLIB_OVERRIDE;
33  virtual errno_t OnSetStream(InputStream* is) NLIB_NOEXCEPT NLIB_OVERRIDE;
34  virtual errno_t OnClose() NLIB_NOEXCEPT NLIB_OVERRIDE;
35 
36  private:
37  LZ4F_decompressionContext_t m_Ctx;
38  unsigned char* m_BufIn;
39  size_t m_BufInCur;
40  size_t m_BufInDataSize;
41  unsigned char m_BaseBuf[256];
42 
43  NLIB_DISALLOW_COPY_AND_ASSIGN(Lz4InputTransform);
44 };
45 
46 } // namespace detail
47 
49  : public InputConverterStreamTempl<detail::Lz4InputTransform> {
50  public:
52  virtual ~Lz4InputStream() NLIB_NOEXCEPT NLIB_OVERRIDE;
53  errno_t Init() NLIB_NOEXCEPT {
55  return this->Init(settings);
56  }
57  errno_t Init(const Lz4InputStreamSettings& settings) NLIB_NOEXCEPT {
58  return m_Transform.Init(settings);
59  }
60 
61  private:
63 };
64 
65 } // namespace oss
66 NLIB_NAMESPACE_END
67 
68 #if defined(_MSC_VER) && defined(nx_oss_lz4_EXPORTS)
69 #undef NLIB_VIS_PUBLIC
70 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT
71 #endif
72 
73 #endif // INCLUDE_NN_NLIB_OSS_LZ4OUTPUTSTREAM_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
Definition: Platform.h:2151
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
Definition: Config.h:126
入力ストリームの基底クラスを定義しています。
InputTransformの派生クラスを保持するためのクラスです。
#define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
LZ4のフレームフォーマットに従ったデータを読むためのストリームクラスです。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
入力ストリームの基底クラスです。このクラスを実体化することはできません。
Definition: InputStream.h:15
errno_t Init() noexcept
ストリームをデフォルトの設定で初期化します。
開発環境別の設定が書かれるファイルです。
errno_t Init(const Lz4InputStreamSettings &settings) noexcept
ストリームを初期化します。
Lz4InputStreamの設定情報の取得と設定を行うクラスです。現在のところこのクラスは空です。 ...
#define NLIB_VIS_PUBLIC
関数やクラス等のシンボルをライブラリの外部に公開します。
Definition: Platform_unix.h:51
int errno_t
intのtypedefで、戻り値としてPOSIXのエラー値を返すことを示します。
Definition: NMalloc.h:24