using System;
using System.Net;
using System.Threading.Tasks;
using System.Xml;
using Microsoft.SyndicationFeed.Atom;
namespace PolyFeed.ParserProviders
{
///
/// Defines the functionality that a source parser should provide.
/// Sources are represented by a object, and source parsers
/// are responsible for parsing it and populating a given atom feed.
///
public interface IParserProvider
{
///
/// The identifier of this provider.
/// Used in the .toml configuration file to specify which parser to use.
///
string Identifier { get; }
///
/// Sets the output feed that parsed output should be written to.
///
/// The output feed writer that output should be written to.
/// The underlying XML feed try not to use this unless you *really* have to.
void SetOutputFeed(AtomFeedWriter feed, XmlWriter xml);
///
/// Parses a web response that's paired with a given .
///
/// The object that the was generated from.
/// The in question needs parsing.
Task ParseWebResponse(FeedSource source, WebResponse response);
}
}