pushmtm/plugins/PushContentHandler/CMultiPartMixedContentHandler.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 CMultiPartMixedContentHandler.
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
// INCLUDE FILES
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 "CMultiPartMixedContentHandler.h"
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <push/pushdispatcher.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <push/cmultiparttextiterator.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <push/cmultipartbiniterator.h>
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
// Constants
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
_LIT(KReserved, "Reserved");
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#if defined(_DEBUG)
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
_LIT(KErrPushMsgNull,	"NULL CPushMessage");
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#endif
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
 * Static Factory Construction
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
 *
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
 * @param aFs Reference to a file session
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
 * @param aLibrary Reference to DLL Library Object
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
 * @param aIndex Index number corresponding to the Unknown App Handler Class
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
 *        'EMultiPartMixedContentHandler'
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
 *
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
 * @return fully initialized instance of this class
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
 */
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
CMultiPartMixedContentHandler* CMultiPartMixedContentHandler::NewL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
	CMultiPartMixedContentHandler* self =
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
        new (ELeave) CMultiPartMixedContentHandler;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
	CleanupStack::PushL(self);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
	self->ConstructL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
	CleanupStack::Pop(self);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
	return self;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
 * Destructor
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
CMultiPartMixedContentHandler::~CMultiPartMixedContentHandler()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
    Cancel();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
	delete iMultiMessage;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
    iContentHandler = NULL; // Not owned.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
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
 * Constructor
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
 *
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
 * @param aFs Reference to a file session
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
 * @param aLibrary Reference to DLL Library Object
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
 * @param aIndex Index number corresponding to the Unknown App Handler Class
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
 *        'EMultiPartMixedContentHandler'
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
 */
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
CMultiPartMixedContentHandler::CMultiPartMixedContentHandler()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
:   CContentHandlerBase()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
	}
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
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
 *  This will complete initialization of the object
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
void CMultiPartMixedContentHandler::ConstructL()
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
	CActiveScheduler::Add(this);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
	}
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
#ifdef __TEST_MULTIPART_MIX_SUPP
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
 * Creates a Multipart Binary Iterator that will be used for splitting apart the binary
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
 * mulitpart.
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
 * @param aPushMsg A WAP binary multipart.mixed message that will be processed
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
void CMultiPartMixedContentHandler::LoadMultipartMsgL()
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
	__ASSERT_DEBUG( iMessage!= 0 , User::Panic(KErrPushMsgNull,0));
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
	TPtrC contentType;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
	iMessage->GetContentType(contentType);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
	if (!contentType.FindF(KMultipartText))
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
		iMultiMessage = CMultipartTextIterator::NewL(*iMessage);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
	else if (!contentType.FindF(KMultipartBin))
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
		iMultiMessage = CMultipartBinIterator::NewL(*iMessage);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
	else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
		User::Leave(KErrCorrupt);
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
	iMultiMessage->FirstL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
	iState = EHandlePart;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
	IdleComplete();
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
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
 *	Handles the Message Part returned from the Multipart iterator
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
 *  by creating a new handler based on the Content-Type, then dispatches it
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
 *  synchronously.
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
void CMultiPartMixedContentHandler::HandlePartL()
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
	CPushMessage* msgPart = iMultiMessage->PartL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
	CleanupStack::PushL(msgPart);
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
	TPtrC contentType;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
	msgPart->GetContentType(contentType);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
	CContentHandlerBase& contentHandler =
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
        PushContentTypeDispatcher::GetHandlerL( contentType, *iLog, *iManager );
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
	iContentHandler = &contentHandler;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
	CleanupStack::Pop(msgPart);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
	// treat as an acknowledged message always to ensure
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
	// sequential creation of handlers
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
	iContentHandler->HandleMessageL(msgPart, iStatus);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
	iState = ENextPart;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
	SetActive();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
	}
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
 *	Moves multipart iterator to the next part. If there is none,
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
 *  State: EDone will be set to complete this handler
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
void CMultiPartMixedContentHandler::NextPartL()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
	if (iMultiMessage->NextL())
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
		iState = EHandlePart;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
	else
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
		iState = EDone;
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
	IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
