nlib
MemoryInputStream.h
[詳解]
1 
2 #pragma once
3 #ifndef INCLUDE_NN_NLIB_MEMORYINPUTSTREAM_H_
4 #define INCLUDE_NN_NLIB_MEMORYINPUTSTREAM_H_
5 
6 #include "nn/nlib/InputStream.h"
7 
8 NLIB_NAMESPACE_BEGIN
9 
11  public:
12  MemoryInputStream() NLIB_NOEXCEPT : mis_buf_(NULL), mis_size_(0) {}
14  template <class T, size_t N>
15  explicit MemoryInputStream(const T (&buf)[N]) NLIB_NOEXCEPT
16  : mis_buf_(reinterpret_cast<const uint8_t*>(&buf[0])), mis_size_(N * sizeof(T)) {}
17  MemoryInputStream(const void* buf, size_t n) NLIB_NOEXCEPT NLIB_NONNULL;
18  template <class T, size_t N>
19  errno_t Init(const T (&buf)[N]) NLIB_NOEXCEPT {
20  return this->Init(&buf[0], N * sizeof(T));
21  }
22  errno_t Init(const void* buf, size_t n) NLIB_NOEXCEPT NLIB_NONNULL;
23 
24  private:
25  virtual size_t FillBuffer_(void* p, size_t nbytes) NLIB_NOEXCEPT NLIB_OVERRIDE;
26  virtual bool Close_() NLIB_NOEXCEPT NLIB_OVERRIDE {
27  mis_buf_ = NULL;
28  mis_size_ = 0;
29  return true;
30  }
31 
32  private:
33  const uint8_t* mis_buf_;
34  size_t mis_size_;
36 };
37 
38 NLIB_NAMESPACE_END
39 
40 #endif // INCLUDE_NN_NLIB_MEMORYINPUTSTREAM_H_
#define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
Definition: Config.h:210
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
Definition: Config.h:145
入力ストリームの基底クラスを定義しています。
#define NLIB_VIS_PUBLIC
関数やクラス等のシンボルをライブラリの外部に公開します。
Definition: Platform_unix.h:61
MemoryInputStream() noexcept
デフォルトコンストラクタです。利用前にInit()メンバ関数を呼び出す必要があります。
MemoryInputStream(const T(&buf)[N]) noexcept
MemoryInputStreamを構築して初期化します。
入力ストリームの基底クラスです。このクラスを実体化することはできません。
Definition: InputStream.h:16
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
Definition: Config.h:86
メモリを使用する入力ストリームを作成します。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
Definition: Config.h:211
errno_t Init(const T(&buf)[N]) noexcept
MemoryInputStreamを初期化して利用できるようにします。
#define NLIB_NONNULL
全ての引数にNULLを指定することができないことを示します。
Definition: Platform_unix.h:76
int errno_t
intのtypedefで、戻り値としてPOSIXのエラー値を返すことを示します。
Definition: NMalloc.h:24