--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+
+namespace DTXCreator.WAV_BMP_AVI
+{
+ internal class CAVIキャッシュ
+ {
+ public Dictionary<int, CAVI> dicAVIディクショナリ = new Dictionary<int, CAVI>();
+ public int n現在のキャッシュアイテム数
+ {
+ get
+ {
+ if( this.dicAVIディクショナリ == null )
+ {
+ return 0;
+ }
+ return this.dicAVIディクショナリ.Count;
+ }
+ }
+
+ public CAVI tAVIをキャッシュから検索して返す( int nAVI番号1to1295 )
+ {
+ CAVI cavi;
+ if( ( nAVI番号1to1295 < 1 ) || ( nAVI番号1to1295 > 36 * 36 - 1 ) )
+ {
+ throw new Exception( "AVI番号が範囲を超えています。-> [" + nAVI番号1to1295 + "]" );
+ }
+ if( this.dicAVIディクショナリ.TryGetValue( nAVI番号1to1295, out cavi ) )
+ {
+ return cavi;
+ }
+ return null;
+ }
+ public CAVI tAVIをキャッシュから検索して返す_なければ新規生成する( int nAVI番号1to1295 )
+ {
+ if( ( nAVI番号1to1295 < 1 ) || ( nAVI番号1to1295 > 36 * 36 - 1 ) )
+ {
+ throw new Exception( "AVI番号が範囲を超えています。-> [" + nAVI番号1to1295 + "]" );
+ }
+ CAVI cavi = null;
+ if( !this.dicAVIディクショナリ.TryGetValue( nAVI番号1to1295, out cavi ) )
+ {
+ cavi = new CAVI();
+ cavi.nAVI番号1to1295 = nAVI番号1to1295;
+ this.tキャッシュに追加する( cavi );
+ }
+ return cavi;
+ }
+ public void tAVIをキャッシュから削除する( int nAVI番号1to1295 )
+ {
+ if( ( nAVI番号1to1295 < 1 ) || ( nAVI番号1to1295 > 36 * 36 - 1 ) )
+ {
+ throw new Exception( "AVI番号が範囲を超えています。-> [" + nAVI番号1to1295 + "]" );
+ }
+ CAVI cavi = null;
+ if( this.dicAVIディクショナリ.TryGetValue( nAVI番号1to1295, out cavi ) )
+ {
+ this.dicAVIディクショナリ.Remove( nAVI番号1to1295 );
+ }
+ }
+ public void tキャッシュに追加する( CAVI ac追加するAVI )
+ {
+ CAVI cavi;
+ if( this.dicAVIディクショナリ.TryGetValue( ac追加するAVI.nAVI番号1to1295, out cavi ) )
+ {
+ this.dicAVIディクショナリ.Remove( ac追加するAVI.nAVI番号1to1295 );
+ }
+ this.dicAVIディクショナリ.Add( ac追加するAVI.nAVI番号1to1295, ac追加するAVI );
+ }
+ public void tキャッシュに追加する( ListViewItem lvi )
+ {
+ CAVI cavi = new CAVI();
+ cavi.tコピーfrom( lvi );
+ this.tキャッシュに追加する( cavi );
+ }
+ public void t空にする()
+ {
+ this.dicAVIディクショナリ.Clear();
+ }
+ }
+}