/[xmltv_parser]/trunk/libxmltv/Core/XMLTVSerializer.cs
ViewVC logotype

Diff of /trunk/libxmltv/Core/XMLTVSerializer.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 49 by william, Fri Mar 8 05:20:12 2013 UTC revision 118 by william, Sun Mar 10 17:41:52 2013 UTC
# Line 10  using System.Windows.Forms; Line 10  using System.Windows.Forms;
10    
11  namespace libxmltv.Core  namespace libxmltv.Core
12  {  {
13      public class XMLTVSerializer<T> : IXMLTVSerializer<T>      internal class XMLTVSerializer<T> : IXMLTVSerializer<T>
14      {      {
15          private T data;          private T data;
16          public XMLTVSerializer(T Data) { data = Data; }          public XMLTVSerializer(T Data) { data = Data; }
# Line 18  namespace libxmltv.Core Line 18  namespace libxmltv.Core
18          public bool Serialize(string file)          public bool Serialize(string file)
19          {          {
20              bool retVal = false;              bool retVal = false;
21                xmltv_logger.Debug.WriteLine("Serializing data to file: '{0}'", file);
22              using (Stream stream = File.Open(file, FileMode.Create)) { retVal = Serialize(stream); }              using (Stream stream = File.Open(file, FileMode.Create)) { retVal = Serialize(stream); }
23              return retVal;              return retVal;
24          }          }
# Line 25  namespace libxmltv.Core Line 26  namespace libxmltv.Core
26          {          {
27              try              try
28              {              {
29                    xmltv_logger.Debug.WriteLine("Serializing data to stream");
30                  BinaryFormatter bin = new BinaryFormatter();                  BinaryFormatter bin = new BinaryFormatter();
31                  bin.Serialize(stream, data);                  bin.Serialize(stream, data);
32                    xmltv_logger.Debug.WriteLine("Serialized data to stream");
33              }              }
34              catch (Exception ex) { xmltv_logger.Log.Error.WriteLine(ex.ToString()); return false; }              catch (Exception ex) { xmltv_logger.Error.WriteLine(ex.ToString()); return false; }
35              return true;              return true;
36          }          }
37          public bool DeSerialize(string file, out T unpacked_data)          public T DeSerialize(string file, out bool status)
38          {          {
39              unpacked_data = default(T);             T  unpacked_data = default(T);
40              bool retVal = false;             xmltv_logger.Debug.WriteLine("DeSerializing data from file: '{0}'", file);
41              using (Stream stream = File.Open(file, FileMode.Open)) { retVal = DeSerialize(stream, out unpacked_data); }              using (Stream stream = File.Open(file, FileMode.Open)) { unpacked_data = DeSerialize(stream, out status); }
42              return retVal;              return unpacked_data;
43          }          }
44          public bool DeSerialize(Stream stream, out T unpacked_data)          public T DeSerialize(Stream stream, out bool status)
45          {          {
46              unpacked_data = default(T);             T unpacked_data = default(T);
47              try              try
48              {              {
49                    xmltv_logger.Debug.WriteLine("DeSerializing data from stream");
50                  BinaryFormatter bin = new BinaryFormatter();                  BinaryFormatter bin = new BinaryFormatter();
51                  unpacked_data = (T)bin.Deserialize(stream);                  unpacked_data = (T)bin.Deserialize(stream);
52                    xmltv_logger.Debug.WriteLine("DeSerialized data from stream");
53              }              }
54              catch (Exception ex) { xmltv_logger.Log.Error.WriteLine(ex.ToString()); return false; }              catch (Exception ex) { xmltv_logger.Error.WriteLine(ex.ToString()); status = false; }
55              return true;              status = true;
56                return unpacked_data;
57          }          }
58          #endregion          #endregion
59      }      }

Legend:
Removed from v.49  
changed lines
  Added in v.118

  ViewVC Help
Powered by ViewVC 1.1.22