可変長メモリクラスです。
必要に応じて自動的にメモリを拡張していきます。
保有している初期メモリは0です。
データを与えられた時に初めてメモリをアロケートします。
内部的では常に終端に|\0|を付加しています。 文字列を取り扱う場合はこの終端を期待しても良いです。
スレッドセーフではありませんので、複数のスレッドから同一のインスタンスを呼び出さないでください。
MyVarMem |
---|
+GetBuffer() const size_t GetLength() const : void* |
+AddHead( const void* pAddData, size_t nDataLen) : size_t |
+Add( const void* pAddData, size_t nDataLen) : size_t |
+AddHead(MyVarMem* pH) : size_t |
+Add(MyVarMem* pH) : size_t |
+Add(const char* pszStr) : size_t |
+virtual void Clear(); virtual int IsEmpty() : void |
+operator const void*() : void* |
+operator const char*() : char* |
アロケートしているメモリポインタを返します。
この値は、Add()やAddHead()を呼び出すと、内部メモリが変動するので無効となります。
スレッドセーフではない理由はこの点にあります。
現在保有しているデータ長を返します。
実Allocサイズはこの長さ+1(終端分)です。
メモリの先頭に与えられたデータを追加します。
失敗した場合、0を返します。
与えられたデータを追加します。
失敗した場合、0を返します。
メモリの先頭に与えられたデータを追加します。
失敗した場合、0を返します。
与えられたデータを追加します。
失敗した場合、0を返します。
与えられた文字列を追加します。
失敗した場合、0を返します。
アロケートメモリを全てクリアします。
メモリが無い場合、0以外を返します。
const void*オペレータです。
const char*オペレータです。