epoc32/include/pushentry.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
--- a/epoc32/include/pushentry.h	Wed Mar 31 12:27:01 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-// Copyright (c) 2000-2009 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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
-// which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-/**
- @file
- @publishedPartner
- @released
-*/
-
-#ifndef __PUSHENTRY_H__
-#define __PUSHENTRY_H__
-
-#include <e32std.h>
-#include <msvapi.h>
-#include <msvstd.h>
-
-
-/** UID for the WAP Push MTM. */
-const TUid KUidMtmWapPush = {0x10009158};
-/** UID for WAP Push SI messages. */
-const TUid KUidWapPushMsgSI = {0x10009159};
-/** UID for WAP Push SL messages. */
-const TUid KUidWapPushMsgSL = {0x1000915A};
-/** UID for WAP Push multipart messages. */
-const TUid KUidWapPushMsgMultiPart = {0x1000915B};
-/** UID for WAP Push unknown-type messages. */
-const TUid KUidWapPushMsgUnknown = {0x1000915C};
-
-
-// Defines for Masking values used to extract status information from iMtmData1
-/** TMsvEntry::iMtmData1 mask to get Status value. */
-const TInt32 KPushMaskOnlyStatus			= 0x0000000F;
-/** TMsvEntry::iMtmData1 mask to all bits except those for the Status value. */
-const TInt32 KPushMaskEverythingButStatus	= 0xFFFFFFF0;
-/** TMsvEntry::iMtmData1 mask to get Action value. */
-const TInt32 KPushMaskOnlyAction			= 0x000000F0;
-/** TMsvEntry::iMtmData1 mask to all bits except those for the Action value. */
-const TInt32 KPushMaskEverythingButAction	= 0xFFFFFF0F;
-
-
-// Defines for Leave Codes
-/** Base value for WAP Push-specific errors. */
-const TInt KWPushBaseError		 =	-1100;
-/** CPushMsgEntryBase::UpdateL() called without a message server entry being loaded 
-error. */
-const TInt KWPushNoMsgIndexEntry =   (KWPushBaseError-1);
-/** Longest String Allowed. */
-const TInt KLongestStringAllowed=KMaxTInt32;
-
-
-/**
-WAP Push Server MTM state information.
-
-This enum is used by TPushMTMProgress and CWapPushServerMtm.
-
-@publishedPartner
-@released
-@see TPushMTMProgress 
-*/
-enum TPushServerMTMState
-	{
-	/** Server is waiting for a command. */
-	EWapPushServerMtmWaiting,
-	/** Server is executing a Change command. */
-	EWapPushServerMtmChange,
-	/** Server is executing a Create command. */
-	EWapPushServerMtmCreate,
-	/** Server is executing a Delete command. */
-	EWapPushServerMtmDelete,
-	/** Unused. */
-	EWapPushServerMtmComplete
-	};
-
-
-/** 
-Encapsulates progress information returned for asynchronous operations with 
-the WAP Push Server MTM. 
-
-This allows error status and ID of current entry to be returned to caller.
-
-@publishedPartner
-@released
-@see CMsvOperation::ProgressL() 
-*/
-class TPushMTMProgress
-	{
-public:
-	/** Error code. */
-	TInt				iError; // client side needs to be informed of an error
-	/** The number of entries on which the operation was or will be attempted. */
-	TInt				iTotalMsgs;
-	/** The number of entries which have been processed. */
-	TInt				iMsgsProcessed;
-	/** ID of the (first) message being processed. */
-	TMsvId				iMsgId;
-	/** Server state information. */
-	TPushServerMTMState iPushState;// Operation that is currently in progress
-	};
-
-/** 
-Packages a TPushMTMProgress object into a descriptor. 
-
-@publishedPartner
-@released
-*/
-typedef TPckgBuf<TPushMTMProgress> TPushMTMProgressBuf;
-
-
-/** Panic name and codes */
-_LIT(KPushPanicMoniker, "PUSHENTRY");
-
-/**
-@internalComponent
-@released
-*/
-enum TPushEntryPanic	
-	{
-	/** Null Ids for entries not valid (Service, &Msg). */
-	EPushEntryNullMsgId,
-	/** Only save messages under the Service Entry. */
-	EPushEntryServiceIdMismatch,
-	/** Not a WAP Push  MTM. */
-	EPushEntryWrongMTMtype,
-	/** iBioType value in TMsvEntry don't match Uid for Push Entry class. */
-	EPushEntryWrongMsgtype
-	};
-
-
-/** 
-Abstract base class for classes that handle storage of WAP Push Messages in 
-the message server.
-
-The class acts as a wrapper for TMsvEntry, and provides accessors and storage 
-functionality. Key pieces of data are mapped onto certain TMsvEntry fields: 
-this speeds up access by applications to this data. This base class has the 
-generic mappings and storage behaviour. More specialised mappings and storage 
-are defined in each derived class.
-
-The mappings of data to TMsvEntry fields standard to all classes are:
-
-Push Message Type UID: TMsvEntry::iBioType
-
-Status: sets bits 0-3 of TMsvEntry::iMtmData1
-
-Some derived classes need to store more data than there are available fields 
-in TMsvEntry, and the Unknown type potentially requires large data capacity. 
-This additional data is saved in the message store associated with the message 
-entry. Derived classes provide this functionality by overriding ExternalizeL() 
-and InternalizeL() implementations. The base class itself uses the message store
-to store the WAP Push message's raw header and From information.
-
-@publishedPartner
-@released
-*/
-class CPushMsgEntryBase: public CBase
-	{
-public:
-	/** 
-	WAP Push Message status values. 
-	
-	@internalTechnology
-	@released
-	*/
-	enum TPushMsgStatus	
-		{
-		/** Message is valid. */
-		EPushMsgStatusValid = 0,
-		/** Message is expired. */
-		EPushMsgStatusExpired,
-		/** Message is deleted. */
-		EPushMsgStatusDeleted,
-		/** Message is corrupt. */
-		EPushMsgStatusCorrupt
-		};
-
-	IMPORT_C CPushMsgEntryBase();
-
-	IMPORT_C virtual ~CPushMsgEntryBase();
-
-	// Creates its own CMsvStore from the CMsvSession & calls StoreL()
-	IMPORT_C virtual TMsvId SaveL(CMsvSession& aSession, TMsvId aParent);
-	IMPORT_C virtual void UpdateL(CMsvSession& aSession);
-
-	// Creates its own CMsvStore from the CMsvSession & calls RestoreL()
-	IMPORT_C virtual void RetrieveL(CMsvSession& aSession, TMsvId aMsgId);
-	
-	IMPORT_C void SetEntry(const TMsvEntry& aEntry);
-	IMPORT_C void SetStatus(TInt aStatusFlags);
-	IMPORT_C const TDesC8&  Header() const;
-	IMPORT_C void SetHeaderL(const TDesC8& aHeader);
-	IMPORT_C const TDesC8& From() const; 
-	IMPORT_C void SetFromL(const TDesC8& aFrom);
-
-	/**
-	Gets the push message content type.
-	
-	@return
-	Content type 
-	*/
-	virtual const TDesC& ContentType() const =0;
-	
-	/** 
-	Gets the push message type.
-	
-	Each derived class represents a different push message type, and implements 
-	this to return the appropriate value.
-	
-	@return 
-	Push message type
-	*/
-	virtual TInt32 PushMsgType() const =0;
-	inline const TMsvEntry& Entry() const;
-	inline TInt Status() const;
-
-	IMPORT_C const TDesC& MsgDescription() const;
-	IMPORT_C void SetMsgDescriptionL(const TDesC& aDescription);
-	IMPORT_C const TDesC& MsgDetails() const;
-	IMPORT_C void SetMsgDetailsL(const TDesC& aDetails);
-	IMPORT_C const TTime& ReceivedDate() const;
-	IMPORT_C TInt AppID(TPtrC8& aAppURI, TInt& aAppID, TBool& aIsAnInt) const;
-
-protected:
-	IMPORT_C virtual void ConstructL(const TPtrC8& aAppURI);
-	IMPORT_C virtual void ConstructL(const TInt& aAppID);
-	IMPORT_C virtual void ConstructL();
-
-	// No  matching StoreL due to different needs for saving & updating msg's
-	IMPORT_C void RestoreL(CMsvStore& aStore );
-	IMPORT_C virtual void ExternalizeL(RMsvWriteStream& aStream);
-	IMPORT_C virtual void InternalizeL(RMsvReadStream& aStream);
-	
-	/** 	
-	Sets the push message type.
-	
-	Each derived class represents a different push message type, and implements 
-	this to set the appropriate value. 
-	*/
-	virtual void SetPushMsgType()=0;// Only the object can set it's push type - class dependent 
-	void DoSaveL(CMsvEntry& aMsvEntry);
-
-protected:
-
-	/** Message server entry. */
-	TMsvEntry iEntry;
-
-	/** Copy of the message server entry Details field. */
-	HBufC* iMsgDetails;    
-	/** Copy of the message server entry Description field. */
-	HBufC* iMsgDescription;
-							    
-	/** WAP Push message raw header buffer. */
-	HBufC8* iHeader;
-	/** From field buffer. */
-	HBufC8* iFrom;
-	/** Set to true if the object has an associated entry in the message server index. */
-	TBool iHasServerEntry;
-
-	/** Message AppID as a string. Only one of iAppIDString and iAppIdInt will be set.*/
-	HBufC8* iAppIDString;
-	/** Message AppID as a number. Only one of iAppIDString and iAppIdInt will be set.*/
-	TInt iAppIdInt;
-	};
-
-
-
-
-#include <pushentry.inl>
-
-#endif