| Solution46
    | 
ログ出力ライブラリクラス [詳解]
#include "LibLogOut.h"


| クラス | |
| struct | SMappingInfo | 
| 共有メモリ情報構造体  [詳解] | |
| struct | SProcessInfo | 
| 参照プロセス情報構造体  [詳解] | |
| 公開型 | |
| enum | EOutputDevice { EOutputDevice::Debug = 0, EOutputDevice::Console, EOutputDevice::File, EOutputDevice::Size } | 
| 出力デバイス種別列挙体  [詳解] | |
| 公開メンバ関数 | |
| virtual wchar_t const * | GetExeFile () noexcept | 
| 実行ファイル名取得関数  [詳解] | |
| virtual bool | OutputString (wchar_t const *pszString) noexcept override | 
| 文字列出力関数  [詳解] | |
| virtual bool | UpdateLineNumber () noexcept override | 
| 行番号更新関数  [詳解] | |
| virtual int | GetLineNumber () noexcept override | 
| 行番号取得関数  [詳解] | |
| virtual int | GetIndentCount () noexcept override | 
| インデントカウント取得関数  [詳解] | |
| virtual bool | Indent () noexcept override | 
| インデント関数  [詳解] | |
| virtual bool | Unindent () noexcept override | 
| アンインデント関数  [詳解] | |
| virtual int | GetRefferCount () noexcept | 
| 参照プロセスカウント取得関数  [詳解] | |
| virtual int | GetCount () noexcept | 
| バッファカウント取得関数  [詳解] | |
| virtual bool | Flush () noexcept | 
| フラッシュ関数  [詳解] | |
| virtual bool | SetDeviceProcess (EOutputDevice eDevice, DWORD dwProcessId) noexcept | 
| 出力デバイスプロセス設定関数  [詳解] | |
|  基底クラス LibCommon::CMapping に属する継承公開メンバ関数 | |
| CMapping () noexcept | |
| コンストラクタ  [詳解] | |
| virtual | ~CMapping () noexcept | 
| デストラクタ  [詳解] | |
| virtual HANDLE | GetHandle () const noexcept override | 
| マッピングハンドル取得関数  [詳解] | |
| virtual LPVOID | GetView () const noexcept | 
| ビューポインタ取得関数  [詳解] | |
| virtual void | Close () noexcept override | 
| クローズ関数  [詳解] | |
| virtual bool | Create (DWORD dwSize, wchar_t const *pszObjectName=nullptr) noexcept | 
| 作成関数  [詳解] | |
| virtual bool | Open (wchar_t const *pszObjectName) noexcept override | 
| オープン関数  [詳解] | |
|  基底クラス LibCommon::CMutex に属する継承公開メンバ関数 | |
| CMutex () noexcept | |
| コンストラクタ  [詳解] | |
| virtual | ~CMutex () noexcept | 
| デストラクタ  [詳解] | |
| 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 | 
| 作成関数  [詳解] | |
|  基底クラス LibCommon::CSync に属する継承公開メンバ関数 | |
| CSync () noexcept | |
| コンストラクタ  [詳解] | |
| virtual | ~CSync () noexcept | 
| デストラクタ  [詳解] | |
| virtual bool | IsCreate () const noexcept | 
| 新規作成状態取得関数  [詳解] | |
| virtual bool | Wait (DWORD dwTime=INFINITE) noexcept | 
| ウェイト関数  [詳解] | |
|  基底クラス LibCommon::CStreamOut に属する継承公開メンバ関数 | |
| virtual bool | OutputChar (wchar_t ch) noexcept | 
| 1文字出力関数  [詳解] | |
| virtual bool | OutputFormat (wchar_t const *pszFormat,...) noexcept | 
| 書式設定文字列出力関数  [詳解] | |
| virtual bool | OutputArgs (wchar_t const *pszFormat, va_list vaArgs) noexcept | 
| 引数リスト文字列出力関数  [詳解] | |
| virtual bool | OutputNewLine () noexcept | 
| 改行出力関数  [詳解] | |
| virtual bool | OutputLineHeader () noexcept | 
| 行ヘッダー出力関数  [詳解] | |
| virtual bool | OutputIndent () noexcept | 
| インデント出力関数  [詳解] | |
| virtual bool | OutputLineString (wchar_t const *pszString, bool bHeader=true, bool bIndent=true) noexcept | 
| 文字列行出力関数  [詳解] | |
| virtual bool | OutputLineFormat (wchar_t const *pszFormat,...) noexcept | 
| 書式設定文字列行出力関数  [詳解] | |
| virtual bool | OutputLineArgs (wchar_t const *pszFormat, va_list vaArgs) noexcept | 
| 引数リスト文字列行出力関数  [詳解] | |
| virtual bool | ExOutputLineFormat (bool bHeader, bool bIndent, wchar_t const *pszFormat,...) noexcept | 
| 拡張書式設定文字列行出力関数  [詳解] | |
| virtual bool | ExOutputLineArgs (bool bHeader, bool bIndent, wchar_t const *pszFormat, va_list vaArgs) noexcept | 
| 拡張引数リスト文字列行出力関数  [詳解] | |
| 静的公開メンバ関数 | |
| static CLibLogOut & | GetInstance () noexcept | 
| インスタンス取得関数  [詳解] | |
| static wchar_t const * | GetProjectType () noexcept | 
| プロジェクト種別取得関数  [詳解] | |
| static HINSTANCE | GetInstanceHandle () noexcept | 
| インスタンスハンドル取得関数  [詳解] | |
| 静的公開変数類 | |
| static int const | DEVICE_MAX = static_cast< int >( EOutputDevice::Size ) | 
| 出力デバイス最大値  [詳解] | |
| 限定公開メンバ関数 | |
| CLibLogOut () noexcept | |
| コンストラクタ  [詳解] | |
| virtual | ~CLibLogOut () noexcept | 
| デストラクタ  [詳解] | |
| virtual bool | UpdateProcessInfo (bool bCurrent=false) noexcept | 
| プロセス情報更新関数  [詳解] | |
| virtual bool | OutputDevice () noexcept | 
| デバイス出力関数  [詳解] | |
|  基底クラス LibCommon::CStreamOut に属する継承限定公開メンバ関数 | |
| CStreamOut () noexcept | |
| コンストラクタ  [詳解] | |
| virtual | ~CStreamOut () noexcept | 
| デストラクタ  [詳解] | |
| 静的限定公開メンバ関数 | |
| static DWORD WINAPI | SubThreadProc (LPVOID lpParam) noexcept | 
| サブスレッド関数  [詳解] | |
| static bool | GetNewLogFilePath (wchar_t *pszPath, int nSize) noexcept | 
| 新規ログ出力ファイルパス取得関数  [詳解] | |
| 限定公開変数類 | |
| SMappingInfo * | m_psMappingInfo | 
| 共有メモリ情報構造体ポインタ  [詳解] | |
| CEvent | m_cEventRequest | 
| 要求イベント  [詳解] | |
| CEvent | m_cEventNotify | 
| 通知イベント  [詳解] | |
| CFileStream | m_cFileLog | 
| ログ出力ファイル  [詳解] | |
| CThread | m_cThreadSub | 
| サブスレッド  [詳解] | |
| wchar_t | m_szExeFile [MAX_PATH] | 
| 実行ファイル名  [詳解] | |
|  基底クラス LibCommon::CMapping に属する継承限定公開変数類 | |
| HANDLE | m_hMapping | 
| マッピングハンドル  [詳解] | |
| LPVOID | m_pView | 
| ビューポインタ  [詳解] | |
|  基底クラス LibCommon::CMutex に属する継承限定公開変数類 | |
| DWORD | m_dwLockCount | 
| ロックカウント  [詳解] | |
|  基底クラス LibCommon::CSync に属する継承限定公開変数類 | |
| HANDLE | m_hObject | 
| オブジェクトハンドル  [詳解] | |
| bool | m_bIsCreate | 
| 新規作成フラグ  [詳解] | |
|  基底クラス LibCommon::CStreamOut に属する継承限定公開変数類 | |
| int | m_nLine | 
| 行番号  [詳解] | |
| int | m_nIndent | 
| インデントカウント  [詳解] | |
| 静的限定公開変数類 | |
| static int const | BUFFER_SIZE = ( 1024 * 1024 - 1 ) | 
| 文字列バッファサイズ  [詳解] | |
| static int const | PROCESS_MAX = 256 | 
| 最大参照プロセス数  [詳解] | |
| static DWORD const | NOTIFY_WAIT = 3000 | 
| 通知イベント待機時間  [詳解] | |
| static wchar_t const *const | OBJECT_NAME = L"LibLogOut::CLibLogOut" | 
| オブジェクト名  [詳解] | |
| static wchar_t const *const | EVENT_REQUEST_FORMAT = L"LibLogOut::CLibLogOut.EventRequest#%04X" | 
| 要求イベント名書式設定文字列  [詳解] | |
| static wchar_t const *const | EVENT_NOTIFY_NAME = L"LibLogOut::CLibLogOut.EventNotify" | 
| 通知イベント名  [詳解] | |
| static CLibLogOut | s_cInstance | 
| 静的インスタンス  [詳解] | |
|  基底クラス LibCommon::CMapping に属する継承静的限定公開変数類 | |
| static wchar_t const *const | OBJECT_NAME_EXT = L".CMapping" | 
| オブジェクト名拡張子  [詳解] | |
|  基底クラス LibCommon::CMutex に属する継承静的限定公開変数類 | |
| static wchar_t const *const | OBJECT_NAME_EXT = L".CMutex" | 
| オブジェクト名拡張子  [詳解] | |
|  基底クラス LibCommon::CStreamOut に属する継承静的限定公開変数類 | |
| static int const | FORMAT_BUFFER_SIZE = ( 2048 - 1 ) | 
| 書式設定文字列バッファサイズ  [詳解] | |
| 非公開メンバ関数 | |
| CLibLogOut (CLibLogOut const &)=delete | |
| CLibLogOut & | operator= (CLibLogOut const &)=delete | 
| 
 | strong | 
