pushmtm/plugins/PushContentHandler/CSLContentHandler.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 13 Sep 2010 17:13:53 +0100
branchRCL_3
changeset 69 4455192101e4
permissions -rw-r--r--
Nokia wk34 delivery
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
69
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:  Implementation of CSLContentHandler.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
// INCLUDE FILES
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "CSLContentHandler.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "PushMtmUtil.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "PushMtmSettings.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "PushAuthenticationUtilities.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "PushMtmLog.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include "PushContentHandlerPanic.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include "PushMtmAutoFetchOperation.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include "PushMtmUiDef.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include "StringResourceReader.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include "sl_dict.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include "PushContentHandlerUtils.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include <push/cslpushmsgentry.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include <msvids.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include <apgtask.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include <apgcli.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#include <w32std.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include <PushMtmUi.rsg>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include <nw_dom_node.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
#include <nw_dom_document.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
#include <nw_dom_element.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#include <nw_dom_text.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
#include <nw_wbxml_dictionary.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
#include <nw_string_char.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
#include "PushMtmPrivateCRKeys.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
#include <centralrepository.h> 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
// CONSTANTS
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
// sl attributes / elements
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
_LIT8( KSl,      "sl" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
_LIT8( KHref,    "href" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
_LIT8( KAction,  "action" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
// action attribute literals
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
_LIT8( KExecHigh,"execute-high" );  
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
_LIT8( KExecLow, "execute-low" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
_LIT8( KCache,   "cache" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
// Text SL MIME type
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
_LIT( KSlTextContentType, "text/vnd.wap.sl" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
// Browser command to fetch an URL. See Browser API Specification!
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
_LIT( KBrowserCmdFetchUrl, "4 " );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
const TUid KBrowserAppUid = { 0x10008D39 };
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
const TInt KNoOfDictArrays = 1;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
/// Autofetch time delay in seconds.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
const TInt KAutofetchDelayInSec = 5;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
// file monitored by browser
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
_LIT( KPushMtmUrl, "c:\\system\\temp\\PushMtmUrl.txt" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
// ================= MEMBER FUNCTIONS =======================
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
// CSLContentHandler::NewL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
CSLContentHandler* CSLContentHandler::NewL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
	CSLContentHandler* self = new (ELeave) CSLContentHandler;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
	CleanupStack::PushL( self );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
	self->ConstructL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
	CleanupStack::Pop( self );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
	return self;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
// CSLContentHandler::~CSLContentHandler
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
CSLContentHandler::~CSLContentHandler()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
    PUSHLOG_ENTERFN("CSLContentHandler::~CSLContentHandler")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    Cancel();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
    delete iFetchOp;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    delete iHrefBuf;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
    PUSHLOG_LEAVEFN("CSLContentHandler::~CSLContentHandler")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
// CSLContentHandler::CSLContentHandler
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
CSLContentHandler::CSLContentHandler()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
:   CPushContentHandlerBase(), 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
    iSavedMsgId( KMsvNullIndexEntryId ), 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
    iPushMsgAction( KErrNotFound ), 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
    iSaveAsRead( EFalse )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
// CSLContentHandler::ConstructL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
void CSLContentHandler::ConstructL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
    PUSHLOG_ENTERFN("CSLContentHandler::ConstructL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    CRepository* PushSL = CRepository::NewL( KCRUidPushMtm );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    CleanupStack::PushL( PushSL );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    User::LeaveIfError( PushSL->Get( KPushMtmServiceEnabled , iPushSLEnabled ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
    CleanupStack::PopAndDestroy( PushSL ); 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
    
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
    CPushContentHandlerBase::ConstructL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
    // Added to Active Scheduler.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
    PUSHLOG_LEAVEFN("CSLContentHandler::ConstructL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
// CSLContentHandler::CollectGarbageL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
void CSLContentHandler::CollectGarbageL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
    PUSHLOG_ENTERFN("CSLContentHandler::CollectGarbageL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
    DoCollectGarbageL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
	if(iPushSLEnabled)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
	    iState = EFilteringAndParsing;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
	else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
	    iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
	
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
	IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
    PUSHLOG_LEAVEFN("CSLContentHandler::CollectGarbageL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
// CSLContentHandler::ParsePushMsgL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
// Note that cXML parser dosn't do any validation!
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
void CSLContentHandler::ParsePushMsgL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
    PUSHLOG_ENTERFN("CSLContentHandler::ParsePushMsgL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    TPtrC8 bodyPtr;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
    iMessage->GetMessageBody( bodyPtr );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
    // If there is no body in the message leave with an error
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
    if ( bodyPtr.Size() == 0 )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
        PUSHLOG_WRITE("CSLContentHandler::ParsePushMsgL: Empty body")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
        User::Leave( KErrCorrupt );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    TPtrC contentType;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
    iMessage->GetContentType( contentType );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
    PUSHLOG_WRITE_FORMAT(" Content type <%S>",&contentType)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    // Add SL dictionary.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
    NW_WBXML_Dictionary_t* dictArray[ KNoOfDictArrays ] = 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
        { (NW_WBXML_Dictionary_t*)&NW_SL_WBXMLDictionary };
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    NW_Status_t stat = NW_STAT_SUCCESS;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
    RWbxmlDictionary wbxmlDict;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    wbxmlDict.InitializeL( KNoOfDictArrays, dictArray );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
    CleanupClosePushL<RWbxmlDictionary>( wbxmlDict );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
    NW_TinyDom_Handle_t domHandle;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
    NW_Byte* buffer = (NW_Byte*)bodyPtr.Ptr();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
    NW_Int32 length = (NW_Int32)bodyPtr.Size();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
    NW_Bool encoded = ( contentType.CompareF( KSlTextContentType ) == 0 ) ? 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
                                                         NW_FALSE : NW_TRUE;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
    NW_Uint32 publicID = NW_SL_PublicId;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
    NW_Bool extTNotStringTable = NW_FALSE; // What is this?
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
    NW_DOM_NodeType_t type = 0;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
    /**********************************
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
    *   Root of DOM
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
    ***********************************/
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
    CDocumentTreeOwner* docTreeOwner = new (ELeave) CDocumentTreeOwner;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
    CleanupStack::PushL( docTreeOwner );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
    NW_DOM_DocumentNode_t* domNode = NW_DOM_DocumentNode_BuildTree
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
        ( 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
                            &domHandle, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
                            buffer, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
                            length, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
                            encoded, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
                            publicID, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
                            extTNotStringTable 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
        );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
	if (!domNode)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
		{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
		PUSHLOG_WRITE("CSLContentHandler::ParsePushMsgL: domNode is Null")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
		}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
    User::LeaveIfNull( domNode );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
    docTreeOwner->SetDocTree( domNode );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
    type = NW_DOM_Node_getNodeType( domNode );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    if ( type != NW_DOM_DOCUMENT_NODE )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
        PUSHLOG_WRITE_FORMAT("CSLContentHandler::ParsePushMsgL: Not Document node <%d>",type)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
        User::Leave( KErrArgument );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
    iCharEncoding = NW_DOM_DocumentNode_getCharacterEncoding( domNode );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
    PUSHLOG_WRITE_FORMAT("CSLContentHandler::ParsePushMsgL: Doc char encoding <%x>",iCharEncoding)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
    /**********************************
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
    *   ELEMENT sl
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
    ***********************************/
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
	// first make sure if there any children in the dom tree, otherwise we will PANIC(in NW_DOM_DocumentNode_getDocumentElement) and crash WatcherMainThread.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
	TBool domNodeHasChildNodes = EFalse;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
	domNodeHasChildNodes = NW_DOM_Node_hasChildNodes( domNode );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
	PUSHLOG_WRITE_FORMAT("CSLContentHandler::ParsePushMsgL: check if Dom tree has <SI> node <%d>", domNodeHasChildNodes)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
	if (!domNodeHasChildNodes)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
        PUSHLOG_WRITE("CSLContentHandler::ParsePushMsgL: No SL element present in the dom tree. Message corrupted.")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
        User::Leave( KErrCorrupt );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
	PUSHLOG_WRITE("CSLContentHandler::ParsePushMsgL: before calling getDocumentElement")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
    NW_DOM_ElementNode_t* slElement = 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
        NW_DOM_DocumentNode_getDocumentElement( domNode );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
	if (!slElement)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
		{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
		PUSHLOG_WRITE("CSLContentHandler::ParsePushMsgL: slElement is Null")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
		}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
    User::LeaveIfNull( slElement );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
    type = NW_DOM_Node_getNodeType( slElement );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
    CStringOwner* stringOwner = new (ELeave) CStringOwner;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
    CleanupStack::PushL( stringOwner );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
    NW_String_t* name = NW_String_new();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
    User::LeaveIfNull( name );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
    stringOwner->SetString( name );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
    stat = NW_DOM_Node_getNodeName( slElement, name );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
	PUSHLOG_WRITE_FORMAT("CSLContentHandler::ParsePushMsgL: getNodeName ErrCode: %d", NwxStatusToErrCode( stat ))
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
    User::LeaveIfError( NwxStatusToErrCode( stat ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
    NW_Byte*  nameBuf = NW_String_getStorage( name );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
    NW_Uint16 nameLen = NW_String_getCharCount( name, iCharEncoding );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
    TPtrC8 namePtr( nameBuf, nameLen );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
    if ( type != NW_DOM_ELEMENT_NODE || namePtr.CompareF( KSl ) != 0 )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
        PUSHLOG_WRITE_FORMAT("CSLContentHandler::ParsePushMsgL: Not sl element node <%d>",type)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
        User::Leave( KErrArgument );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
    CleanupStack::PopAndDestroy( stringOwner ); // stringOwner
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
    /**********************************
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
    *   Attributes of ELEMENT sl
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
    ***********************************/
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
    if ( NW_DOM_ElementNode_hasAttributes( slElement ) )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
        NW_DOM_AttributeListIterator_t attrIter;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
        stat = NW_DOM_ElementNode_getAttributeListIterator
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
                             ( slElement, &attrIter );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
		PUSHLOG_WRITE_FORMAT("CSLContentHandler::ParsePushMsgL: getAttribListIter ErrCode: %d", NwxStatusToErrCode( stat ))
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
        User::LeaveIfError( NwxStatusToErrCode( stat ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
        NW_DOM_AttributeHandle_t attrHandle;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
        while( NW_DOM_AttributeListIterator_getNextAttribute
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
               ( &attrIter, &attrHandle ) == NW_STAT_WBXML_ITERATE_MORE )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
            ParseSlAttributeL( attrHandle );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
    // Cleanup.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
    CleanupStack::PopAndDestroy( 2, &wbxmlDict ); // docTreeOwner, wbxmlDict
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
    // if 'action' attribute not specified, the value 'execute-low' is used.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
	if ( !ActionFlag() )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
		iPushMsgAction = CSLPushMsgEntry::ESLPushMsgExecuteLow;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
        SetActionFlag( ETrue );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
        PUSHLOG_WRITE_FORMAT(" Defaulting to ActionFlag: %d",iPushMsgAction)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
    iState = EProcessing;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
    IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
    PUSHLOG_LEAVEFN("CSLContentHandler::ParsePushMsgL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
// CSLContentHandler::ParseSlAttributeL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
void CSLContentHandler::ParseSlAttributeL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
                        ( NW_DOM_AttributeHandle_t& aAttrHandle )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
    PUSHLOG_ENTERFN("CSLContentHandler::ParseSlAttributeL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
    NW_Status_t stat = NW_STAT_SUCCESS;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
    CStringOwner* attrNameOwner = new (ELeave) CStringOwner;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
    CleanupStack::PushL( attrNameOwner );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
    NW_String_t* attrName = NW_String_new();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
    User::LeaveIfNull( attrName );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
    attrNameOwner->SetString( attrName );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
    // Get the name of the attribute.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
    stat = NW_DOM_AttributeHandle_getName( &aAttrHandle, attrName );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
    User::LeaveIfError( NwxStatusToErrCode( stat ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
    NW_Byte*  attrNameBuf = NW_String_getStorage( attrName );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
    NW_Uint16 attrNameLen = NW_String_getCharCount( attrName, iCharEncoding );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
    TPtrC8 attrNamePtr( attrNameBuf, attrNameLen );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
    if ( attrNamePtr.CompareF( KHref ) == 0 )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
        if ( !HrefFlag() )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
            HBufC* tempHrefBuf = NULL;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
            CStringOwner* valOwner = new (ELeave) CStringOwner;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
            CleanupStack::PushL( valOwner );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
            NW_String_t* val = NW_String_new();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
            User::LeaveIfNull( val );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
            valOwner->SetString( val );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
            stat = NW_DOM_AttributeHandle_getValue( &aAttrHandle, val );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
            if ( stat != NW_STAT_DOM_NO_STRING_RETURNED )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
                {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
                User::LeaveIfError( NwxStatusToErrCode( stat ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
                NW_Byte* storage = NW_String_getStorage( val );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
                NW_Uint16 length = NW_String_getCharCount( val, iCharEncoding );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
                TPtrC8 prefixPtr( storage, length );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
                tempHrefBuf = HBufC::NewMaxL( length );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
                // No leavable after it!!! until...
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
                tempHrefBuf->Des().Copy( prefixPtr );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
                }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
            CleanupStack::PopAndDestroy( valOwner ); // valOwner
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
            if ( tempHrefBuf )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   360
                {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   361
                if ( tempHrefBuf->Length() == 0 )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
                    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
                    // Zero length Href is considered as nothing.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
                    PUSHLOG_WRITE(" Zero length HrefFlag");
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
                    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
                else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
                    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
                    iHrefBuf = tempHrefBuf; // ...until here.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
                    SetHrefFlag( ETrue );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
                    PUSHLOG_WRITE_FORMAT(" HrefFlag set <%S>",iHrefBuf);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
                    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
                }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
    else if ( attrNamePtr.CompareF( KAction ) == 0 )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
        if ( !ActionFlag() )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
            CStringOwner* stringOwner = new (ELeave) CStringOwner;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   380
            CleanupStack::PushL( stringOwner );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
            NW_String_t* val = NW_String_new();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
            User::LeaveIfNull( val );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
            stringOwner->SetString( val );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
            stat = NW_DOM_AttributeHandle_getValue( &aAttrHandle, val ); 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
            User::LeaveIfError( NwxStatusToErrCode( stat ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
            NW_Byte* storage = NW_String_getStorage( val );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
            NW_Uint16 length = NW_String_getCharCount( val, iCharEncoding );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
            TPtrC8 actionPtr( storage, length );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
            iPushMsgAction = ConvertActionString( actionPtr );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
            SetActionFlag( ETrue );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
            PUSHLOG_WRITE_FORMAT(" ActionFlag: %d",iPushMsgAction)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
            CleanupStack::PopAndDestroy( stringOwner );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   398
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   400
        __ASSERT_DEBUG( EFalse, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   401
            ContHandPanic( EPushContHandPanUnexpSlToken ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   404
    CleanupStack::PopAndDestroy( attrNameOwner ); // attrNameOwner
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
    PUSHLOG_LEAVEFN("CSLContentHandler::ParseSlAttributeL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   407
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   408
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   410
// CSLContentHandler::ConvertActionString
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   411
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   412
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   413
TUint CSLContentHandler::ConvertActionString
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   414
                         ( const TDesC8& aActionString ) const
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   415
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
	const TInt KMatchFound = 0;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   417
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
	// if 'action' attribute not specified, the value 'execute-low' is used.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   419
	TUint actionValue = CSLPushMsgEntry::ESLPushMsgExecuteLow;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   421
	if ( aActionString.Compare( KExecHigh ) == KMatchFound )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   422
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
		actionValue = CSLPushMsgEntry::ESLPushMsgExecuteHigh;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   424
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
	else if ( aActionString.Compare( KExecLow ) == KMatchFound )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   426
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   427
		actionValue = CSLPushMsgEntry::ESLPushMsgExecuteLow;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   428
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
	else if ( aActionString.Compare( KCache ) == KMatchFound )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
		actionValue = CSLPushMsgEntry::ESLPushMsgExecuteCache;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
	return actionValue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   436
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   437
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   438
// CSLContentHandler::SetSlPushMsgEntryFieldsL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   439
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
void CSLContentHandler::SetSlPushMsgEntryFieldsL( CSLPushMsgEntry& 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
                                                  aSlPushMsgEntry ) const
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
    PUSHLOG_ENTERFN("CSLContentHandler::SetSlPushMsgEntryFieldsL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
	// Set URL and Action fields.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
    if ( HrefFlag() )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
	    aSlPushMsgEntry.SetUrlL( *iHrefBuf );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   452
    __ASSERT_DEBUG( ActionFlag(), 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   453
                    ContHandPanic( EPushContHandPanUnspecSlAction ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   454
    if ( ActionFlag() )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
	    aSlPushMsgEntry.SetAction( iPushMsgAction );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
    else // if not specified, the value 'execute-low' is used.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
        aSlPushMsgEntry.SetAction( CSLPushMsgEntry::ESLPushMsgExecuteLow );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
	// Set all the relevant header fields.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
	TPtrC8 msgHeaderPtr;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
	iMessage->GetHeader( msgHeaderPtr );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
	aSlPushMsgEntry.SetHeaderL( msgHeaderPtr );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
    // Get server address.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
    TPtrC8 srvAddress;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
    if ( iMessage->GetServerAddress( srvAddress ) )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
	    aSlPushMsgEntry.SetFromL( srvAddress );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
    // First line in Inbox: TMsvEntry::iDetails.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
    if ( srvAddress.Length() == 0 )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
        // Read from resource.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
        HBufC* details = 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
            iStrRscReader->AllocReadResourceLC( R_PUSHMISC_UNK_SENDER );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
        aSlPushMsgEntry.SetMsgDetailsL( *details );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
        CleanupStack::PopAndDestroy( details );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
        // Convert the "From" information to the format required by the UI 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
        // spec and then decode it.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
        HBufC* details = iWapPushUtils->ConvertDetailsL( srvAddress );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
        CleanupStack::PushL( details );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
        HBufC* convertedFrom = 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
            CPushMtmUtil::ConvertUriToDisplayFormL( *details );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
        CleanupStack::PushL( convertedFrom );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
        //
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
        aSlPushMsgEntry.SetMsgDetailsL( *convertedFrom );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   495
        //
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   496
        CleanupStack::PopAndDestroy( 2, details ); // convertedFrom, details
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   497
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
    // Second line in Inbox: TMsvEntry::iDescription.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
    // Read from resource.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
    HBufC* description = 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   502
        iStrRscReader->AllocReadResourceLC( R_PUSHMISC_INBOX_SERV_MSG );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
    aSlPushMsgEntry.SetMsgDescriptionL( *description );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
    CleanupStack::PopAndDestroy( description );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
    // ******** Push MTM specific processing *********
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
    /*
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
    * Unfortunately in CPushMsgEntryBase there is no such functionality 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   510
    * with which we can reach TMsvEntry as non-const, but we have to 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
    * modify the entry's iMtmData2 member somehow. We can do it 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
    * with either casting or with modifying and saving the entry 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
    * manually after it has been saved by CSLPushMsgEntry. The latter 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   514
    * solution is more expensive so we choose the first.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
    */
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
    TMsvEntry& tEntry = CONST_CAST( TMsvEntry&, aSlPushMsgEntry.Entry() );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
    if ( HrefFlag() )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   518
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
        CPushMtmUtil::SetAttrs( tEntry, EPushMtmAttrHasHref );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
        CPushMtmUtil::ResetAttrs( tEntry, EPushMtmAttrHasHref );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
    // Indication is required if the entry is saved as 'read' (delete & 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
    // replacement notification). It can happen only in case of SL message.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   528
    // Otherwise the flag has to be cleared!
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
    if ( !iSaveAsRead )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
        // Saving as unread & new.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   532
        tEntry.SetNew( ETrue );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
        tEntry.SetUnread( ETrue );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
        CPushMtmUtil::ResetAttrs( tEntry, EPushMtmReadButContentChanged );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
        // Saving as read.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
        tEntry.SetNew( EFalse );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
        tEntry.SetUnread( EFalse );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
        CPushMtmUtil::SetAttrs( tEntry, EPushMtmReadButContentChanged );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   544
    PUSHLOG_LEAVEFN("CSLContentHandler::SetSlPushMsgEntryFieldsL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   545
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   546
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
// CSLContentHandler::ProcessingPushMsgEntryL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   549
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   550
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   551
void CSLContentHandler::ProcessingPushMsgEntryL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   552
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   553
    PUSHLOG_ENTERFN("CSLContentHandler::ProcessingPushMsgEntryL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   554
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
    TBool discardPushMsg( EFalse );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   556
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   557
    __ASSERT_DEBUG( ActionFlag(), 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
                    ContHandPanic( EPushContHandPanUnspecSlAction ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
    // S60 requirement: if the href is empty then delete (discard) the msg.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
    if ( HrefFlag() == EFalse )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
        PUSHLOG_WRITE(" No SL Href.")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
        discardPushMsg = ETrue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   566
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   567
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
        __ASSERT_DEBUG( HrefFlag() && iHrefBuf, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   569
                        ContHandPanic( EPushContHandPanUnspecSlHref ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
        // The message will not be discarded
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
        discardPushMsg = EFalse;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
        CMsvEntrySelection* matchingUrlList = iWapPushUtils->FindUrlLC
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
                                              ( *iHrefBuf, KUidWapPushMsgSL );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   576
        TInt matchingListCount = matchingUrlList->Count();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   577
        PUSHLOG_WRITE_FORMAT(" matchingListCount: %d",matchingListCount)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   578
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   579
        // Only one SL is allowed with the same Url, so leave the first and 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   580
        // delete the others.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   581
        if ( 1 < matchingListCount )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   582
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   583
            for ( TInt count = 1; count < matchingListCount; ++count )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   584
                {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   585
                iWapPushUtils->DeleteEntryL( matchingUrlList->At(count) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   586
                }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   587
            matchingListCount = 1; // Only one remains.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   588
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   590
	    if ( 0 < matchingListCount )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   591
		    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   592
		    // Find msg of the same href and discard it if it has a lower or 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   593
            // the same action value.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   594
            CSLPushMsgEntry* matchingSl = CSLPushMsgEntry::NewL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
	        CleanupStack::PushL( matchingSl );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   596
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   597
            const TMsvId matchingId = matchingUrlList->At(0);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   598
            matchingSl->RetrieveL( *iMsvSession, matchingId );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   599
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   600
            if ( iPushMsgAction <= matchingSl->Action() ) 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   601
			    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   602
                PUSHLOG_WRITE(" SL: not higher action")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   603
                discardPushMsg = ETrue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
                }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   605
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   606
            CleanupStack::PopAndDestroy( matchingSl ); // matchingSl, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   607
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   608
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   609
	    CleanupStack::PopAndDestroy( matchingUrlList ); // matchingUrlList
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   610
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   611
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   612
    if ( discardPushMsg )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   613
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   614
        // Nothing to do.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   615
        PUSHLOG_WRITE(" SL discarded.")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   616
        iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
        IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   618
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   619
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   620
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   621
        iState = HandleServiceInvocationL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   622
        IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   623
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   624
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   625
    __ASSERT_DEBUG( iSavedMsgId == KMsvNullIndexEntryId, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   626
                    ContHandPanic( EPushContHandPanSlMsgIdSet ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   627
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   628
    PUSHLOG_LEAVEFN("CSLContentHandler::ProcessingPushMsgEntryL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   629
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   630
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   631
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   632
// CSLContentHandler::HandleServiceInvocationL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   633
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   635
TInt CSLContentHandler::HandleServiceInvocationL() const
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   637
    PUSHLOG_ENTERFN("CSLContentHandler::HandleServiceInvocationL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
    TInt nextState = ESavePushMsgEntry;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   641
    if ( iPushMsgAction == CSLPushMsgEntry::ESLPushMsgExecuteCache )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
        PUSHLOG_WRITE(" SL cache");
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
        TBool isAuthenticated = TPushAuthenticationUtil::
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
            AuthenticateMsgL( *iMtmSettings, *iMessage );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
		if ( !isAuthenticated )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   647
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   648
            PUSHLOG_WRITE(" Not authenticated");
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   649
            // The message is placed to Inbox.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   650
            nextState = ESavePushMsgEntry;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   651
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   652
        else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   654
            // Authenticated. Fetch SL-cache.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
            nextState = EFetching;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   657
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   658
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
    else if ( iPushMsgAction == CSLPushMsgEntry::ESLPushMsgExecuteLow )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
        PUSHLOG_WRITE(" SL execute-low")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   662
        // It is independent from Automatic/Manual setting and WL 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   663
        // authentication is not applied. The message is placed to Inbox 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   664
        // for manual downloading.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   665
        nextState = ESavePushMsgEntry;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   667
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   668
    else // ESLPushMsgExecuteHigh
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   670
        PUSHLOG_WRITE(" SL execute-high");
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
        // If the settings is Manual or it does not pass the WL authentication 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
		// then it is placed to Inbox for manual downloading.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   673
        // If the setting is Automatic and it passes the WL authentication, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   674
        // the Browser is started standalone to download the URL without any 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
		// user interaction.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
        if ( iMtmSettings->ServiceLoadingType() == 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
			               CPushMtmSettings::EManual )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   678
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   679
            PUSHLOG_WRITE(" Manual setting")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
            // The message is placed to Inbox.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   681
            nextState = ESavePushMsgEntry;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   682
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   683
        else // Automatic loading
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
            PUSHLOG_WRITE(" Automatic setting");
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   686
            // Authenticate the message.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   687
            TBool isAuthenticated = TPushAuthenticationUtil::
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   688
                AuthenticateMsgL( *iMtmSettings, *iMessage );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   689
            if ( !isAuthenticated )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   690
	            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   691
                PUSHLOG_WRITE(" Not authenticated");
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   692
	            // The message is placed to Inbox.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   693
	            nextState = ESavePushMsgEntry;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   694
	            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
            else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   696
	            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   697
	            // Authenticated - start downloading.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   698
	            nextState = EFetching;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   699
	            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   700
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   701
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   702
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
    PUSHLOG_LEAVEFN("CSLContentHandler::HandleServiceInvocationL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   704
    return nextState;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   706
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   707
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
// CSLContentHandler::FetchPushMsgEntryL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   709
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   710
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   711
void CSLContentHandler::FetchPushMsgEntryL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   712
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   713
    PUSHLOG_ENTERFN("CSLContentHandler::FetchPushMsgEntryL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   714
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   715
    __ASSERT_DEBUG( iSavedMsgId == KMsvNullIndexEntryId, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   716
                    ContHandPanic( EPushContHandPanAlreadyInitialized ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   717
    __ASSERT_DEBUG( HrefFlag() && iHrefBuf, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   718
                    ContHandPanic( EPushContHandPanUnspecSlHref ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   719
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   720
    /* 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   721
    * In case of execute-high use the Browser to download the service.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   722
    * In case of cache use the fetch operation to download the service 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   723
    * silently. 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   724
    */
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   725
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   726
    if ( iPushMsgAction == CSLPushMsgEntry::ESLPushMsgExecuteHigh )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   727
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   728
        PUSHLOG_WRITE(" Start Browser")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   729
        // Launch the Browser with the URI, then save the message.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   730
        // Trap errors. If Browser's launching fails, then save the 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   731
        // message as 'unread'. In case of an error, it is not forwarded.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   732
        TRAPD( err, StartBrowserL() );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   733
        iState = ESavePushMsgEntry;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   734
        // Mark it 'read' after succesfull Browser startup.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
        iSaveAsRead = err ? EFalse : ETrue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
        IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   737
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   738
    else if ( iPushMsgAction == CSLPushMsgEntry::ESLPushMsgExecuteCache )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   739
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   740
        // Fetch the service inside the content handler.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   741
        iStatus = KRequestPending;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   742
        SetActive();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   743
        __ASSERT_DEBUG( !iFetchOp, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   744
                        ContHandPanic( EPushContHandPanFetchAlreadyInit ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   745
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   746
        iFetchOp = CPushMtmAutoFetchOperation::NewL( *iHrefBuf, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   747
                                                     KAutofetchDelayInSec, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   748
                                                     iStatus );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   749
        iFetchOp->StartL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   750
        PUSHLOG_WRITE(" Fetch op started")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   751
        iState = EFetchCompleted; // Next state.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   752
        // Fetch completes it.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   753
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   754
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   755
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   756
        __ASSERT_DEBUG( EFalse, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   757
                        ContHandPanic( EPushContHandPanBadActionValue ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   758
        User::Leave( KErrNotSupported );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   759
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   760
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   761
    PUSHLOG_LEAVEFN("CSLContentHandler::FetchPushMsgEntryL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   762
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   763
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   764
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   765
// CSLContentHandler::StartBrowserL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   766
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   767
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   768
void CSLContentHandler::StartBrowserL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   769
    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   770
    PUSHLOG_ENTERFN("CSLContentHandler::StartBrowserL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   771
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   772
    // Parameters are separated by space
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   773
    // 1st parameter: type of the further parameters
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   774
    // 2nd parameter: URL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   775
    //
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   776
    HBufC* param = HBufC::NewLC( KBrowserCmdFetchUrl().Length() + 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   777
                                 iHrefBuf->Length() );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   778
    TPtr paramPtr = param->Des();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   779
    paramPtr.Copy( KBrowserCmdFetchUrl );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   780
    paramPtr.Append( *iHrefBuf );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   781
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   782
    RWsSession wsSession;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   783
    User::LeaveIfError( wsSession.Connect() );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   784
    CleanupClosePushL<RWsSession>( wsSession );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   785
    TApaTaskList taskList( wsSession );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   786
    TApaTask task = taskList.FindApp( KBrowserAppUid );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   787
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   788
    if ( task.Exists() )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   789
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   790
        PUSHLOG_WRITE("CSLContentHandler Browser::SendMessage")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   791
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   792
        RFs             rfs;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   793
        RFile           file;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   794
        TPtrC8          param8Ptr;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   795
        // 8-bit buffer is required.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   796
        HBufC8* param8 = HBufC8::NewLC( param->Length() );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   797
        param8->Des().Copy( *param );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   798
        param8Ptr.Set(param8->Des());
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   799
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   800
        // Open the file.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   801
        User::LeaveIfError(rfs.Connect());
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   802
        CleanupClosePushL(rfs);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   803
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   804
        // Replace file if exists or Create file if not exist yet
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   805
        User::LeaveIfError( file.Replace( rfs, KPushMtmUrl, EFileWrite | EFileShareExclusive ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   806
        CleanupClosePushL(file);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   807
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   808
        // Write to file      
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   809
        User::LeaveIfError( file.Write( param8Ptr ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   810
        
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   811
        // Clean up.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   812
        CleanupStack::PopAndDestroy(/*file*/);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   813
        CleanupStack::PopAndDestroy(/*rfs*/);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   814
        CleanupStack::PopAndDestroy( /*param8*/ );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   815
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   816
    else 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   817
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   818
        PUSHLOG_WRITE("CSLContentHandler Browser::StartDocument")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   819
        RApaLsSession appArcSession;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   820
        User::LeaveIfError( appArcSession.Connect() );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   821
        CleanupClosePushL<RApaLsSession>( appArcSession );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   822
        TThreadId id;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   823
        User::LeaveIfError
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   824
            (
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   825
                appArcSession.StartDocument( *param, KBrowserAppUid, id )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   826
            );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   827
        CleanupStack::PopAndDestroy( &appArcSession );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   828
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   829
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   830
    CleanupStack::PopAndDestroy( &wsSession );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   831
    CleanupStack::PopAndDestroy( param );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   832
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   833
    PUSHLOG_LEAVEFN("CSLContentHandler::StartBrowserL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   834
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   835
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   836
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   837
// CSLContentHandler::FetchCompletedL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   838
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   839
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   840
void CSLContentHandler::FetchCompletedL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   841
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   842
    PUSHLOG_ENTERFN("CSLContentHandler::FetchCompletedL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   843
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   844
    __ASSERT_DEBUG( iPushMsgAction == CSLPushMsgEntry::ESLPushMsgExecuteCache, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   845
                    ContHandPanic( EPushContHandPanBadActionValue ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   846
    __ASSERT_DEBUG( iSavedMsgId == KMsvNullIndexEntryId, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   847
                    ContHandPanic( EPushContHandPanAlreadyInitialized ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   848
    __ASSERT_DEBUG( iFetchOp, ContHandPanic( EPushContHandPanNoFetchOp ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   849
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   850
    const TInt fetchRes = iStatus.Int();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   851
    PUSHLOG_WRITE_FORMAT(" fetchRes <%d>",fetchRes)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   852
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   853
    if ( fetchRes != KErrNone )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   854
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   855
        // Downloading failed. Save the message.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   856
        iState = ESavePushMsgEntry;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   857
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   858
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   859
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   860
        // Silent fetching has completed successfully.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   861
        // The message should not be saved.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   862
        iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   863
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   864
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   865
    // Next state set. Complete.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   866
    IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   867
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   868
    PUSHLOG_LEAVEFN("CSLContentHandler::FetchCompletedL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   869
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   870
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   871
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   872
// CSLContentHandler::SavePushMsgEntryL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   873
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   874
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   875
void CSLContentHandler::SavePushMsgEntryL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   876
    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   877
    PUSHLOG_ENTERFN("CSLContentHandler::SavePushMsgEntryL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   878
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   879
    __ASSERT_DEBUG( ActionFlag(), 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   880
                    ContHandPanic( EPushContHandPanUnspecSlAction ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   881
    __ASSERT_DEBUG( HrefFlag() && iHrefBuf, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   882
                    ContHandPanic( EPushContHandPanUnspecSlHref ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   883
    __ASSERT_DEBUG( iSavedMsgId == KMsvNullIndexEntryId, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   884
                    ContHandPanic( EPushContHandPanAlreadyInitialized ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   885
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   886
    CMsvEntrySelection* matchingUrlList = iWapPushUtils->FindUrlLC
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   887
                                          ( *iHrefBuf, KUidWapPushMsgSL );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   888
    TInt matchingListCount = matchingUrlList->Count();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   889
    PUSHLOG_WRITE_FORMAT(" matchingListCount: %d",matchingListCount)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   890
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   891
    // Only one SL is allowed with the same Url, so leave the first and 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   892
    // delete the others.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   893
    __ASSERT_DEBUG( matchingListCount <= 1, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   894
                    ContHandPanic( EPushContHandPanTooManySl ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   895
    if ( 1 < matchingListCount )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   896
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   897
        for ( TInt count = 1; count < matchingListCount; ++count )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   898
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   899
            iWapPushUtils->DeleteEntryL( matchingUrlList->At(count) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   900
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   901
        matchingListCount = 1; // Only one remains.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   902
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   903
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   904
    TBool saveNewMsg = ETrue; // Save by default.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   905
    TMsvId matchingEntryId = KMsvNullIndexEntryId;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   906
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   907
    // Apply reception rules.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   908
    if ( matchingListCount == 0 )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   909
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   910
        // Nothing to do.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   911
        saveNewMsg = ETrue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   912
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   913
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   914
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   915
        CSLPushMsgEntry* matchingSl = CSLPushMsgEntry::NewL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   916
        CleanupStack::PushL( matchingSl );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   917
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   918
        matchingEntryId = matchingUrlList->At(0);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   919
        matchingSl->RetrieveL( *iMsvSession, matchingEntryId );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   920
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   921
        if ( iPushMsgAction <= matchingSl->Action() ) 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   922
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   923
            // Discard the new SL: it does not have higher 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   924
            // action value as the existing.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   925
            PUSHLOG_WRITE(" SL not higher action - discarded")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   926
            saveNewMsg = EFalse;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   927
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   928
        else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   929
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   930
            // The new has greater action attribute. 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   931
            // Update the old SL with the new data.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   932
            saveNewMsg = ETrue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   933
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   934
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   935
        CleanupStack::PopAndDestroy( matchingSl ); // matchingSl
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   936
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   937
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   938
    CleanupStack::PopAndDestroy( matchingUrlList ); // matchingUrlList
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   939
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   940
    // Store message if not marked for deletion.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   941
    if ( saveNewMsg )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   942
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   943
		StoreSLMessageL( matchingEntryId );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   944
		}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   945
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   946
    iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   947
    IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   948
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   949
    PUSHLOG_LEAVEFN("CSLContentHandler::SavePushMsgEntryL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   950
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   951
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   952
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   953
// CSLContentHandler::StoreSLMessageL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   954
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   955
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   956
void CSLContentHandler::StoreSLMessageL( TMsvId aMatchingEntryId )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   957
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   958
    PUSHLOG_ENTERFN("CSLContentHandler::StoreSLMessageL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   959
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   960
	CSLPushMsgEntry* slEntry = CSLPushMsgEntry::NewL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   961
	CleanupStack::PushL( slEntry );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   962
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   963
    if ( aMatchingEntryId == KMsvNullIndexEntryId )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   964
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   965
        PUSHLOG_WRITE(" No matching SL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   966
        // Save new to Inbox.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   967
        SetSlPushMsgEntryFieldsL( *slEntry );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   968
	    iSavedMsgId = 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   969
            slEntry->SaveL( *iMsvSession, KMsvGlobalInBoxIndexEntryId );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   970
        // Set the entry to read and *not* new state depending on iSaveAsRead.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   971
        if ( !iSaveAsRead )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   972
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   973
            // Do nothing SaveL saves it as unread.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   974
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   975
        else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   976
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   977
            // SaveL owerrides the read settings (iEntry.SetUnread(ETrue);) 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   978
            // that we set in SetSlPushMsgEntryFieldsL, thus the read status 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   979
            // has to be reset manually here:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   980
            iWapPushUtils->MarkServiceUnreadL( iSavedMsgId, EFalse );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   981
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   982
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   983
    else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   984
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   985
        PUSHLOG_WRITE(" Matching SL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   986
        slEntry->RetrieveL( *iMsvSession, aMatchingEntryId );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   987
        SetSlPushMsgEntryFieldsL( *slEntry );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   988
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   989
        slEntry->UpdateL( *iMsvSession );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   990
        iSavedMsgId = aMatchingEntryId;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   991
        // Note that UpdateL does not change the read/unread status.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   992
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   993
        // Move the updated msg back to Inbox.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   994
        TMsvId parentId = slEntry->Entry().Parent();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   995
        if ( parentId != KMsvGlobalInBoxIndexEntryId )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   996
	        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   997
            PUSHLOG_WRITE(" Moving back to Inbox")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   998
            CMsvEntry* cParent = iMsvSession->GetEntryL( parentId );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   999
            CleanupStack::PushL( cParent );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1000
	        cParent->MoveL( iSavedMsgId, KMsvGlobalInBoxIndexEntryId );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1001
            CleanupStack::PopAndDestroy( cParent ); // cParent
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1002
	        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1003
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1004
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1005
#ifdef __TEST_LOG__
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1006
        _LIT( KDateFormat, "%E%D%X%N%Y %1 %2 %3" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1007
        _LIT( KTimeFormat, "%-B%:0%J%:1%T%:2%S%:3%+B" );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1008
        TBuf<32> dateHolder;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1009
        TBuf<32> timeHolder;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1010
        TTime recDateTime = slEntry->ReceivedDate();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1011
        recDateTime.FormatL( dateHolder, KDateFormat );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1012
        recDateTime.FormatL( timeHolder, KTimeFormat );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1013
        PUSHLOG_WRITE_FORMAT(" rec date: <%S>",&dateHolder)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1014
        PUSHLOG_WRITE_FORMAT(" rec time: <%S>",&timeHolder)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1015
#endif // __TEST_LOG__
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1016
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1017
	CleanupStack::PopAndDestroy( slEntry ); // slEntry
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1018
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1019
    PUSHLOG_LEAVEFN("CSLContentHandler::StoreSLMessageL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1020
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1021
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1022
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1023
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1024
// CSLContentHandler::HandleMessageL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1025
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1026
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1027
void CSLContentHandler::HandleMessageL( CPushMessage* aPushMsg, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1028
                                        TRequestStatus& aStatus )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1029
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1030
    PUSHLOG_ENTERFN("CSLContentHandler::HandleMessageL 2")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1031
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1032
    __ASSERT_DEBUG( aPushMsg != NULL, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1033
                    ContHandPanic( EPushContHandPanMsgNull ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1034
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1035
#ifdef __TEST_LOG__
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1036
    TPtrC8 bodyPtr;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1037
    aPushMsg->GetMessageBody( bodyPtr );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1038
    PUSHLOG_HEXDUMP( bodyPtr )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1039
#endif // __TEST_LOG__
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1040
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1041
	iMessage = aPushMsg;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1042
	iAcknowledge = ETrue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1043
	SetConfirmationStatus( aStatus );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1044
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1045
	iState = EGarbageCollecting;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1046
	IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1047
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1048
    PUSHLOG_LEAVEFN("CSLContentHandler::HandleMessageL 2")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1049
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1050
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1051
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1052
// CSLContentHandler::HandleMessageL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1053
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1054
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1055
void CSLContentHandler::HandleMessageL( CPushMessage* aPushMsg )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1056
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1057
    PUSHLOG_ENTERFN("CSLContentHandler::HandleMessageL 1")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1058
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1059
    __ASSERT_DEBUG( aPushMsg != NULL, 
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1060
                    ContHandPanic( EPushContHandPanMsgNull ) );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1061
	
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1062
#ifdef __TEST_LOG__
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1063
    TPtrC8 bodyPtr;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1064
    aPushMsg->GetMessageBody( bodyPtr );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1065
    PUSHLOG_HEXDUMP( bodyPtr )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1066
#endif // __TEST_LOG__
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1067
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1068
	iAcknowledge = EFalse;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1069
	iMessage = aPushMsg;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1070
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1071
	iState = EGarbageCollecting;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1072
	IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1073
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1074
    PUSHLOG_LEAVEFN("CSLContentHandler::HandleMessageL 1")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1075
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1076
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1077
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1078
// CSLContentHandler::CancelHandleMessage
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1079
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1080
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1081
void CSLContentHandler::CancelHandleMessage()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1082
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1083
    Cancel();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1084
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1085
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1086
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1087
// CSLContentHandler::CPushHandlerBase_Reserved1
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1088
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1089
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1090
void CSLContentHandler::CPushHandlerBase_Reserved1()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1091
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1092
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1093
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1094
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1095
// CSLContentHandler::CPushHandlerBase_Reserved1
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1096
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1097
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1098
void CSLContentHandler::CPushHandlerBase_Reserved2()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1099
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1100
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1101
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1102
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1103
// CSLContentHandler::DoCancel
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1104
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1105
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1106
void CSLContentHandler::DoCancel()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1107
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1108
    PUSHLOG_ENTERFN("CSLContentHandler::DoCancel")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1109
    // TODO Cancel outstanding requests!
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1110
	Complete( KErrCancel );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1111
    PUSHLOG_LEAVEFN("CSLContentHandler::DoCancel")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1112
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1113
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1114
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1115
// CSLContentHandler::RunL
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1116
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1117
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1118
void CSLContentHandler::RunL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1119
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1120
    PUSHLOG_ENTERFN("CSLContentHandler::RunL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1121
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1122
    // Handle errors in RunError().
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1123
    PUSHLOG_WRITE_FORMAT(" iStatus.Int(): %d",iStatus.Int())
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1124
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1125
	switch ( iState )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1126
		{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1127
	    case EGarbageCollecting:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1128
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1129
		    CollectGarbageL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1130
		    break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1131
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1132
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1133
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1134
        case EFilteringAndParsing:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1135
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1136
            if(iPushSLEnabled)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1137
                {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1138
                if ( !FilterPushMsgL() )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1139
                    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1140
                    // It did not pass the filter. Done.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1141
                    iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1142
                    IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1143
                    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1144
                else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1145
                    {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1146
                    // Continue.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1147
                    TInt ret = KErrNone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1148
                    PUSHLOG_WRITE("CSLContentHandler::RunL : before trapping parsing.")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1149
                    TRAP(ret, ParsePushMsgL());
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1150
                    PUSHLOG_WRITE_FORMAT("CSLContentHandler::RunL : after trapping parsing. ret = %d", ret)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1151
                    if ( ret != KErrNone)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1152
                        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1153
                        PUSHLOG_WRITE("CSLContentHandler::RunL : Parsing failed. discarding message.")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1154
                        iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1155
                        IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1156
                        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1157
                    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1158
                }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1159
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1160
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1161
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1162
        case EProcessing:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1163
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1164
            if(iPushSLEnabled)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1165
			ProcessingPushMsgEntryL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1166
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1167
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1168
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1169
		case EFetching:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1170
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1171
            if(iPushSLEnabled)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1172
			FetchPushMsgEntryL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1173
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1174
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1175
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1176
		case EFetchCompleted:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1177
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1178
            if(iPushSLEnabled)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1179
			FetchCompletedL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1180
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1181
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1182
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1183
		case ESavePushMsgEntry:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1184
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1185
            if(iPushSLEnabled)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1186
			SavePushMsgEntryL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1187
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1188
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1189
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1190
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1191
        case EDone:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1192
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1193
            PUSHLOG_WRITE("CSLContentHandler EDone")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1194
			Complete( KErrNone );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1195
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1196
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1197
		default:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1198
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1199
            // JIC.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1200
            PUSHLOG_WRITE("CSLContentHandler default EDone")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1201
			Complete( KErrNone );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1202
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1203
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1204
		}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1205
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1206
    PUSHLOG_LEAVEFN("CSLContentHandler::RunL")
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1207
    }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1208
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1209
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1210
// CSLContentHandler::RunError
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1211
// ---------------------------------------------------------
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1212
//
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1213
TInt CSLContentHandler::RunError( TInt aError )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1214
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1215
    PUSHLOG_WRITE_FORMAT("CSLContentHandler::RunError: %d",aError)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1216
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1217
	iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1218
	Complete( aError );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1219
	return KErrNone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1220
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1221