OSDN Git Service

Merge branch 'feature/37178_プロジェクトとソリューションファイルの英語化' into develop
[dtxmania/dtxmania.git] / DTXCreator / コード / 02.WAV_BMP_AVI / CAVIキャッシュ.cs
diff --git a/DTXCreator/コード/02.WAV_BMP_AVI/CAVIキャッシュ.cs b/DTXCreator/コード/02.WAV_BMP_AVI/CAVIキャッシュ.cs
new file mode 100644 (file)
index 0000000..702ddb8
--- /dev/null
@@ -0,0 +1,83 @@
+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();
+               }
+       }
+}