nlib
nn::nlib::MemoryInputStream クラスfinal

メモリを使用する入力ストリームを作成します。 [詳解]

#include "nn/nlib/MemoryInputStream.h"

+ nn::nlib::MemoryInputStream の継承関係図

公開メンバ関数

コンストラクタ、デストラクタ、及び初期化
constexpr MemoryInputStream () noexcept
 デフォルトコンストラクタです。実行後Init()による初期化を必要とします。
 
virtual ~MemoryInputStream () noexcept override
 デストラクタです。
 
template<class T , size_t N>
constexpr MemoryInputStream (const T(&buf)[N]) noexcept
 MemoryInputStreamを構築して初期化します。 [詳解]
 
constexpr MemoryInputStream (const void *buf, size_t n) noexcept
 MemoryInputStreamを構築して初期化します。 [詳解]
 
template<class T , size_t N>
errno_t Init (const T(&buf)[N]) noexcept
 MemoryInputStreamを初期化して利用できるようにします。 [詳解]
 
errno_t Init (const void *buf, size_t n) noexcept
 MemoryInputStreamを初期化して利用できるようにします。 [詳解]
 
- 基底クラス nn::nlib::InputStream に属する継承公開メンバ関数
errno_t GetErrorValue () const noexcept
 エラー値を取得します。 [詳解]
 
size_t Pos () const noexcept
 ストリーム上の現在位置を返します。 [詳解]
 
uint64_t Pos64 () const noexcept
 ストリーム上の現在位置を64bit値で返します。 [詳解]
 
bool IsEos () noexcept
 ストリームを最後まで読み終えている場合trueを返します。最後まで読み終えていない場合やエラーが発生している場合はfalseを返します。 [詳解]
 
int Read () noexcept
 ストリームから1バイトを読み込みます。 [詳解]
 
int Peek () noexcept
 ストリームを消費せずに次の1バイトを読み込みます。 [詳解]
 
size_t Skip (size_t nbytes) noexcept
 nbytes を読み飛ばします。 [詳解]
 
size_t Read (void *ptr, size_t nbytes) noexcept
 ptr で示されるメモリにnbytes 読み込みます。 [詳解]
 
template<size_t N>
size_t Read (nlib_byte_t(&buf)[N]) noexcept
 上記関数のテンプレートオーバーロードです。
 
bool Close () noexcept
 ストリームを閉じます。成功した場合にはtrueを返します。 [詳解]
 
bool Mark (size_t readlimit) noexcept
 現在の読み込み位置にGoBackToMark()で戻ることができるように設定します。 [詳解]
 
bool GoBackToMark () noexcept
 最後にMark()を実行した読み込み位置に戻ります。 [詳解]
 
bool IsMarkSupported () const noexcept
 このストリームがMark()GoBackToMark()をサポートしていればtrueを返します。
 
 operator bool () const
 オブジェクトが初期化済みで内部でエラーが発生していなければtrue、発生していればfalseを返します。
 
constexpr InputStream () noexcept
 デフォルトコンストラクタです。 派生クラスから呼び出されます。
 
virtual ~InputStream () noexcept
 デストラクタです。 派生クラスから呼び出されます。
 

その他の継承メンバ

- 基底クラス nn::nlib::InputStream に属する継承限定公開メンバ関数
void SetBuffer (void *p, size_t nbytes, bool is_mark_supported, bool is_buf_readonly) noexcept
 InputStreamが持つバッファを設定します。 [詳解]
 
void SetError (errno_t e) const noexcept
 InputStreamにエラーを設定します。 [詳解]
 

詳解

メモリを使用する入力ストリームを作成します。

説明
バッキングストアとして、初期化時にユーザーがメモリ領域を割り当てます。
以下はMemoryInputStreamを構築する場合のコード例です。
nlib_ns::MemoryInputStream is1(&buf[0], kBufSize);
is3.Init(&buf[0], kBufSize);
is4.Init(buf);
オブジェクトの状態遷移
オブジェクトの状態遷移の概略は以下のとおりです。
dot_inline_dotgraph_8.png
各種例:
exi/multithread/multithread.cpp, exi/script/script.cpp, exi/serializer/serializer.cpp, exi/simple1/simple1.cpp, exi/simple2/simple2.cpp, exi/textparser/textparser.cpp, misc/usezlib/usezlib.cpp, msgpack/json/json.cpp, msgpack/msgpack2/msgpack2.cpp, msgpack/usertype/usertype.cpp.

MemoryInputStream.h23 行目に定義があります。

構築子と解体子

◆ MemoryInputStream() [1/2]

template<class T , size_t N>
nn::nlib::MemoryInputStream::MemoryInputStream ( const T(&)  buf[N])
inlineexplicitnoexcept

MemoryInputStreamを構築して初期化します。

引数
[in]bufストリームから参照される配列

MemoryInputStream.h30 行目に定義があります。

◆ MemoryInputStream() [2/2]

nn::nlib::MemoryInputStream::MemoryInputStream ( const void *  buf,
size_t  n 
)
inlinenoexcept

MemoryInputStreamを構築して初期化します。

引数
[in]bufメモリ領域へのポインタ
[in]nメモリ領域のサイズ

MemoryInputStream.h36 行目に定義があります。

関数詳解

◆ Init() [1/2]

template<class T , size_t N>
nn::nlib::MemoryInputStream::Init ( const T(&)  buf[N])
inlinenoexcept

MemoryInputStreamを初期化して利用できるようにします。

引数
[in]bufストリームから参照される配列
戻り値
0ならば成功
説明
配列を指定してMemoryInputStreamを初期化します。

MemoryInputStream.h41 行目に定義があります。

◆ Init() [2/2]

nn::nlib::MemoryInputStream::Init ( const void *  buf,
size_t  n 
)
inlinenoexcept

MemoryInputStreamを初期化して利用できるようにします。

引数
[in]bufメモリ領域へのポインタ
[in]nメモリ領域のサイズ
戻り値
0ならば成功
説明
メモリ領域へのポインタとサイズを指定してMemoryInputStreamを初期化します。

MemoryInputStream.h45 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: