Solution46
AppTest::CAppTestMenu クラス

テストアプリケーションメインメニュークラス [詳解]

#include "CAppTestMenu.h"

AppTest::CAppTestMenu の継承関係図
Inheritance graph
AppTest::CAppTestMenu 連携図
Collaboration graph

公開メンバ関数

 CAppTestMenu () noexcept
 コンストラクタ [詳解]
 
virtual ~CAppTestMenu () noexcept
 デストラクタ [詳解]
 
virtual CAppTestMenuBaseGetSubMenu () const noexcept override
 サブメニュー取得関数 [詳解]
 
- 基底クラス AppTest::CAppTestMenuBase に属する継承公開メンバ関数
 CAppTestMenuBase (SMenuInfo const *psMenuInfo) noexcept
 コンストラクタ [詳解]
 
virtual ~CAppTestMenuBase () noexcept
 デストラクタ [詳解]
 
- 基底クラス LibCommon::CConsoleMenu に属する継承公開メンバ関数
 CConsoleMenu (SMenuInfo const *psMenuInfo) noexcept
 コンストラクタ [詳解]
 
virtual ~CConsoleMenu () noexcept
 デストラクタ [詳解]
 
virtual bool IsExecMenu () noexcept
 実行状態取得関数 [詳解]
 
virtual bool StartMenu () noexcept
 メニュー開始関数 [詳解]
 
virtual bool ExecMenu () noexcept
 メニュー実行関数 [詳解]
 
virtual void StopMenu () noexcept
 メニュー中止要求関数 [詳解]
 
virtual bool WaitForMenuFinish (DWORD dwTime=INFINITE) noexcept
 メニュー終了待ち関数 [詳解]
 
virtual bool CanBeExit () const noexcept
 終了可能状態取得関数 [詳解]
 
virtual bool MenuCallBackProc (bool bPreCallBack=false) noexcept
 メニューコールバック関数 [詳解]
 
- 基底クラス LibCommon::CMutex に属する継承公開メンバ関数
 CMutex () noexcept
 コンストラクタ [詳解]
 
virtual ~CMutex () noexcept
 デストラクタ [詳解]
 
virtual void Close () noexcept override
 クローズ関数 [詳解]
 
virtual bool Release () noexcept override
 リリース関数 [詳解]
 
virtual bool Lock (DWORD dwTime=INFINITE) noexcept override
 ロック関数 [詳解]
 
virtual bool Unlock () noexcept override
 ロック解除関数 [詳解]
 
virtual bool Create (wchar_t const *pszObjectName=nullptr) noexcept
 作成関数 [詳解]
 
virtual bool Open (wchar_t const *pszObjectName) noexcept
 オープン関数 [詳解]
 
- 基底クラス LibCommon::CSync に属する継承公開メンバ関数
 CSync () noexcept
 コンストラクタ [詳解]
 
virtual ~CSync () noexcept
 デストラクタ [詳解]
 
virtual HANDLE GetHandle () const noexcept
 オブジェクトハンドル取得関数 [詳解]
 
virtual bool IsCreate () const noexcept
 新規作成状態取得関数 [詳解]
 
virtual bool Wait (DWORD dwTime=INFINITE) noexcept
 ウェイト関数 [詳解]
 

限定公開型

enum  EMenuItem { EMenuItem::MenuConsole, EMenuItem::MenuWindow, EMenuItem::Size }
 メニュー項目種別列挙体 [詳解]
 

静的限定公開変数類

static SMenuInfo const s_sMenuInfo
 メニュー定義情報構造体 [詳解]
 
static SMenuItemInfo const s_sItemInfo [static_cast< int >(EMenuItem::Size)]
 メニュー項目情報配列 [詳解]
 
- 基底クラス LibCommon::CConsoleMenu に属する継承静的限定公開変数類
static wchar_t const *const ITEM_KEY_LIST = L"123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 項目選択文字リスト [詳解]
 
static bool s_bStopMenu = false
 メニュー中止要求フラグ [詳解]
 
- 基底クラス LibCommon::CMutex に属する継承静的限定公開変数類
static wchar_t const *const OBJECT_NAME_EXT = L".CMutex"
 オブジェクト名拡張子 [詳解]
 

非公開メンバ関数

 CAppTestMenu (CAppTestMenu const &)=delete
 
CAppTestMenuoperator= (CAppTestMenu const &)=delete
 

その他の継承メンバ

- 基底クラス AppTest::CAppTestMenuBase に属する継承静的公開メンバ関数
static bool OutputFinishMessage (wchar_t const *pszFormat,...) noexcept
 終了メッセージ出力関数 [詳解]
 
- 基底クラス LibCommon::CConsoleMenu に属する継承限定公開メンバ関数
virtual bool ExecSubThread () noexcept
 サブスレッド実行関数 [詳解]
 
- 基底クラス LibCommon::CConsoleMenu に属する継承静的限定公開メンバ関数
static DWORD WINAPI SubThreadProc (LPVOID lpParam) noexcept
 サブスレッド関数 [詳解]
 
