' リスナコレクション Class TraceListenerCollection pListeners As *TraceListener count As Long Public Sub TraceListenerCollection() pListeners = _System_malloc( 1 ) End Sub Sub ~TraceListenerCollection() _System_free( pListeners ) End Sub '---------------------------------------------------------------- ' パブリック メソッド '---------------------------------------------------------------- ' リスナを追加 Sub Add( listener As TraceListener ) pListeners = _System_realloc( pListeners, ( count + 1 ) * SizeOf( LONG_PTR ) ) pListeners[count] = listener count++ End Sub ' 複数のリスナを追加 Sub AddRange( listeners As TraceListenerCollection ) ' TODO: 実装 End Sub ' リストからすべてのリスナを削除 Sub Clear() ' TODO: 実装 End Sub ' 指定したリスナのインデックスを取得 Function IndexOf( listener As TraceListener ) ' TODO: 実装 End Function ' リスナを挿入 Sub Insert( index As Long, listener As TraceListener ) ' TODO: 実装 End Sub ' リスナを削除 Function Remove( name As String ) ' TODO: 実装 End Function Function Remove( listener As TraceListener ) ' TODO: 実装 End Function '---------------------------------------------------------------- ' パブリック プロパティ '---------------------------------------------------------------- ' インデクサ ( Getter ) Function Operator[] ( index As Long ) As TraceListener If index < 0 or count <= index Then ' TODO: エラー処理 debug End If Return pListeners[index] End Function ' 保有するリスナの数を取得する Function Count() As Long Return count End Function End Class