|
TNB Library
|
共有構造体管理テンプレート [詳解]
#include <TnbSharedMemory.h>
CSharedStructT< TYP > の継承関係図クラス | |
| struct | IListener |
| 共有構造体管理のリスナーインターフェース [詳解] | |
公開メンバ関数 | |
| void | Close (IListener *piListener=NULL) |
| [操作] クローズ [詳解] | |
| CSharedStructT (bool boCanClose=true) | |
| コンストラクタ [詳解] | |
| bool | HasMemory (void) const |
| [確認] 共有メモリの有無 [詳解] | |
| bool | Open (LPCTSTR lpMemName=NULL, IListener *piListener=NULL) |
| [操作] オープン [詳解] | |
| operator const TYP * (void) const | |
| [取得] メモリの参照. [詳解] | |
| operator TYP * (void) | |
| [取得] メモリの参照. [詳解] | |
| TYP * | operator-> (void) |
| [取得] メモリの参照. [詳解] | |
| const TYP * | operator-> (void) const |
| [取得] メモリの参照. [詳解] | |
| virtual | ~CSharedStructT (void) |
| デストラクタ [詳解] | |
共有構造体管理テンプレート
一つの指定の構造体型の共有メモリを保持します。 オープン時リスナー( IListener )を指定することで、初めてのオープンの時だけ 共有メモリの初期化ができます。 Openしたインスタンスは指定した型のポインタとして操作が可能です。
| TYP | 共有メモリにおく構造体( 'operator→' を使っているので intなどは使えません) |
struct ISM : CSharedMemoryT<Bool>::IListener
{
virtual void OnAction(Bool* P)
{
*P = false;
}
} ism;
CSharedMemoryT<Bool> ll1;
CSharedMemoryT<Bool> ll2;
ll1.Open( _T("AAA"), &ism );
ll2.Open( _T("AAA"), &ism ); //同じ共有メモリ名なのでリスナーは呼ばれない
ASSERT( ll2->IsFalse() ); //(TYPのポインタと同じ記述が可能)
(*ll1) = true;
ASSERT( ll2->IsTrue() ); //同じメモリを指しているので影響がある
|
TnbSharedMemory.h の 214 行目に定義があります。
|
explicit |
コンストラクタ
| boCanClose | false ならクローズ時共有メモリを閉じない。trueか省略なら閉じる。 |
TnbSharedMemory.h の 261 行目に定義があります。
|
virtual |
デストラクタ
TnbSharedMemory.h の 268 行目に定義があります。
| void Close | ( | IListener * | piListener = NULL | ) |
[操作] クローズ
| piListener | リスナー。省略可能。指定すると破棄直前にOnActionがコールされます。 ただし、コンストラクタで boCanClose に false を指定していると、最後の クローズはしないので、OnAction()は絶対コールされません。 |
TnbSharedMemory.h の 373 行目に定義があります。
| bool HasMemory | ( | void | ) | const |
| bool Open | ( | LPCTSTR | lpMemName = NULL, |
| IListener * | piListener = NULL |
||
| ) |
[操作] オープン
| lpMemName | 共有メモリ名。 省略するとインスタンス内のみ有効な共有メモリになります。 他のTYPと同じ名前にならないようにしてください。 |
| piListener | リスナー。省略可能。指定すると初めてOpenした時に OnAction がコールされます。 |
| true | 成功 |
| false | 失敗 |
TnbSharedMemory.h の 336 行目に定義があります。
| operator const TYP * | ( | void | ) | const |
| operator TYP * | ( | void | ) |
| TYP * operator-> | ( | void | ) |
| const TYP * operator-> | ( | void | ) | const |