epoc32/include/push/pushmessage.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // 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
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 
    17 
    18 /**
    19  @file
    20  @publishedPartner
    21  @released
    22 */
    23 
    24 #ifndef __PUSHMESSAGE_H__
    25 #define __PUSHMESSAGE_H__
    26 
    27 #include <e32base.h>
    28 #include <thttpfields.h>
    29 
    30 class RWriteStream;
    31 class CHTTPResponse;
    32 
    33 
    34 /** 
    35 Encapsulates a WAP Push Message.
    36 
    37 It provides functions to access the headers and body information. There are 
    38 specific functions to find Application ID, and the Content Type headers as 
    39 these fields are frequently required. 
    40 
    41 The class also has a function to give Read-Only access to the body of the message. 
    42 
    43 @publishedPartner
    44 @released
    45 */
    46 class CPushMessage : public CBase
    47 	{
    48 public:
    49 	IMPORT_C static CPushMessage* NewL(HBufC8* aHeader, HBufC8* aBody);
    50 	IMPORT_C static CPushMessage* NewL(HBufC8* aHeader, HBufC8* aBody, 
    51 								TUint8 aPushID, HBufC8* aRemoteAddress);	
    52 
    53 	IMPORT_C virtual ~CPushMessage();  
    54 	IMPORT_C TBool GetAppID(TPtrC8& aAppURI, TInt& aAppID, TBool& aIsAnInt);
    55 	IMPORT_C TBool GetAppIdL(TPtrC8& aAppURI, TInt& aAppID, TBool& aIsInt);	
    56 	IMPORT_C void  GetContentType(TPtrC& aContentType) const;
    57 	IMPORT_C TBool GetHeaderField(THttpHeaderField aField, TPtrC8& aFieldValue) const;
    58 	IMPORT_C TBool GetBinaryHeaderField(THttpHeaderField aField, TPtrC8& aFieldValue) const;
    59 	IMPORT_C TBool GetHeaderField(THttpHeaderField aField, TTime& aTime) const;
    60 	IMPORT_C TBool GetMessageBody(TPtrC8& aMessageBodyPtr) const;
    61 	IMPORT_C TBool GetHeader(TPtrC8& aMessageHeaderPtr) const;
    62 
    63 	IMPORT_C TBool GetServerAddress(TPtrC8& aServerAddress) const;
    64 	IMPORT_C TBool GetPushId(TUint8& aPushID) const;
    65 	
    66 	IMPORT_C void SetMessageAllowed(TBool aAllowed);
    67 	IMPORT_C TBool MessageAllowed() const;
    68 
    69 private:
    70 	CPushMessage(HBufC8* aHeader, TUint8 aPushID = 0);
    71 	void ConstructL(HBufC8* aHeader, HBufC8* aBody, HBufC8* aRemoteAddress);
    72 
    73 private:
    74 	CHTTPResponse* iHttpResponse;
    75 	TPtrC8 iPushHeader;
    76 	HBufC8* iPushBody;
    77 	// Buffer containing the a unicode version of the content-type from CHTTPResponse
    78 	mutable HBufC* iContentType;
    79 
    80 	TUint8 iPushID;
    81 
    82 	// Passed in constructor. Takes ownership.
    83 	HBufC8* iServerAddress;
    84 	
    85 	TBool iAllowed;
    86 	};
    87 
    88 #endif