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

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

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

revision 117 by william, Sun Mar 10 17:10:47 2013 UTC revision 118 by william, Sun Mar 10 17:41:52 2013 UTC
# Line 7  using System.ComponentModel; Line 7  using System.ComponentModel;
7  using System.IO;  using System.IO;
8  using System.Reflection;  using System.Reflection;
9  using System.Globalization;  using System.Globalization;
10    using System.Windows.Forms;
11    
12  namespace libxmltv.Core  namespace libxmltv.Core
13  {  {
# Line 24  namespace libxmltv.Core Line 25  namespace libxmltv.Core
25              }              }
26          }          }
27    
28            #region public members
29            #region save data
30            public static void Save(string file)
31            {
32                if (!Serialize(file))
33                {
34                    MessageBox.Show("Failed to save data - check log", "Failed to save data", MessageBoxButtons.OK, MessageBoxIcon.Error);
35                    return;
36                }
37                MessageBox.Show("Successfully saved data", "Successfully saved data", MessageBoxButtons.OK, MessageBoxIcon.Information);
38            }
39            public static void Save(Stream stream)
40            {
41                if (!Serialize(stream))
42                {
43                    MessageBox.Show("Failed to save data - check log", "Failed to save data", MessageBoxButtons.OK, MessageBoxIcon.Error);
44                    return;
45                }
46                MessageBox.Show("Successfully saved data", "Successfully saved data", MessageBoxButtons.OK, MessageBoxIcon.Information);
47            }
48            #endregion
49            #region load data
50            public static void Load(string file) { Load(file, null); }
51            public static void Load(string file, EventHandler<EventArgs> handler)
52            {
53                if (!DeSerialize(file, handler))
54                {
55                    MessageBox.Show("Failed to load data - check log", "Failed to load data", MessageBoxButtons.OK, MessageBoxIcon.Error);
56                    return;
57                }
58                MessageBox.Show("Successfully loaded data", "Successfully loaded data", MessageBoxButtons.OK, MessageBoxIcon.Information);
59                OnCreatedInstance();
60    
61            }
62            public static void Load(Stream stream) { Load(stream, null); }
63            public static void Load(Stream stream, EventHandler<EventArgs> handler)
64            {
65                if (!DeSerialize(stream, handler))
66                {
67                    MessageBox.Show("Failed to load data - check log", "Failed to load data", MessageBoxButtons.OK, MessageBoxIcon.Error);
68                    return;
69                }
70                MessageBox.Show("Successfully loaded data", "Successfully loaded data", MessageBoxButtons.OK, MessageBoxIcon.Information);
71                OnCreatedInstance();
72            }
73            #endregion
74            #region Create/Destroy
75            public static void Create(params object[] args) { CreateInstance(args); }
76            public static void Destroy() { DestroyInstance(); }
77            #endregion
78    
79            #region Get Data
80            public static IXMLTVSource GetSource()
81            {
82                var gInstance = GetInstance();
83                var list = gInstance.Source;
84                return list;
85            }
86            public static List<IXMLTVChannel> GetChannels()
87            {
88                var gInstance = GetInstance();
89               var list = gInstance.Channels;
90                return list;
91            }
92            public static List<IXMLTVProgram> GetPrograms()
93            {
94                var gInstance = GetInstance();
95                var list = gInstance.Programs;
96                return list;
97            }
98            #endregion
99            #endregion
100    
101    
102          static IXMLTV<IXMLTVRuntimeInstance, XMLTVRuntimeInstance> instance;          static IXMLTV<IXMLTVRuntimeInstance, XMLTVRuntimeInstance> instance;
103          internal static IXMLTVRuntimeInstance GetInstance() { return instance.GetInstance(); }          internal static IXMLTVRuntimeInstance GetInstance() { return instance.GetInstance(); }
104          internal static void CreateInstance(params object[] args) { instance = new XMLTV<IXMLTVRuntimeInstance, XMLTVRuntimeInstance>(args); }          internal static void CreateInstance(params object[] args) { instance = new XMLTV<IXMLTVRuntimeInstance, XMLTVRuntimeInstance>(args); }
105    
106          internal static void CreateFromInstance(object raw_instance, EventHandler<EventArgs> handler)          internal static void CreateFromInstance(object raw_instance, EventHandler<EventArgs> handler)
107          {          {
108              instance = new XMLTV<IXMLTVRuntimeInstance, XMLTVRuntimeInstance>(raw_instance,handler);              instance = new XMLTV<IXMLTVRuntimeInstance, XMLTVRuntimeInstance>(raw_instance, handler);
109              if (OnInstanceCreated != null)              //OnCreatedInstance();
             {  
                 OnInstanceCreated.Invoke(null, new EventArgs());  
             }  
110          }          }
111    
112            internal static void OnCreatedInstance() { if (OnInstanceCreated != null) { OnInstanceCreated.Invoke(null, new EventArgs()); } }
113    
114          #region IXMLTVSerializer<IXMLTVRuntimeInstance> members          #region IXMLTVSerializer<IXMLTVRuntimeInstance> members
115          internal static bool Serialize(string file) { return instance.Serialize(file); }          internal static bool Serialize(string file) { return instance.Serialize(file); }
116          internal static bool Serialize(Stream stream) { return instance.Serialize(stream); }          internal static bool Serialize(Stream stream) { return instance.Serialize(stream); }
117          internal static bool DeSerialize(string file)          internal static bool DeSerialize(string file, EventHandler<EventArgs> handler)
118          {          {
119              bool status;              bool status;
120              var gInstance = instance.DeSerialize(file, out status);              var gInstance = instance.DeSerialize(file, out status);            
121              ISetInstance<IXMLTVRuntimeInstance> setter = (instance as ISetInstance<IXMLTVRuntimeInstance>);              CreateFromInstance(gInstance, handler);
             if (setter != null) { setter.SetInstance(gInstance); }  
122              return status;              return status;
123          }          }
124          internal static bool DeSerialize(Stream stream)          internal static bool DeSerialize(Stream stream, EventHandler<EventArgs> handler)
125          {          {
126              bool status;              bool status;
127              var gInstance = instance.DeSerialize(stream, out status);              var gInstance = instance.DeSerialize(stream, out status);
128              ISetInstance<IXMLTVRuntimeInstance> setter = (instance as ISetInstance<IXMLTVRuntimeInstance>);              CreateFromInstance(gInstance, handler);
             if (setter != null) { setter.SetInstance(gInstance); }  
129              return status;              return status;
130          }          }
131          #endregion          #endregion
# Line 65  namespace libxmltv.Core Line 137  namespace libxmltv.Core
137              set { instance.OnInstanceCreated = value; }              set { instance.OnInstanceCreated = value; }
138          }          }
139    
140          #region public members        
         public static bool Save(string file) { return Serialize(file); }  
         public static bool Load(string file) { return DeSerialize(file); }  
         public static void Create(params object[] args) { CreateInstance(args); }  
         public static void Destroy() { DestroyInstance(); }  
         #endregion  
141      }      }
142    
143      internal class XMLTV<INTERFACE, CLASS> : IDestroyInstance, IXMLTV<INTERFACE, CLASS> where CLASS : class,INTERFACE,new()      internal class XMLTV<INTERFACE, CLASS> : IDestroyInstance, IXMLTV<INTERFACE, CLASS> where CLASS : class,INTERFACE,new()

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

  ViewVC Help
Powered by ViewVC 1.1.22