messagingfw/wappushfw/SISLPushMsgUtils/inc/CSIPushMsgEntry.h
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/wappushfw/SISLPushMsgUtils/inc/CSIPushMsgEntry.h	Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,118 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef __CSIPUSHMSGENTRY_H__
+#define __CSIPUSHMSGENTRY_H__
+
+#include <pushentry.h>
+
+
+/** 
+Handles storage of Service Indication (SI) WAP Push Messages in the message server.
+
+It provides additional accessor functions to allow access to all the fields holding 
+data for the SI push messages. The additional information for a SI message is:
+
+1. Action: 5 possible action levels are stored in bits 4-7 of TMsvEntry::iMtmData1
+
+2. SI ID (unique identifier for this SI Message).
+
+3. URL (location of the content to present to the user).
+
+4. Creation (date and time of creation of the message). 
+
+5. Expires (date and time after which the message is invalid and should be discarded).
+
+6. Text (additional information sent with the message).
+
+@see	CPushMsgEntryBase
+
+@publishedPartner
+@released
+*/
+class CSIPushMsgEntry : public CPushMsgEntryBase
+	{
+public:
+	/** 
+	SI Push messages Action flags. 
+	
+	@publishedPartner
+	@released
+	*/
+	enum TSIPushMsgAction 
+		{			
+		// Note that these values get bit-shifted so that they set Bits 4-7 of iMtmData1
+		/** Delete action. */
+		ESIPushMsgDelete = 0,	// effectively  Bit 4 = 0
+		/** Signal none action. */
+		ESIPushMsgSignalNone,	//              Bit 4 = 1, i.e. 16   
+		/** Signal low action. */
+		ESIPushMsgSignalLow,	//              Bit 4 = 0, 5 =1. i.e. 32
+		/** Signal medium action. */
+		ESIPushMsgSignalMedium,
+		/** Signal high action. */
+		ESIPushMsgSignalHigh
+		};
+
+	IMPORT_C static CSIPushMsgEntry* NewL();
+	IMPORT_C static CSIPushMsgEntry* NewL(const TPtrC8& aAppURI);
+	IMPORT_C static CSIPushMsgEntry* NewL(TInt& aAppID);
+	IMPORT_C ~CSIPushMsgEntry();
+	inline const TDesC& Id() const;
+	IMPORT_C void SetIdL(const TDesC& aID);
+	IMPORT_C TInt Action() const;
+	IMPORT_C void SetAction(TInt aActionFlags);
+
+	inline const TTime& Created() const;
+	inline void	SetCreated(const TTime& aCreated);
+	inline const TTime& Expires() const;
+	inline void	SetExpires(const TTime& aExpires);
+	inline const TDesC&  Url() const;
+	inline const TDesC& ContentType() const;
+
+	IMPORT_C void SetUrlL(const TDesC& aUrl);
+	IMPORT_C const TDesC& Text() const;
+	IMPORT_C void SetTextL(const TDesC& aText);
+	IMPORT_C TInt32 PushMsgType() const;
+	
+	IMPORT_C void SetTrusted(TBool aTrusted);
+	IMPORT_C TBool Trusted() const;
+	IMPORT_C void SetMsgOriginUriL(const TDesC8& aOriginUri);
+	IMPORT_C const TDesC8& MsgOriginUri() const;
+
+private:  //functions
+	CSIPushMsgEntry();
+	void ExternalizeL(RMsvWriteStream& aStream);
+	void InternalizeL(RMsvReadStream& aStream);
+	void SetPushMsgType();
+
+private: //data
+	TTime	iExpiryDate;
+	TTime	iCreatedDate;
+	HBufC*	iText;
+	HBufC*	iUrl;
+	HBufC*  iMsgID;
+	HBufC8*	iOriginUri;
+	};
+
+#include <push/csipushmsgentry.inl>
+
+#endif // __CSIPUSHMSGENTRY_H__