出力デバイス種別列挙体
出力デバイス種別列挙体です。
| 列挙値 | |
|---|---|
| Debug | デバッグ出力 | 
| Console | コンソール出力 | 
| File | ファイル出力 | 
| Size | 列挙体サイズ | 
LibLogOut.h の 75 行目に定義があります。
| 
 | explicitprotectednoexcept | 
コンストラクタ
コンストラクタです。
| なし | 
LibLogOut.cpp の 38 行目に定義があります。
参照先 LibCommon::CMapping::Close(), LibCommon::CMapping::Create(), DEVICE_MAX, EVENT_NOTIFY_NAME, EVENT_REQUEST_FORMAT, LibCommon::GetExeFileName(), GetNewLogFilePath(), LibCommon::CMapping::GetView(), LibCommon::CSync::IsCreate(), LibLogOut::CLibLogOut::SMappingInfo::m_bEnable, LibLogOut::CLibLogOut::SProcessInfo::m_dwProcessId, LibLogOut::CLibLogOut::SMappingInfo::m_dwProcessId, LibLogOut::CLibLogOut::SMappingInfo::m_nReffer, m_psMappingInfo, LibLogOut::CLibLogOut::SMappingInfo::m_sProcess, LibLogOut::CLibLogOut::SMappingInfo::m_szPath, NotifyConstructor, NotifyFatalError, OBJECT_NAME, PROCESS_MAX, SubThreadProc() (計21項目).

