src/NPRStoryXmlParser.cpp
author tahirm@symbian.org
Fri, 24 Jul 2009 08:46:02 +0100
changeset 0 0049171ecffb
permissions -rw-r--r--
initial release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     1
/*
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     2
 ============================================================================
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     3
 Name	: NPRStoryXmlParser.cpp
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     4
 Author	: John Kern
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     5
 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     6
 Copyright (c) 2009 Symbian Foundation Ltd
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     7
 This component and the accompanying materials are made available
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     8
 under the terms of the License "Eclipse Public License v1.0"
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
     9
 which accompanies this distribution, and is available
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    10
 at the URL "http://www.eclipse.org/legal/epl-v10.html".
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    11
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    12
 Initial Contributors:
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    13
 - Symbian Foundation Ltd - initial contribution
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    14
 - Symsource
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    15
 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    16
 Contributors:
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    17
 - John Kern
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    18
 - Symsource
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    19
 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    20
 Description : Story xml parser
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    21
 ============================================================================
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    22
 */
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    23
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    24
#include "NPRDocument.h"
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    25
#include "NPRStoryXmlParser.h"
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    26
#include "NPRStory.h"
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    27
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    28
CNPRStoryXmlParser* CNPRStoryXmlParser::NewLC(RPointerArray<CNPRStory>* aStoryArray)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    29
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    30
	CNPRStoryXmlParser* self = new (ELeave) CNPRStoryXmlParser(aStoryArray);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    31
	CleanupStack::PushL(self);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    32
	self->ConstructL();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    33
	return self;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    34
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    35
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    36
CNPRStoryXmlParser* CNPRStoryXmlParser::NewL(RPointerArray<CNPRStory>* aStoryArray)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    37
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    38
	CNPRStoryXmlParser* self = CNPRStoryXmlParser::NewLC(aStoryArray);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    39
	CleanupStack::Pop(); // self;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    40
	return self;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    41
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    42
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    43
CNPRStoryXmlParser::CNPRStoryXmlParser(RPointerArray<CNPRStory>* aStoryArray)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    44
:iStoryArray(aStoryArray)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    45
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    46
	// No implementation required
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    47
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    48
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    49
CNPRStoryXmlParser::~CNPRStoryXmlParser()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    50
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    51
	delete iTagName;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    52
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    53
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    54
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    55
void CNPRStoryXmlParser::ConstructL()
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    56
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    57
	iState = ENPRNewsStateIdle;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    58
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    59
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    60
void CNPRStoryXmlParser::OnStartDocumentL(
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    61
		const RDocumentParameters& /* aDocParam */, 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    62
		TInt aErrorCode )
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    63
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    64
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    65
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    66
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    67
void CNPRStoryXmlParser::OnEndDocumentL(TInt aErrorCode)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    68
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    69
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    70
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    71
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    72
HBufC* CNPRStoryXmlParser::Copy8To16LC(const TDesC8& aDes)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    73
        {
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    74
        HBufC* buf16 = HBufC::NewLC(aDes.Length());
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    75
        buf16->Des().Copy(aDes);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    76
        return buf16;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    77
        }
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    78
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    79
void CNPRStoryXmlParser::OnStartElementL(
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    80
		const RTagInfo& aElement, 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    81
		const RAttributeArray& aAttributes, 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    82
		TInt  aErrorCode	)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    83
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    84
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    85
	const TDesC8& tagName = aElement.LocalName().DesC();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    86
	if (tagName.CompareF(_L8("story"))==0)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    87
		{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    88
		iStory = ETrue;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    89
		if(iTagName)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    90
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    91
			delete iTagName;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    92
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    93
		iState = ENPRNewsStateStory;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    94
		iCurrentStory = CNPRStory::NewL(); 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    95
		// find the story Id attribute
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    96
		TInt count = aAttributes.Count();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    97
		for (TInt i = 0 ; i < count ; i++)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    98
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
    99
			 const RAttribute& attribute = aAttributes[i];
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   100
			 const RTagInfo& nameInfo = attribute.Attribute();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   101
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   102
			 const TDesC8& localName8 = nameInfo.LocalName().DesC();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   103
			 const TDesC8& value8 = attribute.Value().DesC();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   104
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   105
			 HBufC* localName16 = Copy8To16LC(localName8);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   106
			 HBufC* value16 = Copy8To16LC(value8);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   107
			 if (localName16->CompareF(_L("id")) == 0 )
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   108
				 {
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   109
				 TLex lex(value16->Des());
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   110
				 TInt v = 0;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   111
				 lex.Val(v);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   112
				 iCurrentStory->SetStoryId( v );
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   113
				 }
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   114
			 CleanupStack::PopAndDestroy(2); // value16 and localName16
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   115
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   116
		}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   117
	else if(iStory)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   118
		{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   119
		if(!iTagName && ((iState != ENPRNewsStateText) || (iState != ENPRNewsStateParagraph)))
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   120
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   121
			iTagName = tagName.AllocL();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   122
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   123
		
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   124
		if (iTagName->CompareF(_L8("title"))==0 && iState == ENPRNewsStateStory)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   125
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   126
			iState = ENPRNewsStateTitle;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   127
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   128
		else if (iTagName->CompareF(_L8("teaser"))==0 && iState == ENPRNewsStateStory)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   129
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   130
			iState = ENPRNewsStateTeaser;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   131
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   132
		else if (iTagName->CompareF(_L8("thumbnail"))==0 && iState == ENPRNewsStateStory)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   133
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   134
			iState = ENPRNewsStateThumbnail;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   135
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   136
		else if (iTagName->CompareF(_L8("text"))== 0 && iState == ENPRNewsStateStory)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   137
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   138
			iState = ENPRNewsStateText;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   139
			}	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   140
		else if (tagName.CompareF(_L8("paragraph"))== 0 && iTagName->CompareF(_L8("text"))==0)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   141
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   142
			iState = ENPRNewsStateParagraph;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   143
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   144
		else
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   145
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   146
			iState = ENPRNewsStateIdle;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   147
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   148
		}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   149
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   150
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   151
void CNPRStoryXmlParser::OnEndElementL(const RTagInfo& aElement, TInt aErrorCode )
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   152
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   153
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   154
	const TDesC8& tagName = aElement.LocalName().DesC();
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   155
	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   156
	TBool result = EFalse;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   157
	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   158
	if (tagName.CompareF(_L8("story"))== 0 && iState == ENPRNewsStateStory)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   159
		{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   160
		iStory = EFalse;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   161
		iState = ENPRNewsStateIdle;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   162
		iStoryArray->AppendL(iCurrentStory);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   163
		iCurrentStory = NULL;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   164
		} 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   165
	else if(iTagName)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   166
		{//TO DO we can have a switch here
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   167
		if (iTagName->CompareF(tagName)== 0 && iState == ENPRNewsStateTitle)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   168
			{ 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   169
			result = ETrue;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   170
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   171
		else if (iTagName->CompareF(tagName)== 0 && iState == ENPRNewsStateTeaser)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   172
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   173
			result = ETrue;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   174
			}	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   175
		else if (iTagName->CompareF(tagName)== 0 && iState == ENPRNewsStateThumbnail)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   176
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   177
			result = ETrue;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   178
			}	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   179
		else if (iTagName->CompareF(tagName)== 0 && iState == ENPRNewsStateText)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   180
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   181
			result = ETrue;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   182
			}	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   183
		else if (tagName.CompareF(_L8("paragraph"))== 0 && iTagName->CompareF(_L8("text"))==0)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   184
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   185
			iState = ENPRNewsStateText;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   186
			}	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   187
		else if (iTagName->CompareF(tagName)== 0 && iState == ENPRNewsStateIdle)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   188
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   189
			result = ETrue;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   190
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   191
		}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   192
	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   193
	if(result)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   194
		{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   195
		if(iTagName)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   196
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   197
			delete iTagName;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   198
			iTagName = NULL;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   199
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   200
		iState = ENPRNewsStateStory;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   201
		}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   202
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   203
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   204
void CNPRStoryXmlParser::OnContentL(const TDesC8&  aBytes, TInt aErrorCode)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   205
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   206
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   207
	
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   208
	switch(iState)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   209
		{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   210
		case ENPRNewsStateTitle:
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   211
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   212
			iCurrentStory->SetTitleL(aBytes);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   213
			break;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   214
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   215
		case ENPRNewsStateTeaser:
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   216
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   217
			iCurrentStory->SetTeaserL(aBytes);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   218
			break; 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   219
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   220
		case ENPRNewsStateParagraph:
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   221
			{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   222
			iCurrentStory->SetTextL(aBytes);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   223
			break;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   224
			}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   225
		default:
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   226
			iState = iState; // for debugging. 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   227
			break;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   228
		}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   229
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   230
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   231
void CNPRStoryXmlParser::OnStartPrefixMappingL(
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   232
		const RString& /* aPrefix */, 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   233
		const RString& /* aUri */, 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   234
		TInt aErrorCode)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   235
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   236
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   237
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   238
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   239
void CNPRStoryXmlParser::OnEndPrefixMappingL(const RString& /* aPrefix */, TInt aErrorCode)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   240
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   241
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   242
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   243
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   244
void CNPRStoryXmlParser::OnIgnorableWhiteSpaceL(const TDesC8& /* aBytes */, TInt /* aErrorCode*/)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   245
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   246
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   247
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   248
void CNPRStoryXmlParser::OnSkippedEntityL(const RString& /* aName */, TInt aErrorCode)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   249
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   250
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   251
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   252
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   253
void CNPRStoryXmlParser::OnProcessingInstructionL(
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   254
		const TDesC8& /* aTarget */ , 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   255
		const TDesC8& /* aData */ , 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   256
		TInt aErrorCode)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   257
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   258
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   259
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   260
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   261
void CNPRStoryXmlParser::OnError(TInt aErrorCode)
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   262
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   263
	User::LeaveIfError(aErrorCode);
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   264
	}
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   265
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   266
TAny* CNPRStoryXmlParser::GetExtendedInterface(const TInt32 /* aUid */) 
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   267
	{
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   268
	return NULL;
0049171ecffb initial release
tahirm@symbian.org
parents:
diff changeset
   269
	}