Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
alt::HeapMemory クラス

ヒープメモリに関するAPIを集約したクラス [詳解]

#include <HeapMemory.h>

alt::HeapMemory の継承関係図
alt::HandleLibrary alt::skeleton::IMemory alt::WindowsLibrary

公開メンバ関数

APIENTRY HeapMemory ()
 コンストラクタ
 
APIENTRY HeapMemory (const HeapMemory &base)
 コピーコンストラクタ
 
APIENTRY ~HeapMemory ()
 デストラクタ
 
virtual LPVOID APIENTRY Allocate (SIZE_T bytes, DWORD dwFlags=MEM_ZERO)
 メモリの取得
 
BOOL APIENTRY Close ()
 取得したヒープ領域の解放
 
SIZE_T APIENTRY Compact () const
 取得したヒープ領域の整理
 
BOOL APIENTRY Create (SIZE_T initialSize=0, SIZE_T maximumSize=0, DWORD dwOptions=0)
 ヒープ領域の取得
 
virtual BOOL APIENTRY Free (LPVOID lpvMem)
 メモリの返却
 
BOOL APIENTRY Open ()
 システムヒープ領域の取得
 
virtual LPVOID APIENTRY Reallocate (LPVOID lpvMem, SIZE_T bytes, DWORD dwFlags=MEM_ZERO)
 取得メモリの拡大
 
- 基底クラス alt::HandleLibrary に属する継承公開メンバ関数
APIENTRY HandleLibrary ()
 コンストラクタ
 
APIENTRY ~HandleLibrary ()
 デストラクタ
 
BOOL APIENTRY Close ()
 使用しなくなったハンドルはこれでクローズします。
 
HANDLE APIENTRY GetHandle () const
 継承先はこの関数でハンドルを取得します。
 
- 基底クラス alt::WindowsLibrary に属する継承公開メンバ関数
APIENTRY WindowsLibrary ()
 コンストラクタ
 
virtual APIENTRY ~WindowsLibrary ()
 デストラクタ
 
virtual DWORD APIENTRY GetErrNo () const
 WindowsAPIのエラー値を取得します。
 
virtual VOID APIENTRY SetErrNo ()
 WINAPIエラーの情報を設定します。
 
virtual LPVOID APIENTRY Allocate (SIZE_T bytes, DWORD dwFlags=MEM_ZERO)=0
 メモリの取得
 
virtual BOOL APIENTRY Free (LPVOID lpvMem)=0
 メモリの返却
 
virtual LPVOID APIENTRY Reallocate (LPVOID lpvMem, SIZE_T bytes, DWORD dwFlags=MEM_ZERO)=0
 取得メモリの拡大
 

非公開メンバ関数

SIZE_T APIENTRY BoundarySize (SIZE_T bytes) const
 

非公開変数類

BOOL _bCreateHeap
 
INT _iBoundary
 

その他の継承メンバ

- 基底クラス alt::HandleLibrary に属する継承限定公開変数類
HANDLE _hObject
 ハンドルを使用するWindowsAPIで保持するHANDLE値
 
- 基底クラス alt::WindowsLibrary に属する継承限定公開変数類
DWORD _dwErrorNo
 

詳解

ヒープメモリに関するAPIを集約したクラス

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

構築子と解体子

◆ HeapMemory() [1/2]

HeapMemory::HeapMemory ( )

コンストラクタ

HeapMemory.cpp43 行目に定義があります。

参照先 _bCreateHeap, alt::HandleLibrary::_hObject, _iBoundary.

◆ HeapMemory() [2/2]

APIENTRY alt::HeapMemory::HeapMemory ( const HeapMemory base)

コピーコンストラクタ

◆ ~HeapMemory()

HeapMemory::~HeapMemory ( )

デストラクタ

HeapMemory.cpp51 行目に定義があります。

参照先 alt::HandleLibrary::_hObject, Close().

関数詳解

◆ Allocate()

LPVOID HeapMemory::Allocate ( SIZE_T  bytes,
DWORD  dwFlags = MEM_ZERO 
)
virtual

メモリの取得

引数
bytes取得サイズ
dwFlags取得メモリへの設定
戻り値
LPVOID
戻り値
取得したメモリのアドレス

alt::skeleton::IMemoryを実装しています。

HeapMemory.cpp115 行目に定義があります。

参照先 alt::HandleLibrary::_hObject, BoundarySize().

参照元 PerfCheck::HeapPerformanceCheck::Core(), WindowsLibraryTest::TEST_CLASS().

◆ BoundarySize()