| 
 | protectedvirtualnoexcept | 
デストラクタ
デストラクタです。
| なし | 
LibLogOut.cpp の 180 行目に定義があります。
参照先 ConsoleChar, ConsoleClearInput, ConsoleKbHitDirect, ConsoleNewLine, ConsoleWindowHandle, Flush(), LibLogOut::CLibLogOut::SMappingInfo::m_nCount, LibLogOut::CLibLogOut::SMappingInfo::m_nReffer, m_psMappingInfo, NotifyDestructor, UpdateProcessInfo().

| 
 | privatedelete | 
| 
 | inlinevirtualnoexcept | 
| 
 | overridevirtualnoexcept | 
文字列出力関数
文字列出力関数です。
| [in] | pszString | 文字列ポインタ | 
LibCommon::CStreamOutを実装しています。
LibLogOut.cpp の 272 行目に定義があります。
参照先 Flush(), LibLogOut::CLibLogOut::SMappingInfo::m_nCount, m_psMappingInfo, LibLogOut::CLibLogOut::SMappingInfo::m_szBuffer, NotifyFatalError.

| 
 | overridevirtualnoexcept | 
行番号更新関数
行番号更新関数です。
| なし | 
LibCommon::CStreamOutを再実装しています。
LibLogOut.cpp の 321 行目に定義があります。
参照先 LibLogOut::CLibLogOut::SMappingInfo::m_nLine, m_psMappingInfo.
| 
 | overridevirtualnoexcept | 
