ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/RomCheater/trunk/RomCheater/Serialization/SerializationWriter.cs
(Generate patch)

Comparing trunk/RomCheater/Serialization/SerializationWriter.cs (file contents):
Revision 401 by william, Thu Jun 21 05:14:38 2012 UTC vs.
Revision 446 by william, Sun Jun 2 19:52:03 2013 UTC

--- trunk/RomCheater/Serialization/SerializationWriter.cs	2012/06/21 05:14:38	401
+++ trunk/RomCheater/Serialization/SerializationWriter.cs	2013/06/02 19:52:03	446
@@ -6,27 +6,43 @@ using System.IO;
 
 namespace RomCheater.Serialization
 {
-    public interface ISerializationWriter
+    public interface ISerializationResultCount
     {
-        int ResultCount { get; }
+        int ResultCount { get; }     
     }
-    public abstract class SerializationWriter : ISerializationWriter, IDisposable
+   
+    public abstract class SerializationWriter : ISerializationResultCount, IDisposable
     {
+        private static string CreateFilename(Guid guid)
+        {
+            if (guid == Guid.Empty)
+            {
+                return DEFAULT_PATH;
+            }
+            else
+            {
+                return string.Format(@"{0}\{1}", DEFAULT_FOLDER, string.Format("{0}.tmp", guid.ToString()));
+            }
+        }
         private const string DEFAULT_FOLDER = "tmp";
         private const string DEFAULT_FILENAME = "SerializedMemoryResults.tmp";
         private static string DEFAULT_PATH = string.Format(@"{0}\{1}", DEFAULT_FOLDER,DEFAULT_FILENAME);
-        public SerializationWriter() : this(DEFAULT_PATH) { }
-        protected SerializationWriter(string filename) : this(filename, 0) { }
-        public SerializationWriter(int resultCount) : this(DEFAULT_PATH, resultCount) { }
-        public SerializationWriter(string filename, int resultCount) { FileName = filename; ResultCount = resultCount; CreateFile(); }
+        //public SerializationWriter() : this(CreateFilename(Guid.Empty)) {  }
+        
+        public SerializationWriter(int resultCount, Guid guid) : this(resultCount,guid, true) { }
+        public SerializationWriter(int resultCount, Guid guid, bool delete) : this(CreateFilename(guid)) {  ResultCount = resultCount; CreateFile(delete); }
+        protected SerializationWriter(Guid guid) : this(0, guid, true) { }
+        protected SerializationWriter(string filename) { FileName = filename; }
 
-        #region ISerializationWriter members
+        #region ISerializationResultCount members
         public int ResultCount { get; protected set; }
-        
         #endregion
         private FileStream fileStream;
         protected BinaryWriter binWriter;
         protected string FileName { get; private set; }
+
+        protected bool Cancelled { get; set; }
+        public void CancelRequest() { Cancelled = true; }
         private bool DeleteResultFile()
         {
             try
@@ -44,9 +60,10 @@ namespace RomCheater.Serialization
                 return false;
             }
         }
-        private void CreateFile()
+        private void CreateFile(bool delete)
         {
-            DeleteResultFile();
+            if (delete)
+                DeleteResultFile();
             FileInfo fi = new FileInfo(FileName);
             if (!fi.Exists)
             {