SIZE_T HeapMemory::BoundarySize ( SIZE_T  bytes) const
private

HeapMemory.cpp137 行目に定義があります。

参照先 _iBoundary.

参照元 Allocate().

◆ Close()

BOOL HeapMemory::Close ( )

取得したヒープ領域の解放

戻り値
BOOL
戻り値
TRUE(成功)
FALSE(失敗)

HeapMemory.cpp95 行目に定義があります。

参照先 _bCreateHeap, alt::HandleLibrary::_hObject.

参照元 ~HeapMemory(), WindowsLibraryTest::TEST_CLASS().

◆ Compact()

SIZE_T HeapMemory::Compact ( ) const

取得したヒープ領域の整理

戻り値
SIZE_T
戻り値
整理した後のメモリサイズ

HeapMemory.cpp110 行目に定義があります。

参照先 alt::HandleLibrary::_hObject.

参照元 alt::skeleton::Array< T >::Shurink(), WindowsLibraryTest::TEST_CLASS().

◆ Create()

BOOL HeapMemory::Create ( SIZE_T  initialSize = 0,
SIZE_T  maximumSize = 0,
DWORD  dwOptions = 0 
)

ヒープ領域の取得

引数
initialSize初期サイズ
maximumSize最大サイズ
dwOptionsオプション
戻り値
BOOL
戻り値
TRUE(成功)
FALSE(失敗)
覚え書き
初期サイズが0の場合、1ページをコミットします。
最大サイズが0でない場合、ピープサイズは固定されます。

HeapMemory.cpp56 行目に定義があります。

参照先 _bCreateHeap, alt::HandleLibrary::_hObject.

参照元 PerfCheck::HeapPerformanceCheck::Core(), PerfCheck::FreightPerformanceCheck::DoAction(), LeakCheck::BinderMemoryLeakCheck::DoAction1(), LeakCheck::FreightMemoryLeakCheck::DoAction1(), LeakCheck::BinderMemoryLeakCheck::DoAction2(), LeakCheck::FreightMemoryLeakCheck::DoAction2(), LeakCheck::BinderMemoryLeakCheck::DoAction3(), LeakCheck::FreightMemoryLeakCheck::DoAction3(), LeakCheck::BinderMemoryLeakCheck::DoAction4(), LeakCheck::FreightMemoryLeakCheck::DoAction4(), LeakCheck::FreightMemoryLeakCheck::DoAction5(), LeakCheck::FreightMemoryLeakCheck::DoAction6(), WindowsLibraryTest::TEST_CLASS().

◆ Free()

BOOL HeapMemory::Free ( LPVOID  lpvMem)
virtual

メモリの返却

引数
lpvMem返却するアドレス
戻り値
BOOL
戻り値
TRUE(成功)
FALSE(失敗)

alt::skeleton::IMemoryを実装しています。

HeapMemory.cpp130 行目に定義があります。

参照先 alt::HandleLibrary::_hObject.

参照元 PerfCheck::HeapPerformanceCheck::Core(), WindowsLibraryTest::TEST_CLASS().

◆ Open()

BOOL HeapMemory::Open ( )

システムヒープ領域の取得

戻り値
BOOL
戻り値
TRUE(成功)
FALSE(失敗)

HeapMemory.cpp87 行目に定義があります。

参照先 _bCreateHeap, alt::HandleLibrary::_hObject.

参照元 PerfCheck::FreightPerformanceCheck::DoAction(), WindowsLibraryTest::TEST_CLASS().

◆ Reallocate()

LPVOID HeapMemory::Reallocate ( LPVOID  lpvMem,
SIZE_T  bytes,
DWORD  dwFlags = MEM_ZERO 
)
virtual

取得メモリの拡大

引数
lpvMem拡大させるアドレス
bytes拡大サイズ
dwFlags再取得メモリへの設定
戻り値
LPVOID
戻り値
再取得したメモリのアドレス

alt::skeleton::IMemoryを実装しています。

HeapMemory.cpp120 行目に定義があります。

参照先 alt::HandleLibrary::_hObject.

参照元 WindowsLibraryTest::TEST_CLASS().

メンバ詳解

◆ _bCreateHeap

BOOL alt::HeapMemory::_bCreateHeap
private

HeapMemory.h114 行目に定義があります。

参照元 HeapMemory(), Close(), Create(), Open().

◆ _iBoundary

INT alt::HeapMemory::_iBoundary
private

HeapMemory.h113 行目に定義があります。

参照元 HeapMemory(), BoundarySize().


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