行番号取得関数
行番号取得関数です。
| なし | 
LibCommon::CStreamOutを再実装しています。
LibLogOut.cpp の 337 行目に定義があります。
参照先 LibLogOut::CLibLogOut::SMappingInfo::m_nLine, m_psMappingInfo.
| 
 | overridevirtualnoexcept | 
インデントカウント取得関数
インデントカウント取得関数です。
| なし | 
LibCommon::CStreamOutを再実装しています。
LibLogOut.cpp の 353 行目に定義があります。
参照先 LibLogOut::CLibLogOut::SMappingInfo::m_nIndent, m_psMappingInfo.
| 
 | overridevirtualnoexcept | 
インデント関数
インデント関数です。
| なし | 
LibCommon::CStreamOutを再実装しています。
LibLogOut.cpp の 369 行目に定義があります。
参照先 LibLogOut::CLibLogOut::SProcessInfo::m_dwProcessId, LibLogOut::CLibLogOut::SProcessInfo::m_nIndent, LibLogOut::CLibLogOut::SMappingInfo::m_nIndent, m_psMappingInfo, LibLogOut::CLibLogOut::SMappingInfo::m_sProcess, NotifyFatalError, PROCESS_MAX, UpdateProcessInfo().

| 
 | overridevirtualnoexcept | 
アンインデント関数
アンインデント関数です。
| なし | 
LibCommon::CStreamOutを再実装しています。
LibLogOut.cpp の 408 行目に定義があります。
参照先 LibLogOut::CLibLogOut::SProcessInfo::m_dwProcessId, LibLogOut::CLibLogOut::SProcessInfo::m_nIndent, LibLogOut::CLibLogOut::SMappingInfo::m_nIndent, m_psMappingInfo, LibLogOut::CLibLogOut::SMappingInfo::m_sProcess, NotifyFatalError, PROCESS_MAX, UpdateProcessInfo().

| 
 | virtualnoexcept | 
参照プロセスカウント取得関数
参照プロセスカウント取得関数です。
| なし | 
LibLogOut.cpp の 447 行目に定義があります。
参照先 LibLogOut::CLibLogOut::SMappingInfo::m_nReffer, m_psMappingInfo.
| 
 | virtualnoexcept | 
バッファカウント取得関数
バッファカウント取得関数です。
| なし | 
LibLogOut.cpp の 463 行目に定義があります。
参照先 LibLogOut::CLibLogOut::SMappingInfo::m_nCount, m_psMappingInfo.
| 
 | virtualnoexcept | 
フラッシュ関数
フラッシュ関数です。
| なし | 
LibLogOut.cpp の 479 行目に定義があります。
参照先 DEVICE_MAX, EVENT_REQUEST_FORMAT, LibLogOut::CLibLogOut::SMappingInfo::m_bEnable, m_cEventNotify, LibLogOut::CLibLogOut::SMappingInfo::m_dwProcessId, LibLogOut::CLibLogOut::SMappingInfo::m_eDevice, LibLogOut::CLibLogOut::SMappingInfo::m_nCount, LibLogOut::CLibLogOut::SMappingInfo::m_nRequestPos, LibLogOut::CLibLogOut::SMappingInfo::m_nRequestSize, m_psMappingInfo, LibLogOut::CLibLogOut::SMappingInfo::m_szBuffer, NOTIFY_WAIT, LibCommon::CEvent::Open(), OutputDevice(), LibCommon::CEvent::Set(), UpdateProcessInfo(), LibCommon::CSync::Wait() (計17項目).
参照元 OutputString(), ~CLibLogOut().


| 
 | virtualnoexcept | 
出力デバイスプロセス設定関数
出力デバイスプロセス設定関数です。
| [in] | eDevice | デバイス種別 | 
| [in] | dwProcessId | プロセスID | 
LibLogOut.cpp の 563 行目に定義があります。
参照先 LibLogOut::CLibLogOut::SProcessInfo::m_dwProcessId, LibLogOut::CLibLogOut::SMappingInfo::m_dwProcessId, m_psMappingInfo, LibLogOut::CLibLogOut::SMappingInfo::m_sProcess, PROCESS_MAX, UpdateProcessInfo().

| 
 | protectedvirtualnoexcept | 