#endif // __TEST_MULTIPART_MIX_SUPP
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
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
 * The Asynchronous entry point for this plug-in to handle the CPushMessage.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
 *
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
 * Since we really didn't start an async event, make it look as though our
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
 * asynchronous request has been completed.
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
 * @param aPushMsg A WAP binary multipart.mixed message that will be processed
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
 * @param aStatus The TRequestStatus of the caller indicating that this will
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
 *        be used aysnchronously
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
void CMultiPartMixedContentHandler::HandleMessageL( CPushMessage* aPushMsg,
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
                                                    TRequestStatus& aStatus )
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
	__ASSERT_DEBUG( aPushMsg != NULL, User::Panic(KErrPushMsgNull, KErrNone));
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
#ifdef __TEST_MULTIPART_MIX_SUPP
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
	iAcknowledge = ETrue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
	iMessage = aPushMsg;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
	SetConfirmationStatus(aStatus);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
	iState = ELoadMsgData;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
	IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
#else // __TEST_MULTIPART_MIX_SUPP
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
	iAcknowledge = ETrue;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
	iMessage = aPushMsg;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
	SetConfirmationStatus(aStatus);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
    // Drop all multipart/mixed messages.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
    iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
	IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
#endif // __TEST_MULTIPART_MIX_SUPP
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
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
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
 * The Synchronous entry point for this plug-in to handle the CPushMessage.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
 *
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
 * @param aPushMsg A WAP binary multipart.mixed message that will be processed
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
 * @param aStatus The TRequestStatus of the caller indicating that this will be
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
 *        used aysnchronously
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
 */
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
void CMultiPartMixedContentHandler::HandleMessageL( CPushMessage* aPushMsg )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
	__ASSERT_DEBUG( aPushMsg != NULL, User::Panic(KErrPushMsgNull, KErrNone));
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
#ifdef __TEST_MULTIPART_MIX_SUPP
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
	iAcknowledge = EFalse;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
	iMessage = aPushMsg;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
	iState = ELoadMsgData;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
	IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
#else // __TEST_MULTIPART_MIX_SUPP
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
	iAcknowledge = EFalse;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
	iMessage = aPushMsg;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
    // Drop all multipart messages.
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
    iState = EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
	IdleComplete();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
#endif // __TEST_MULTIPART_MIX_SUPP
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
 * Cancels Asynronous requests on called handler.
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
void CMultiPartMixedContentHandler::CancelHandleMessage()
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
    Cancel();
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
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
void CMultiPartMixedContentHandler::CPushHandlerBase_Reserved1()
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
	User::Panic(KReserved, KErrNotSupported);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
	}
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
void CMultiPartMixedContentHandler::CPushHandlerBase_Reserved2()
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
	{
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
	User::Panic(KReserved, KErrNotSupported);
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
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
 * Cancels Asynronous requests on caller and completes self.
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
void CMultiPartMixedContentHandler::DoCancel()
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
	if ( iContentHandler )
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
        {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
		iContentHandler->CancelHandleMessage();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
        }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
	Complete( KErrCancel );
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
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
/**
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
 * State machine to step through the multipart message until it is done
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
 * State EHandlePart: Starts the processing of each part of the multipart
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
 * State ENextPart: Moves the interator to point to the next part of the multipart
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
 * when there are no more parts, EDone will be the next state
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
 * State EDone: Clean up and complete
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
void CMultiPartMixedContentHandler::RunL()
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
	switch(iState)
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
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
#ifdef __TEST_MULTIPART_MIX_SUPP
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
        case ELoadMsgData:
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
			LoadMultipartMsgL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
		case EHandlePart:
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
            {
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
			HandlePartL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
		case ENextPart:
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
			NextPartL();
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
#endif // __TEST_MULTIPART_MIX_SUPP
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
        case EDone:
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
			Complete(KErrNone);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
			break;
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
		default:
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
			break;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
            }
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
		}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
	}
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
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
 * Clean up
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
 */
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
TInt CMultiPartMixedContentHandler::RunError(TInt aError)
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
	iState=EDone;
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
	Complete(aError);
4455192101e4 Nokia wk34 delivery
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
	return KErrNone;
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