[前へ] [目次へ] [次へ]

PPointerMap (ネイティブクラス)


このクラスは文字列キーによるネイティブ編集可能ポインタ連想配列を扱うクラスです。

このクラスは参照の型をサブタイプとして取り、参照の連想配列を扱います。
参照先のオブジェクトのメモリ管理には干渉しません。

このクラスの実装はハッシュマップです。
文字列キーの長さに上限はありませんが、30バイト以下の文字列長に最適化されています。
それ以上の長さのキーを扱うと動作速度が著しく低下する可能性があります。

このクラスの配列要素はFGESにおけるオブジェクトではなく、
C++レベルで確保および管理されています。
そのため、配列要素とのやり取りは必ずデータがコピーされ、
配列要素への直接の参照を取得することができません。
その代わり、このクラスの配列要素はC++レベルの高速なコードで処理を行えます。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
public取得メソッドconst #operator[]指定した要素の値を取得します
public取得メソッドconst #operator{}指定した要素の値を取得します
public設定メソッド #operator={}複数の要素を一斉代入します
public取得メソッドconst Get指定した要素の値を取得します
public設定メソッド Set要素を代入します
public操作メソッド AllClear要素を全て削除します
public操作メソッド Erase指定した要素を削除します
public操作メソッド EraseDeadPointer参照先が現存しない要素を削除します
public比較・判定メソッドconst Exists指定した要素が存在するか調べます
public操作メソッド Add要素を追加します
public操作メソッド SetAdd指定した要素を必要なら追加してから設定します
public操作メソッドconst EachSet列挙オブジェクトを設定します
public操作メソッドconst Keys要素名を列挙します
public取得メソッドconst GetKeyList要素名リストを取得します
public操作メソッド Values要素を列挙します
public操作メソッド KeyValues要素名と要素を列挙します
public操作メソッド Rename要素名を変更します

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_PPOINTERMAP
クラス名: FGESPPointerMap



PPointerMap::#operator[]

public SubType?@ #operator[]( IString v)const

   この連想配列の v の名前を持つ要素の値を返します。
   このメソッドは指定した要素名が無効な場合、例外が発生します。

   このメソッドは最初に v から INativeString による取得を試みます。
   これに失敗した場合、 v.Get を呼び出します。

戻り値:指定した要素名の値を返します。

IString v :取得する要素名

先頭へ


PPointerMap::#operator{}

public SubType?@ #operator{}( IString v)const

   この連想配列の v の名前を持つ要素の値を返します。
   このメソッドは指定した要素名が無効な場合、空参照を返します。

   このメソッドは最初に v から INativeString による取得を試みます。
   これに失敗した場合、 v.Get を呼び出します。

戻り値:指定した要素名の値を返します。

IString v :取得する要素名

先頭へ


PPointerMap::#operator={}

public SelfType<SubType>@ #operator={}(...)

   この連想配列に引数として渡した要素を一括して参照代入します。
   この連想配列が既に持っていた要素は全て削除され、引数だけで構成された連想配列になります。
   
   引数は2つ一組で扱われ、1つ目が IString 型の要素名、2つ目が要素型で設定する値です。
   
   このメソッドは最初に各要素名の引数から INativeString による取得を試みます。
   これに失敗した場合、 IString@@Get を呼び出します。

戻り値: this を返します。

可変長引数:代入する要素リスト。要素名、要素データ、要素名、要素データと交互に並びます。

先頭へ


PPointerMap::Get

public SubType?@ Get( IString name)const

   この連想配列の name の名前を持つ要素の値を返します。
   このメソッドは指定した要素名が無効な場合、例外が発生します。
   
   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   このメソッドは #operator[] と同じ動作です。

戻り値:指定した要素名の値を返します。

IString name :取得する要素名

先頭へ


PPointerMap::Set

public Bool Set( IString name,editable SubType? val)

   この連想配列の name の名前を持つ要素に val を参照代入します。
   このメソッドは指定した要素名が無効な場合、偽を返し何も行いません。
   
   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

戻り値:代入に成功すると真を返します。

IString name :設定する要素名
editable SubType? val :設定する値

先頭へ


PPointerMap::AllClear

public SelfType<SubType>@ AllClear()

   この連想配列の全ての要素を削除します。

戻り値: this を返します。

先頭へ


PPointerMap::Erase

public Bool Erase( IString name)

   この連想配列から name の名前を持つ要素を削除します。
   
   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   このメソッドは指定した要素名が無効な場合、偽を返し何も行いません。

戻り値:この呼び出しで要素が削除された場合真を返します。

IString name :削除する要素名

先頭へ


PPointerMap::EraseDeadPointer

public Integer EraseDeadPointer()

   この連想配列の保持する参照のうち、参照先が消滅している要素を全て削除します。
   このメソッドは空参照を削除しません。

戻り値:この呼び出しで削除された要素数を返します。

先頭へ


PPointerMap::Exists

public Bool Exists( IString name)const

   この連想配列に name の名前を持つ要素が存在するか調べます。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

戻り値:指定した要素名の要素が存在すれば真を返します。

