--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pushmtm/Plugins/PushContentHandler/CMultiPartRelAndAltContentHandler.h Mon Mar 30 12:49:49 2009 +0300
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Declaration of CMultiPartRelAndAltContentHandler.
+*
+*/
+
+
+
+#ifndef __CMULTIPARTRELANDALTCONTENTHANDLER_H__
+#define __CMULTIPARTRELANDALTCONTENTHANDLER_H__
+
+// System includes
+//
+#include "PushMtmDef.hrh"
+#include "PushContentHandlerDef.hrh"
+#include <CContentHandlerBase.h>
+#include <E32Base.h>
+#include <msvstd.h>
+#include <msvapi.h>
+
+// Constants
+//
+const TUid KUidPushMultiPartRelAndAltContentHandler = {
+ EUidPushMultiPartRelAndAltContentHandler };
+
+// Forward class declarations
+//
+class CMsvSession;
+class CMultipartIteratorBase;
+
+/**
+* The MultiPart/Alternative & Multipart/Alternative Content Handler
+*
+* Saves the whole message in the Message Server, each part getting saved as a child
+* entry to the main part.
+*
+* All multipart/rel+alt messages are dropped if __TEST_MULTIPART_REL_SUPP
+* is not defined.
+*/
+class CMultiPartRelAndAltContentHandler : public CContentHandlerBase,
+ public MMsvSessionObserver
+ {
+ public: // Methods
+
+ static CMultiPartRelAndAltContentHandler* NewL();
+
+ virtual ~CMultiPartRelAndAltContentHandler();
+
+ private: // Constructors
+
+ CMultiPartRelAndAltContentHandler();
+
+ void ConstructL();
+
+ private: // New functions
+
+#ifdef __TEST_MULTIPART_REL_SUPP
+
+ void LoadMultiPartMsgL();
+
+ void HandlePartL();
+
+ void NextPartL();
+
+ void SaveMsgRootL();
+
+ void LoadMsgDataL();
+
+ void SetMsgCorruptFlagL();
+
+#endif // __TEST_MULTIPART_REL_SUPP
+
+ private: // Methods from CPushHandlerBase
+
+ void HandleMessageL(CPushMessage* aPushMsg, TRequestStatus& aStatus);
+
+ void HandleMessageL(CPushMessage* aPushMsg);
+
+ void CancelHandleMessage();
+
+ void CPushHandlerBase_Reserved1();
+
+ void CPushHandlerBase_Reserved2();
+
+ private: // Methods from CActive
+
+ void DoCancel();
+
+ void RunL();
+
+ TInt RunError(TInt aError);
+
+ private: // from MMsvSessionObserver
+
+ void HandleSessionEventL( TMsvSessionEvent aEvent,
+ TAny* aArg1, TAny* aArg2, TAny* aArg3);
+
+ private: // Attributes
+
+ enum TState
+ {
+ ELoadMsgData,
+ EHandlePart,
+ EDone,
+ ENextPart
+ };
+
+ CMsvSession* iMsvSession; ///< Has.
+
+ TMsvId iSavedMsgId;
+
+ CMultipartIteratorBase* iMultiMessage;
+ };
+
+#endif // __CMULTIPARTRELANDALTCONTENTHANDLER_H__
+