プロセス情報更新関数
プロセス情報更新関数です。
| [in] | bCurrent | カレントプロセス削除フラグ | 
LibLogOut.cpp の 599 行目に定義があります。
参照先 LibCommon::CProcess::Close(), DEVICE_MAX, LibCommon::CStreamOut::ExOutputLineFormat(), LibLogOut::CLibLogOut::SProcessInfo::m_dwProcessId, LibLogOut::CLibLogOut::SMappingInfo::m_dwProcessId, LibLogOut::CLibLogOut::SProcessInfo::m_nIndent, LibLogOut::CLibLogOut::SMappingInfo::m_nIndent, LibLogOut::CLibLogOut::SMappingInfo::m_nReffer, m_psMappingInfo, LibLogOut::CLibLogOut::SMappingInfo::m_sProcess, NotifyFatalError, LibCommon::CProcess::Open(), PROCESS_MAX, LibCommon::CSync::Wait().
参照元 Flush(), Indent(), SetDeviceProcess(), Unindent(), ~CLibLogOut().


| 
 | protectedvirtualnoexcept | 
デバイス出力関数
デバイス出力関数です。
| なし | 
LibLogOut.cpp の 703 行目に定義があります。
参照先 Console, ConsoleString, Debug, DebugString, File, m_cFileLog, LibLogOut::CLibLogOut::SMappingInfo::m_eDevice, LibLogOut::CLibLogOut::SMappingInfo::m_nRequestPos, LibLogOut::CLibLogOut::SMappingInfo::m_nRequestSize, m_psMappingInfo, LibLogOut::CLibLogOut::SMappingInfo::m_szBuffer, LibCommon::CFileStream::OutputString().
参照元 Flush(), SubThreadProc().


| 
 | inlinestaticnoexcept | 
| 
 | staticnoexcept | 
プロジェクト種別取得関数
プロジェクト種別取得関数です。
| なし | 
LibLogOut.cpp の 755 行目に定義があります。
参照先 _PROJECT_TYPE.
参照元 AppTest::CAppTest::Main(), AppTest::CAppTestMenuConsole::ShowProjectInfo().

| 
 | staticnoexcept | 
インスタンスハンドル取得関数
インスタンスハンドル取得関数です。
| なし | 
LibLogOut.cpp の 762 行目に定義があります。
参照元 AppTest::CAppTest::Main(), AppTest::CAppTestMenuConsole::ShowProjectInfo().

| 
 | staticprotectednoexcept | 
サブスレッド関数
サブスレッド関数です。
| [in] | lpParam | 引数ポインタ | 
LibLogOut.cpp の 780 行目に定義があります。
参照先 m_cEventNotify, m_cEventRequest, NotifyFatalError, OutputDevice(), LibCommon::CEvent::Set(), LibCommon::CSync::Wait().
参照元 CLibLogOut().


| 
 | staticprotectednoexcept | 
新規ログ出力ファイルパス取得関数
新規ログ出力ファイルパス取得関数です。
| [out] | pszPath | 文字列バッファポインタ | 
| [in] | nSize | バッファサイズ | 
LibLogOut.cpp の 810 行目に定義があります。
参照先 EVENT_NOTIFY_NAME, EVENT_REQUEST_FORMAT, LibCommon::GetExeFilePath(), OBJECT_NAME, s_cInstance.
参照元 CLibLogOut().


| 
 | privatedelete | 
| 
 | static | 
| 
 | staticprotected | 
文字列バッファサイズ
LibLogOut.h の 351 行目に定義があります。
| 
 | staticprotected | 
最大参照プロセス数
LibLogOut.h の 352 行目に定義があります。
参照元 CLibLogOut(), Indent(), SetDeviceProcess(), Unindent(), UpdateProcessInfo().
| 
 | staticprotected | 
| 
 | protected | 
共有メモリ情報構造体ポインタ
LibLogOut.h の 395 行目に定義があります。
参照元 CLibLogOut(), Flush(), GetCount(), GetIndentCount(), GetLineNumber(), GetRefferCount(), Indent(), OutputDevice(), OutputString(), SetDeviceProcess(), Unindent(), UpdateLineNumber(), UpdateProcessInfo(), ~CLibLogOut().
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
| 
 | protected | 
サブスレッド
LibLogOut.h の 399 行目に定義があります。
| 
 | protected | 
実行ファイル名
LibLogOut.h の 400 行目に定義があります。
| 
 | staticprotected | 
| 
 | staticprotected | 
| 
 | staticprotected | 
| 
 | staticprotected |