IString name :判定する要素名

先頭へ


PPointerMap::Add

public SelfType<SubType>@ Add( IString name,editable SubType? val)

   この連想配列に name の名前を持つ要素を追加します。
   追加された要素には val が参照代入されます。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

   指定した名前の要素が既に存在する場合、例外が発生します。

戻り値: this を返します。

IString name :追加する要素名
editable SubType? val :追加した要素に設定する値

先頭へ


PPointerMap::SetAdd

public SelfType<SubType>@ SetAdd( IString name,editable SubType? val)

   この連想配列の name の名前を持つ要素に val を参照代入します。
   このメソッドは指定した要素名が無効な場合、要素を追加してから参照代入します。

   このメソッドは最初に name から INativeString による取得を試みます。
   これに失敗した場合、 name.Get を呼び出します。

戻り値: this を返します。

IString name :設定する要素名
editable SubType? val :設定する値

先頭へ


PPointerMap::EachSet

public readonly SelfType<SubType>@ EachSet(editable PPointerMapEach each)const

   この連想配列を列挙するための列挙オブジェクトを設定します。
   ここで設定した列挙オブジェクトは列挙メソッドで使用します。
   
戻り値: this を返します。

editable PPointerMapEach each :[出力]設定する列挙オブジェクト

先頭へ


PPointerMap::Keys

public Bool Keys(editable INativeString key,editable PPointerMapEach each)const

   この連想配列に含まれる要素名を列挙します。
   each に指定する列挙オブジェクトはこの連想配列の EachSet で設定されたものでなければいけません。
   このメソッドを呼び出す度に、 key に要素名が順番に格納され、列挙オブジェクトの状態が更新されます。
   列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
   また、最後にこのメソッドが返した要素名以外の要素を削除した場合、
   全ての要素を列挙せずに列挙を終了する可能性があります。
   
戻り値: key に列挙した要素名が出力された場合、真を返します。
      呼び出した時点で列挙する要素がない場合、偽を返します。

editable INativeString key :[出力]列挙された要素名を出力するオブジェクト
editable PPointerMapEach each :[入出力]列挙状態を示す列挙オブジェクト

先頭へ


PPointerMap::GetKeyList

public readonly SelfType<SubType>@ GetKeyList(editable PStringArray list)const

   この連想配列に含まれる要素名リストを取得します。
   
戻り値: this を返します。

editable PStringArray list :[出力]要素名リストを出力するオブジェクト

先頭へ


PPointerMap::Values

public Bool Values(editable Pointer<SubType> val,editable PPointerMapEach each)const

   この連想配列に含まれる要素を列挙します。
   each に指定する列挙オブジェクトはこの連想配列の EachSet で設定されたものでなければいけません。
   このメソッドを呼び出す度に、 val に要素の値が順番に格納され、列挙オブジェクトの状態が更新されます。
   列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
   また、最後にこのメソッドが返した要素以外の要素を削除した場合、
   全ての要素を列挙せずに列挙を終了する可能性があります。
   
戻り値: val に列挙した要素が出力された場合、真を返します。
      呼び出した時点で列挙する要素がない場合、偽を返します。

editable Pointer<SubType> val :[出力]列挙された要素の値を出力するオブジェクト
editable PPointerMapEach each :[入出力]列挙状態を示す列挙オブジェクト

先頭へ


PPointerMap::KeyValues

public Bool KeyValues(editable INativeString key,editable Pointer<SubType> val,editable PPointerMapEach each)const

   この連想配列に含まれる要素名と要素を列挙します。
   each に指定する列挙オブジェクトはこの連想配列の EachSet で設定されたものでなければいけません。
   このメソッドを呼び出す度に、 key に要素名、 val に要素の値が順番に格納され、列挙オブジェクトの状態が更新されます。
   列挙オブジェクトを設定した後に追加された要素が列挙されるかは不定です。
   また、最後にこのメソッドが返した要素名以外の要素を削除した場合、
   全ての要素を列挙せずに列挙を終了する可能性があります。
   
戻り値:各引数に列挙した要素が出力された場合、真を返します。
      呼び出した時点で列挙する要素がない場合、偽を返します。

editable INativeString key :[出力]列挙された要素名を出力するオブジェクト
editable Pointer<SubType> val :[出力]列挙された要素の値を出力するオブジェクト
editable PPointerMapEach each :[入出力]列挙状態を示す列挙オブジェクト

先頭へ


PPointerMap::Rename

public Bool Rename( IString oldname, IString newname)

   この連想配列の oldname の名前を持つ要素の名前を newname に変更します。
   このメソッドは oldname に指定した要素名が無効な場合や
   newname に指定した要素名が既に存在する場合失敗します。

   このメソッドを呼び出すと列挙オブジェクトが無効になる可能性があります。
   列挙中にこのメソッドを使用することは推奨されません。

   このメソッドは最初に各引数から INativeString による取得を試みます。
   これに失敗した場合、 IString@@Get を呼び出します。

戻り値:名前の変更に成功すると真を返します。

IString oldname :名前変更する要素名
IString newname :新しい要素名

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2022/05/28