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

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

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

--- trunk/libxmltv/Core/XMLTVChannelCollection.cs	2013/03/08 03:09:49	43
+++ trunk/libxmltv/Core/XMLTVChannelCollection.cs	2013/03/08 04:01:25	46
@@ -9,13 +9,17 @@
 
 namespace libxmltv.Core
 {
-    internal class XMLTVChannelCollection
+    internal class XMLTVChannelCollection : IDisposable
     {
         private Dictionary<string, IXMLTVChannel> entries = new Dictionary<string, IXMLTVChannel>();
+        internal static void CreateInstance(XMLTVRuntimeInstance xmltv)
+        {
+            using (XMLTVChannelCollection g = new XMLTVChannelCollection(xmltv)) { g.instance.Channels = g.Collection; }
+        }
         private XMLTVRuntimeInstance instance;
         public XMLTVChannelCollection(XMLTVRuntimeInstance xmltv)
         {
-            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVChannelCollection");
+            xmltv_logger.Log.Verbose.Debug.WriteLine("Creating Instance of XMLTVChannelCollection");
             //IXMLTV_PARSER _xmltv;
             //if (!Internals.VerifyInstance<IXMLTV_PARSER>(xmltv, out _xmltv)) { return; }
             //XMLTV_PARSER = _xmltv;
@@ -37,15 +41,25 @@
 
             foreach (var c in doc.Descendants(XMLTVConstants.CHANNEL_ELEMENT))
             {
+                if (instance.IsAborting)
+                {
+                    break;
+                }
                 Channel channel = new Channel(c);
                 entries.Add(channel.Id, channel);
                 Application.DoEvents();
             }
+            //instance.Channels = Collection;
         }
         public override string ToString()
         {
             return string.Format("Channel Count: {0}", Collection == null ? 0 : Collection.Count);
         }
+
+        public void Dispose()
+        {
+            //throw new NotImplementedException();
+        }
     }
     [Serializable]
     internal class Channel : IXMLTVChannel
@@ -62,14 +76,14 @@
         {
             // get the channel id
             Id = e.Attribute(XMLTVConstants.Channels.ChannelId).Value;
-            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tchannel_id: {0}", Id);
+            xmltv_logger.Log.Verbose.Debug.WriteLine("\tchannel_id: {0}", Id);
             var names = e.Descendants(XMLTVConstants.Channels.ChannelDisplayName).ToList();
             Number = Convert.ToInt32(names[1].Value);
-            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tchannel_number: {0}", Number);
+            xmltv_logger.Log.Verbose.Debug.WriteLine("\tchannel_number: {0}", Number);
             CallSign = names[2].Value;
-            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tchannel_callsign: {0}", CallSign);
+            xmltv_logger.Log.Verbose.Debug.WriteLine("\tchannel_callsign: {0}", CallSign);
             Name = names[3].Value;
-            XMLTV_LOGGER.Log.Verbose.Debug.WriteLine("\tchannel_name: {0}", Name);
+            xmltv_logger.Log.Verbose.Debug.WriteLine("\tchannel_name: {0}", Name);
         }
         #region IXMLTVChannel members
         public string Id { get; private set; }

 

  ViewVC Help
Powered by ViewVC 1.1.22