- 基底クラス LibCommon::CConsoleMenu に属する継承限定公開変数類
SMenuInfo const * m_psMenuInfo
 メニュー定義情報構造体ポインタ [詳解]
 
CEvent m_cEventRequest
 要求イベント [詳解]
 
CEvent m_cEventNotify
 通知イベント [詳解]
 
CEvent m_cEventFinish
 終了イベント [詳解]
 
CThread m_cThreadSub
 サブスレッド [詳解]
 
int m_nMenuIndex
 メニュー項目インデックス [詳解]
 
int m_nRepeat
 リピートカウント [詳解]
 
bool m_bRepeat
 リピート実行フラグ [詳解]
 
bool m_bSubMenu
 サブメニュー要求フラグ [詳解]
 
CConsoleMenum_pcSubMenu
 サブメニューポインタ [詳解]
 
CConsoleMenum_pcParent
 親メニューポインタ [詳解]
 
- 基底クラス LibCommon::CMutex に属する継承限定公開変数類
DWORD m_dwLockCount
 ロックカウント [詳解]
 
- 基底クラス LibCommon::CSync に属する継承限定公開変数類
HANDLE m_hObject
 オブジェクトハンドル [詳解]
 
bool m_bIsCreate
 新規作成フラグ [詳解]
 

詳解

テストアプリケーションメインメニュークラス

テストアプリケーションメインメニュークラスです。

注意
なし

CAppTestMenu.h31 行目に定義があります。

列挙型メンバ詳解

enum AppTest::CAppTestMenu::EMenuItem
strongprotected

メニュー項目種別列挙体

メニュー項目種別列挙体です。

注意
なし
列挙値
MenuConsole 

コンソールメニュー

MenuWindow 

ウィンドウメニュー

Size 

列挙体サイズ

CAppTestMenu.h81 行目に定義があります。

81  {
82  MenuConsole, ///< コンソールメニュー
83  MenuWindow, ///< ウィンドウメニュー
84  Size ///< 列挙体サイズ
85  };

構築子と解体子

AppTest::CAppTestMenu::CAppTestMenu ( )
explicitnoexcept

コンストラクタ

コンストラクタです。

引数
なし
戻り値
なし
注意
なし

CAppTestMenu.cpp30 行目に定義があります。

33  {}
static SMenuInfo const s_sMenuInfo
メニュー定義情報構造体
Definition: CAppTestMenu.h:90
CAppTestMenuBase(SMenuInfo const *psMenuInfo) noexcept
コンストラクタ
virtual AppTest::CAppTestMenu::~CAppTestMenu ( )
inlinevirtualnoexcept

デストラクタ

デストラクタです。

引数
なし
戻り値
なし
注意
なし

CAppTestMenu.h55 行目に定義があります。

参照先 GetSubMenu().

55 {}

呼び出し関係図:

AppTest::CAppTestMenu::CAppTestMenu ( CAppTestMenu const &  )
privatedelete

関数詳解

CAppTestMenuBase * AppTest::CAppTestMenu::GetSubMenu ( ) const
overridevirtualnoexcept

サブメニュー取得関数

サブメニュー取得関数です。

引数
なし
戻り値
コンソールメニュークラスポインタ
注意
オーバーライド関数です。

LibCommon::CConsoleMenuを再実装しています。

CAppTestMenu.cpp39 行目に定義があります。

参照先 LibCommon::CConsoleMenu::m_nMenuIndex, MenuConsole, MenuWindow, s_sItemInfo, s_sMenuInfo, Size.

参照元 ~CAppTestMenu().

39  {
40  // 処理ブロック
41  CAppTestMenuBase* result = nullptr;
42  do {
43  // インデックスを調べる
44  switch ( static_cast< EMenuItem >( m_nMenuIndex ) ) {
45  case EMenuItem::MenuConsole: result = new CAppTestMenuConsole; break; // コンソールメニュー
46  case EMenuItem::MenuWindow: result = new CAppTestMenuWindow; break; // ウィンドウメニュー
47  }
48  } while ( false );
49 
50  // 実行結果を返す
51  return result;
52  }
int m_nMenuIndex
メニュー項目インデックス
Definition: CConsoleMenu.h:230
CAppTestMenuBase(SMenuInfo const *psMenuInfo) noexcept
コンストラクタ

被呼び出し関係図:

CAppTestMenu& AppTest::CAppTestMenu::operator= ( CAppTestMenu const &  )
privatedelete

メンバ詳解

CAppTestMenu::SMenuInfo const AppTest::CAppTestMenu::s_sMenuInfo
staticprotected
初期値:
= {
L"テストアプリケーションメニュー",
static_cast< int >( EMenuItem::Size ),
}

メニュー定義情報構造体

CAppTestMenu.h90 行目に定義があります。

参照元 GetSubMenu().

CAppTestMenuBase::SMenuItemInfo const AppTest::CAppTestMenu::s_sItemInfo
staticprotected
初期値:
= {
{ L"コンソールメニュー", true },
{ L"ウィンドウメニュー", true },
}

メニュー項目情報配列

CAppTestMenu.h91 行目に定義があります。

参照元 GetSubMenu().


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