engine/inc/FeedParser.h
branchasynchparser
changeset 171 cc1be3797632
parent 2 29cda98b007e
--- a/engine/inc/FeedParser.h	Wed Jul 07 23:27:49 2010 +0100
+++ b/engine/inc/FeedParser.h	Fri Jul 09 11:34:00 2010 +0100
@@ -25,6 +25,7 @@
 #include <xml/contenthandler.h>	// for Xml::MContentHandler
 #include <xml/documentparameters.h>
 
+
 _LIT(KTagItem, "item");
 _LIT(KTagTitle, "title");
 _LIT(KTagImage, "image");
@@ -62,15 +63,21 @@
 
 const int KBufferLength = 1024;
 
-class CFeedParser : public CBase, public Xml::MContentHandler 
+class CFeedParser : public CActive, public Xml::MContentHandler 
 {
 public:
+	static CFeedParser* NewL(MFeedParserObserver& aCallbacks, RFs& aFs);
+	static CFeedParser* NewLC(MFeedParserObserver& aCallbacks, RFs& aFs);
+	virtual ~CFeedParser();
+	
+private:
 	CFeedParser(MFeedParserObserver& aCallbacks, RFs& aFs);
-	virtual ~CFeedParser();
+	void ConstructL();
 	
 public:
 	void ParseFeedL(const TFileName &feedFileName, CFeedInfo *item, TUint aMaxItems);
-	
+    void ParseFeedAoL(const TFileName &feedFileName, CFeedInfo *item, TUint aMaxItems);
+
 public: // from MContentHandler
 	void OnStartDocumentL(const Xml::RDocumentParameters& aDocParam, TInt aErrorCode);
 	void OnEndDocumentL(TInt aErrorCode);
@@ -85,6 +92,12 @@
 	void OnError(TInt aErrorCode);
 	TAny* GetExtendedInterface(const TInt32 aUid);
 	CFeedInfo& ActiveFeed();
+	
+private:
+   void DoCancel();
+   void RunL();
+   TInt RunError(TInt aError);
+   
 private:
 	MFeedParserObserver& iCallbacks;
 	TFeedState iFeedState;
@@ -98,7 +111,13 @@
 	TUint iItemsParsed;
 	TBool iStoppedParsing;
 	TEncoding iEncoding;
+	
 	RFs& iRfs;
+    Xml::CParser* iParser;
+    HBufC8* iXmlBuffer;
+    RFile iFile;
+    TFileName iFileName;
+
 };
 
 #endif