epoc32/include/pushentry.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
     1.1 --- a/epoc32/include/pushentry.h	Wed Mar 31 12:27:01 2010 +0100
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,283 +0,0 @@
     1.4 -// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 -// All rights reserved.
     1.6 -// This component and the accompanying materials are made available
     1.7 -// 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
     1.8 -// which accompanies this distribution, and is available
     1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.10 -//
    1.11 -// Initial Contributors:
    1.12 -// Nokia Corporation - initial contribution.
    1.13 -//
    1.14 -// Contributors:
    1.15 -//
    1.16 -// Description:
    1.17 -//
    1.18 -
    1.19 -
    1.20 -
    1.21 -/**
    1.22 - @file
    1.23 - @publishedPartner
    1.24 - @released
    1.25 -*/
    1.26 -
    1.27 -#ifndef __PUSHENTRY_H__
    1.28 -#define __PUSHENTRY_H__
    1.29 -
    1.30 -#include <e32std.h>
    1.31 -#include <msvapi.h>
    1.32 -#include <msvstd.h>
    1.33 -
    1.34 -
    1.35 -/** UID for the WAP Push MTM. */
    1.36 -const TUid KUidMtmWapPush = {0x10009158};
    1.37 -/** UID for WAP Push SI messages. */
    1.38 -const TUid KUidWapPushMsgSI = {0x10009159};
    1.39 -/** UID for WAP Push SL messages. */
    1.40 -const TUid KUidWapPushMsgSL = {0x1000915A};
    1.41 -/** UID for WAP Push multipart messages. */
    1.42 -const TUid KUidWapPushMsgMultiPart = {0x1000915B};
    1.43 -/** UID for WAP Push unknown-type messages. */
    1.44 -const TUid KUidWapPushMsgUnknown = {0x1000915C};
    1.45 -
    1.46 -
    1.47 -// Defines for Masking values used to extract status information from iMtmData1
    1.48 -/** TMsvEntry::iMtmData1 mask to get Status value. */
    1.49 -const TInt32 KPushMaskOnlyStatus			= 0x0000000F;
    1.50 -/** TMsvEntry::iMtmData1 mask to all bits except those for the Status value. */
    1.51 -const TInt32 KPushMaskEverythingButStatus	= 0xFFFFFFF0;
    1.52 -/** TMsvEntry::iMtmData1 mask to get Action value. */
    1.53 -const TInt32 KPushMaskOnlyAction			= 0x000000F0;
    1.54 -/** TMsvEntry::iMtmData1 mask to all bits except those for the Action value. */
    1.55 -const TInt32 KPushMaskEverythingButAction	= 0xFFFFFF0F;
    1.56 -
    1.57 -
    1.58 -// Defines for Leave Codes
    1.59 -/** Base value for WAP Push-specific errors. */
    1.60 -const TInt KWPushBaseError		 =	-1100;
    1.61 -/** CPushMsgEntryBase::UpdateL() called without a message server entry being loaded 
    1.62 -error. */
    1.63 -const TInt KWPushNoMsgIndexEntry =   (KWPushBaseError-1);
    1.64 -/** Longest String Allowed. */
    1.65 -const TInt KLongestStringAllowed=KMaxTInt32;
    1.66 -
    1.67 -
    1.68 -/**
    1.69 -WAP Push Server MTM state information.
    1.70 -
    1.71 -This enum is used by TPushMTMProgress and CWapPushServerMtm.
    1.72 -
    1.73 -@publishedPartner
    1.74 -@released
    1.75 -@see TPushMTMProgress 
    1.76 -*/
    1.77 -enum TPushServerMTMState
    1.78 -	{
    1.79 -	/** Server is waiting for a command. */
    1.80 -	EWapPushServerMtmWaiting,
    1.81 -	/** Server is executing a Change command. */
    1.82 -	EWapPushServerMtmChange,
    1.83 -	/** Server is executing a Create command. */
    1.84 -	EWapPushServerMtmCreate,
    1.85 -	/** Server is executing a Delete command. */
    1.86 -	EWapPushServerMtmDelete,
    1.87 -	/** Unused. */
    1.88 -	EWapPushServerMtmComplete
    1.89 -	};
    1.90 -
    1.91 -
    1.92 -/** 
    1.93 -Encapsulates progress information returned for asynchronous operations with 
    1.94 -the WAP Push Server MTM. 
    1.95 -
    1.96 -This allows error status and ID of current entry to be returned to caller.
    1.97 -
    1.98 -@publishedPartner
    1.99 -@released
   1.100 -@see CMsvOperation::ProgressL() 
   1.101 -*/
   1.102 -class TPushMTMProgress
   1.103 -	{
   1.104 -public:
   1.105 -	/** Error code. */
   1.106 -	TInt				iError; // client side needs to be informed of an error
   1.107 -	/** The number of entries on which the operation was or will be attempted. */
   1.108 -	TInt				iTotalMsgs;
   1.109 -	/** The number of entries which have been processed. */
   1.110 -	TInt				iMsgsProcessed;
   1.111 -	/** ID of the (first) message being processed. */
   1.112 -	TMsvId				iMsgId;
   1.113 -	/** Server state information. */
   1.114 -	TPushServerMTMState iPushState;// Operation that is currently in progress
   1.115 -	};
   1.116 -
   1.117 -/** 
   1.118 -Packages a TPushMTMProgress object into a descriptor. 
   1.119 -
   1.120 -@publishedPartner
   1.121 -@released
   1.122 -*/
   1.123 -typedef TPckgBuf<TPushMTMProgress> TPushMTMProgressBuf;
   1.124 -
   1.125 -
   1.126 -/** Panic name and codes */
   1.127 -_LIT(KPushPanicMoniker, "PUSHENTRY");
   1.128 -
   1.129 -/**
   1.130 -@internalComponent
   1.131 -@released
   1.132 -*/
   1.133 -enum TPushEntryPanic	
   1.134 -	{
   1.135 -	/** Null Ids for entries not valid (Service, &Msg). */
   1.136 -	EPushEntryNullMsgId,
   1.137 -	/** Only save messages under the Service Entry. */
   1.138 -	EPushEntryServiceIdMismatch,
   1.139 -	/** Not a WAP Push  MTM. */
   1.140 -	EPushEntryWrongMTMtype,
   1.141 -	/** iBioType value in TMsvEntry don't match Uid for Push Entry class. */
   1.142 -	EPushEntryWrongMsgtype
   1.143 -	};
   1.144 -
   1.145 -
   1.146 -/** 
   1.147 -Abstract base class for classes that handle storage of WAP Push Messages in 
   1.148 -the message server.
   1.149 -
   1.150 -The class acts as a wrapper for TMsvEntry, and provides accessors and storage 
   1.151 -functionality. Key pieces of data are mapped onto certain TMsvEntry fields: 
   1.152 -this speeds up access by applications to this data. This base class has the 
   1.153 -generic mappings and storage behaviour. More specialised mappings and storage 
   1.154 -are defined in each derived class.
   1.155 -
   1.156 -The mappings of data to TMsvEntry fields standard to all classes are:
   1.157 -
   1.158 -Push Message Type UID: TMsvEntry::iBioType
   1.159 -
   1.160 -Status: sets bits 0-3 of TMsvEntry::iMtmData1
   1.161 -
   1.162 -Some derived classes need to store more data than there are available fields 
   1.163 -in TMsvEntry, and the Unknown type potentially requires large data capacity. 
   1.164 -This additional data is saved in the message store associated with the message 
   1.165 -entry. Derived classes provide this functionality by overriding ExternalizeL() 
   1.166 -and InternalizeL() implementations. The base class itself uses the message store
   1.167 -to store the WAP Push message's raw header and From information.
   1.168 -
   1.169 -@publishedPartner
   1.170 -@released
   1.171 -*/
   1.172 -class CPushMsgEntryBase: public CBase
   1.173 -	{
   1.174 -public:
   1.175 -	/** 
   1.176 -	WAP Push Message status values. 
   1.177 -	
   1.178 -	@internalTechnology
   1.179 -	@released
   1.180 -	*/
   1.181 -	enum TPushMsgStatus	
   1.182 -		{
   1.183 -		/** Message is valid. */
   1.184 -		EPushMsgStatusValid = 0,
   1.185 -		/** Message is expired. */
   1.186 -		EPushMsgStatusExpired,
   1.187 -		/** Message is deleted. */
   1.188 -		EPushMsgStatusDeleted,
   1.189 -		/** Message is corrupt. */
   1.190 -		EPushMsgStatusCorrupt
   1.191 -		};
   1.192 -
   1.193 -	IMPORT_C CPushMsgEntryBase();
   1.194 -
   1.195 -	IMPORT_C virtual ~CPushMsgEntryBase();
   1.196 -
   1.197 -	// Creates its own CMsvStore from the CMsvSession & calls StoreL()
   1.198 -	IMPORT_C virtual TMsvId SaveL(CMsvSession& aSession, TMsvId aParent);
   1.199 -	IMPORT_C virtual void UpdateL(CMsvSession& aSession);
   1.200 -
   1.201 -	// Creates its own CMsvStore from the CMsvSession & calls RestoreL()
   1.202 -	IMPORT_C virtual void RetrieveL(CMsvSession& aSession, TMsvId aMsgId);
   1.203 -	
   1.204 -	IMPORT_C void SetEntry(const TMsvEntry& aEntry);
   1.205 -	IMPORT_C void SetStatus(TInt aStatusFlags);
   1.206 -	IMPORT_C const TDesC8&  Header() const;
   1.207 -	IMPORT_C void SetHeaderL(const TDesC8& aHeader);
   1.208 -	IMPORT_C const TDesC8& From() const; 
   1.209 -	IMPORT_C void SetFromL(const TDesC8& aFrom);
   1.210 -
   1.211 -	/**
   1.212 -	Gets the push message content type.
   1.213 -	
   1.214 -	@return
   1.215 -	Content type 
   1.216 -	*/
   1.217 -	virtual const TDesC& ContentType() const =0;
   1.218 -	
   1.219 -	/** 
   1.220 -	Gets the push message type.
   1.221 -	
   1.222 -	Each derived class represents a different push message type, and implements 
   1.223 -	this to return the appropriate value.
   1.224 -	
   1.225 -	@return 
   1.226 -	Push message type
   1.227 -	*/
   1.228 -	virtual TInt32 PushMsgType() const =0;
   1.229 -	inline const TMsvEntry& Entry() const;
   1.230 -	inline TInt Status() const;
   1.231 -
   1.232 -	IMPORT_C const TDesC& MsgDescription() const;
   1.233 -	IMPORT_C void SetMsgDescriptionL(const TDesC& aDescription);
   1.234 -	IMPORT_C const TDesC& MsgDetails() const;
   1.235 -	IMPORT_C void SetMsgDetailsL(const TDesC& aDetails);
   1.236 -	IMPORT_C const TTime& ReceivedDate() const;
   1.237 -	IMPORT_C TInt AppID(TPtrC8& aAppURI, TInt& aAppID, TBool& aIsAnInt) const;
   1.238 -
   1.239 -protected:
   1.240 -	IMPORT_C virtual void ConstructL(const TPtrC8& aAppURI);
   1.241 -	IMPORT_C virtual void ConstructL(const TInt& aAppID);
   1.242 -	IMPORT_C virtual void ConstructL();
   1.243 -
   1.244 -	// No  matching StoreL due to different needs for saving & updating msg's
   1.245 -	IMPORT_C void RestoreL(CMsvStore& aStore );
   1.246 -	IMPORT_C virtual void ExternalizeL(RMsvWriteStream& aStream);
   1.247 -	IMPORT_C virtual void InternalizeL(RMsvReadStream& aStream);
   1.248 -	
   1.249 -	/** 	
   1.250 -	Sets the push message type.
   1.251 -	
   1.252 -	Each derived class represents a different push message type, and implements 
   1.253 -	this to set the appropriate value. 
   1.254 -	*/
   1.255 -	virtual void SetPushMsgType()=0;// Only the object can set it's push type - class dependent 
   1.256 -	void DoSaveL(CMsvEntry& aMsvEntry);
   1.257 -
   1.258 -protected:
   1.259 -
   1.260 -	/** Message server entry. */
   1.261 -	TMsvEntry iEntry;
   1.262 -
   1.263 -	/** Copy of the message server entry Details field. */
   1.264 -	HBufC* iMsgDetails;    
   1.265 -	/** Copy of the message server entry Description field. */
   1.266 -	HBufC* iMsgDescription;
   1.267 -							    
   1.268 -	/** WAP Push message raw header buffer. */
   1.269 -	HBufC8* iHeader;
   1.270 -	/** From field buffer. */
   1.271 -	HBufC8* iFrom;
   1.272 -	/** Set to true if the object has an associated entry in the message server index. */
   1.273 -	TBool iHasServerEntry;
   1.274 -
   1.275 -	/** Message AppID as a string. Only one of iAppIDString and iAppIdInt will be set.*/
   1.276 -	HBufC8* iAppIDString;
   1.277 -	/** Message AppID as a number. Only one of iAppIDString and iAppIdInt will be set.*/
   1.278 -	TInt iAppIdInt;
   1.279 -	};
   1.280 -
   1.281 -
   1.282 -
   1.283 -
   1.284 -#include <pushentry.inl>
   1.285 -
   1.286 -#endif