XmlStreamReader, XmlStreamWriter の各インスタンス毎に設定できるアロケータです。
[詳解]
#include "nn/nlib/exi/ExiAllocator.h"
XmlStreamReader, XmlStreamWriter の各インスタンス毎に設定できるアロケータです。
- 説明
ExiAllocator
はシングルトンですが、ExiAllocatorEx
はインスタンスを構築でき、XmlStreamReader
, XmlStreamWriter
の構築時に引数として渡すことにより、(同じスレッドでも)インスタンス毎に異なるアロケータを利用することが可能になります。
- メンバ関数は
ExiAllocator
と同様のものが実装されています。 以下が利用例です。 al_writer.Init(g_WriterBuf, BUF_SIZE);
OutputStream* os = ....;
ExiAllocator.h の 35 行目に定義があります。
◆ Alloc()
nn::nlib::exi::ExiAllocatorEx::Alloc |
( |
size_t |
nbytes | ) |
|
|
noexcept |
アロケータからnbytes
のメモリを割り当てます。
- 引数
-
- 戻り値
- 割り当てられたメモリのアドレス。失敗した場合は
NULL
◆ Dealloc()
nn::nlib::exi::ExiAllocatorEx::Dealloc |
( |
void * |
p | ) |
|
|
noexcept |
メモリをデアロケートしたときに呼び出されます。
- 引数
-
◆ Finalize()
nn::nlib::exi::ExiAllocatorEx::Finalize |
( |
| ) |
|
|
noexcept |
アロケータの利用を終了します。
- 戻り値
- 初期化時に与えたメモリブロックのポインタ
◆ GetPos()
nn::nlib::exi::ExiAllocatorEx::GetPos |
( |
| ) |
|
|
noexcept |
割り当て済みメモリのサイズを返します。
- 戻り値
- 割り当て済みメモリのサイズ
◆ Init()
nn::nlib::exi::ExiAllocatorEx::Init |
( |
void * |
p, |
|
|
size_t |
size |
|
) |
| |
|
noexcept |
アロケータを初期化します。
- 引数
-
[in] | p | メモリブロックの先頭へのポインタ |
[in] | size | メモリブロックのサイズ |
- 戻り値
- 成功ならば0
- 説明
- アロケータにメモリを割り当て初期化します。
◆ IsOutOfMemory()
nn::nlib::exi::ExiAllocatorEx::IsOutOfMemory |
( |
| ) |
|
|
noexcept |
以前のメモリアロケートが失敗したかどうかを調べます。
- 戻り値
- メモリのアロケートに失敗していれば
true
◆ Realloc()
nn::nlib::exi::ExiAllocatorEx::Realloc |
( |
void * |
ptr, |
|
|
size_t |
from_nbytes, |
|
|
size_t |
nbytes |
|
) |
| |
|
noexcept |
アロケートされたメモリを拡張する場合に呼び出されることがあります。
- 引数
-
[in] | ptr | 拡張されるメモリの先頭アドレス |
[in] | from_nbytes | 拡張前のアロケートされたメモリサイズ |
[in] | nbytes | 拡張後のメモリサイズ |
- 戻り値
- 割り当てられたメモリのアドレス。失敗した場合は
NULL
- 説明
- C標準関数のreallocと違い、現在アロケートされているメモリのサイズを渡す必要があります。
◆ Test()
nn::nlib::exi::ExiAllocatorEx::Test |
( |
size_t |
nbytes | ) |
|
|
noexcept |
nbytes
のメモリがアロケート可能かどうかをテストします。
- 引数
-
[in] | nbytes | アロケートしようとするメモリのサイズ |
- 戻り値
false
ならばアロケート不可能
- 説明
false
を返した場合は以後のIsOutOfMemory()
の呼び出しがtrue
を返します。 Alloc()
が失敗するかどうかを事前に知りたい場合に利用します。
このクラス詳解は次のファイルから抽出されました: