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

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

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

revision 36 by william, Fri Mar 8 02:13:59 2013 UTC revision 51 by william, Fri Mar 8 06:39:56 2013 UTC
# Line 3  using System.Collections.Generic; Line 3  using System.Collections.Generic;
3  using System.Linq;  using System.Linq;
4  using System.Text;  using System.Text;
5  using libxmltv.Interfaces;  using libxmltv.Interfaces;
6    using System.ComponentModel;
7    
8  namespace libxmltv.Core  namespace libxmltv.Core
9  {  {
10      internal class XMLTVRuntimeInstance : MarshalByRefObject, IXMLTVRuntimeInstance      [Serializable]
11        internal class XMLTVRuntimeInstance : MarshalByRefObject, IXMLTVRuntimeInstance, ISerializer<XMLTVRuntimeInstance>
12      {      {
13          public XMLTVRuntimeInstance(string xmlfile) { CreateInstance(xmlfile); }          public XMLTVRuntimeInstance(string xmlfile) : this(xmlfile, null) { }
14          private void CreateInstance(string xmlfile) { Instance = new XMLTVInstance(xmlfile, this); }          public XMLTVRuntimeInstance(string xmlfile, EventHandler<CancelEventArgs> t) { CreateInstance(xmlfile,t); }
15          internal XMLTVInstance Instance { get; private set; }          private void CreateInstance(string xmlfile, EventHandler<CancelEventArgs> t)
16            {
17                CancelEvent = t;
18                using (XMLTVInstance instance = new XMLTVInstance(xmlfile, this))
19                {
20                }
21            }
22    
23            //internal XMLTVInstance Instance { get; private set; }
24    
25          #region IXMLTV_LOADER members          #region IXMLTV_LOADER members
26          public System.IO.FileInfo XmlFile { get; set; }          public System.IO.FileInfo XmlFile { get; set; }
27          public System.Xml.Linq.XDocument XmlDoc { get; set; }          public string XmlDoc { get; set; }
28          #endregion          #endregion
29          #region IXMLTV_PARSER Members          #region IXMLTV_PARSER Members
30          public IXMLTVSource Source { get; set; }          public IXMLTVSource Source { get; set; }
31          public Dictionary<string, IXMLTVChannel> Channels { get; set; }          public Dictionary<string, IXMLTVChannel> Channels { get; set; }
32          public Dictionary<int, IXMLTVProgram> Programs { get; set; }          public Dictionary<int, IXMLTVProgram> Programs { get; set; }
33          #endregion            #endregion  
34        
35            public IXMLTVSerializer<XMLTVRuntimeInstance> Serializer
36            {
37                get { return new XMLTVSerializer<XMLTVRuntimeInstance>(this); }
38            }
39            //public void Dispose()
40            //{
41            //    IsDisposing = true;
42            //    //throw new NotImplementedException();
43            //}
44            //public bool IsDisposing { get; private set; }
45    
46    
47            private event EventHandler<CancelEventArgs> CancelEvent = null;
48    
49            public bool IsAborting
50            {
51                get
52                {
53                    if (CancelEvent != null)
54                    {
55                        CancelEventArgs e = new CancelEventArgs();
56                        CancelEvent.Invoke(this, e);
57                        if (e.Cancel)
58                        {
59                            xmltv_logger.Log.Verbose.Debug.WriteLine("Detected Instance abort event...");
60                        }
61                        return e.Cancel;
62                    }
63                    return false;
64                }
65            }
66    
67    
68      }      }
69    
70      internal class XMLTVInstance      internal class XMLTVInstance : IDisposable
71      {      {
72          public XMLTVInstance(string xmlfile, XMLTVRuntimeInstance instance)          public XMLTVInstance(string xmlfile, XMLTVRuntimeInstance instance)
73          {          {
# Line 33  namespace libxmltv.Core Line 77  namespace libxmltv.Core
77    
78          private void CreateLoader(string xml_file, XMLTVRuntimeInstance instance)          private void CreateLoader(string xml_file, XMLTVRuntimeInstance instance)
79          {          {
80              XMLTVLoader loader = new XMLTVLoader(xml_file, instance);              //XMLTVLoader loader = new XMLTVLoader(xml_file, instance);
81                XMLTVLoader.CreateInstance(xml_file, instance);
82          }          }
83          private void CreateParser(XMLTVRuntimeInstance instance)          private void CreateParser(XMLTVRuntimeInstance instance)
84          {          {
85              XMLTVParser parser = new XMLTVParser(instance);              //XMLTVParser parser = new XMLTVParser(instance);
86                XMLTVParser.CreateInstance(instance);
87            }
88    
89            public void Dispose()
90            {
91                //throw new NotImplementedException();
92          }          }
93      }      }
94  }  }

Legend:
Removed from v.36  
changed lines
  Added in v.51

  ViewVC Help
Powered by ViewVC 1.1.22