diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/pushentry.h --- 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 -#include -#include - - -/** 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 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 - -#endif