remotemgmt_plat/oma_provisioning_engine_api/inc/CWPPushMessage.h
author hgs
Tue, 13 Jul 2010 09:06:02 +0530
changeset 47 dd41e7de3375
permissions -rw-r--r--
201021_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     1
/*
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     3
* All rights reserved.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     8
*
dd41e7de3375 201021_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    11
*
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    12
* Contributors:
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    13
*
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    14
* Description:  CWPPushMessage helps in saving/restoring a push message.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    15
*
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    16
*/
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    17
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    18
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    19
#ifndef CWPPUSHMESSAGE_H
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    20
#define CWPPUSHMESSAGE_H
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    21
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    22
// INCLUDES
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    23
#include <e32base.h>
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    24
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    25
// FORWARD DECLARATIONS
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    26
class CMsvStore;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    27
class CHTTPResponse;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    28
class RWriteStream;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    29
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    30
// CONSTANTS
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    31
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    32
// Authentication result: Authenticated
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    33
const TInt KWPAuthResultAuthenticated = 0;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    34
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    35
// Authentication result: PIN required, but not supplied
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    36
const TInt KWPAuthResultPinRequired = 1;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    37
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    38
// Authentication result: Authentication failed
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    39
const TInt KWPAuthResultAuthenticationFailed = 2;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    40
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    41
// Authentication result: No authentication contained in message
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    42
const TInt KWPAuthResultNoAuthentication = 3;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    43
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    44
// Security parameter NETWPIN
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    45
const TUint8 KSECNETWPIN = 0x00;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    46
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    47
// Security parameter USERPIN
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    48
const TUint8 KSECUSERPIN = 0x01;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    49
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    50
// Security parameter USERNETWPIN
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    51
const TUint8 KSECUSERNETWPIN = 0x02;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    52
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    53
// Security parameter USERPINMAC
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    54
const TUint8 KSECUSERPINMAC = 0x03;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    55
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    56
// No security parameter
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    57
const TUint8 KSECNONE = 0xff;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    58
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    59
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    60
// CLASS DECLARATION
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    61
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    62
/**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    63
*  CWPPushMessage helps in saving/restoring a push message.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    64
*
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    65
*  @lib ProvisioningEngine
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    66
*  @since 2.0
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    67
*/ 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    68
class CWPPushMessage : public CBase
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    69
    {
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    70
    public:  // Constructors and destructor
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    71
        
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    72
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    73
        * Two-phased constructor.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    74
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    75
        IMPORT_C static CWPPushMessage* NewL();
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    76
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    77
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    78
        * Two-phased constructor.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    79
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    80
        IMPORT_C static CWPPushMessage* NewLC();
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    81
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    82
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    83
        * Destructor.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    84
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    85
        ~CWPPushMessage();
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    86
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    87
    public: // New methods
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    88
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    89
        /** 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    90
        * Stores the message to a message store.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    91
        * @param aStore The store.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    92
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    93
        IMPORT_C void StoreL( CMsvStore& aStore ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    94
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    95
        /** 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    96
        * Restores the message from a message store.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    97
        * @param aStore The store.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    98
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
    99
        IMPORT_C void RestoreL( CMsvStore& aStore );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   100
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   101
        /** 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   102
        * Externalizes the message to a stream.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   103
        * @param aStream The stream 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   104
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   105
        IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   106
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   107
        /** 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   108
        * Internalizes the message from a stream.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   109
        * @param aStream The stream.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   110
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   111
        IMPORT_C void InternalizeL( RReadStream& aStream );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   112
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   113
        /** 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   114
        * Sets the message header and body.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   115
        * @param aHeader The message header
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   116
        * @param aBody The message body
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   117
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   118
        IMPORT_C void SetL( const TDesC8& aHeader, const TDesC8& aBody );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   119
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   120
        /** 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   121
        * Sets the message header and body. Ownership is transferred.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   122
        * @param aHeader The message header
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   123
        * @param aBody The message body
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   124
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   125
        IMPORT_C void Set( HBufC8* aHeader, HBufC8* aBody );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   126
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   127
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   128
        * Sets the originator of the message. 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   129
        * @param aOrig Originator of the message
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   130
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   131
        IMPORT_C void SetOriginatorL( const TDesC8& aOrig );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   132
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   133
        /** 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   134
        * Returns the message header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   135
        * @return The message header
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   136
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   137
        IMPORT_C const TDesC8& Header() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   138
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   139
        /** 
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   140
        * Returns the message body.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   141
        * @return The message body
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   142
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   143
        IMPORT_C const TDesC8& Body() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   144
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   145
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   146
        * Returns the originator of the message.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   147
        * @return The originator
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   148
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   149
        IMPORT_C const TDesC8& Originator() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   150
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   151
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   152
        * Sets the authenticated flag.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   153
        * @param aAuthenticated ETrue to set the message authenticated.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   154
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   155
        IMPORT_C void SetAuthenticated( TBool aAuthenticated );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   156
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   157
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   158
        * Returns ETrue if the message is authenticated.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   159
        * @return Whether the message is authenticated.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   160
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   161
        IMPORT_C TBool Authenticated() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   162
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   163
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   164
        * Sets the saved flag.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   165
        * @param aSaved ETrue to set the message saved.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   166
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   167
        IMPORT_C void SetSaved( TBool aSaved );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   168
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   169
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   170
        * Returns ETrue if the message is saved.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   171
        * @return Whether the message is saved.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   172
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   173
        IMPORT_C TBool Saved() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   174
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   175
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   176
        * Returns the initiator URI of the message.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   177
        * @return Initiator URI
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   178
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   179
        IMPORT_C const TDesC8& InitiatorURI() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   180
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   181
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   182
        * Returns the MAC of the message.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   183
        * @return MAC
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   184
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   185
        IMPORT_C const TDesC8& MAC() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   186
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   187
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   188
        * Returns the SEC of the message.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   189
        * @return SEC
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   190
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   191
        IMPORT_C TUint SEC() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   192
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   193
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   194
        * Returns the push flag of the message.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   195
        * @return Push flag
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   196
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   197
        IMPORT_C TInt PushFlag() const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   198
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   199
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   200
        * Parse the header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   201
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   202
        IMPORT_C void ParseHeaderL();
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   203
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   204
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   205
        * Try to authenticate the message with HMAC.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   206
        * @param aIMSI The SIM card number
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   207
        * @param aPIN The PIN entered by user
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   208
        * @return The result of authentication
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   209
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   210
        IMPORT_C TInt AuthenticateL( const TDesC& aIMSI, const TDesC& aPIN );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   211
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   212
    private:
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   213
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   214
        * C++ default constructor.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   215
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   216
        CWPPushMessage();
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   217
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   218
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   219
        * By default Symbian 2nd phase constructor is private.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   220
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   221
        void ConstructL();
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   222
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   223
    private:
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   224
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   225
        * Parse the content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   226
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   227
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   228
        void ParseContentType( TLex8& aPointer );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   229
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   230
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   231
        * Parse the content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   232
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   233
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   234
        void ParseInitiatorURI( TLex8& aPointer );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   235
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   236
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   237
        * Parse the content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   238
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   239
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   240
        void ParsePushFlag( TLex8& aPointer );
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   241
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   242
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   243
        * Retrieve a Short-integer.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   244
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   245
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   246
        * @return The short integer
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   247
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   248
        TUint GetShortInteger( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   249
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   250
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   251
        * Retrieve a Long-integer.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   252
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   253
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   254
        * @return The long integer.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   255
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   256
        TInt64 GetLongInteger( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   257
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   258
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   259
        * Retrieve a Text-string.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   260
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   261
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   262
        * @return The string
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   263
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   264
        TPtrC8 GetTextString( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   265
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   266
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   267
        * Retrieve a Text-value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   268
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   269
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   270
        * @return The string
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   271
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   272
        TPtrC8 GetTextValue( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   273
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   274
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   275
        * Retrieve a Token-text.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   276
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   277
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   278
        * @return The text string
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   279
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   280
        TPtrC8 GetTokenText( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   281
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   282
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   283
        * Retrieve a Q-value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   284
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   285
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   286
        * @return The integer
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   287
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   288
        TUint GetQValue( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   289
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   290
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   291
        * Retrieve a Well-known-charset value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   292
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   293
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   294
        * @return The character set number
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   295
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   296
        TInt64 GetWellKnownCharset( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   297
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   298
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   299
        * Retrieve a Version-value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   300
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   301
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   302
        * @return The version
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   303
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   304
        TUint GetVersionValue( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   305
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   306
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   307
        * Retrieve a Constrained-encoding value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   308
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   309
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   310
        * @return The constrained encoding value
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   311
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   312
        TUint GetConstrainedEncoding( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   313
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   314
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   315
        * Retrieve an Integer-Value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   316
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   317
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   318
        * @return The integer value
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   319
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   320
        TInt64 GetIntegerValue( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   321
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   322
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   323
        * Check if lexer points to an Integer-value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   324
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   325
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   326
        * @return ETrue if lexer points to an integer
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   327
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   328
        TBool IsIntegerValue( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   329
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   330
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   331
        * Retrieve a Field-name.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   332
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   333
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   334
        * @return Field name
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   335
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   336
        TUint GetFieldName( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   337
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   338
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   339
        * Retrieve a Delta-seconds-value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   340
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   341
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   342
        * @return The seconds found
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   343
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   344
        TInt64 GetDeltaSecondsValue( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   345
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   346
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   347
        * Retrieve a No-value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   348
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   349
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   350
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   351
        void GetNoValue( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   352
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   353
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   354
        * Retrieve a Date-value.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   355
        * @see Wireless Session Protocol Specification WAP-230-WSP-20010705-a
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   356
        * @param aPointer Lexer pointing to content-type header.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   357
        * @return The time value
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   358
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   359
        TTime GetDateValue( TLex8& aPointer ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   360
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   361
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   362
        * Skip to content-type.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   363
        * @return The Content-Type header
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   364
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   365
        TPtrC8 ContentTypeHeader( CHTTPResponse& aResponse ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   366
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   367
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   368
        * Skip to x-wap-initiator-uri.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   369
        * @return The X-WAP-Initiator-URI header
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   370
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   371
        TPtrC8 InitiatorURIHeader( CHTTPResponse& aResponse ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   372
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   373
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   374
        * Skip to push-flag.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   375
        * @return The Push-Flag header
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   376
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   377
        TPtrC8 PushFlagHeader( CHTTPResponse& aResponse ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   378
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   379
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   380
        * Converts a HEX ASCII strings to binary.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   381
        * @param aHex The hex ascii version
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   382
        * @return The binary version
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   383
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   384
        HBufC8* PackLC( const TDesC8& aHex ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   385
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   386
        /**
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   387
        * Create a HMAC key from the IMSI.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   388
        * @param aIMSI The IMSI
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   389
        * @param aKey Space for HMAC key.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   390
        */
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   391
        void ConvertIMSIL( const TDesC& aIMSI, TPtr8& aKey ) const;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   392
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   393
    private: // Data
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   394
        /// The message body. Owns.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   395
        HBufC8* iBody;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   396
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   397
        /// The message header. Owns.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   398
        CHTTPResponse* iHeader;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   399
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   400
        /// The originator of the message. Owns.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   401
        HBufC8* iOriginator;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   402
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   403
        /// Whether the message is authenticated
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   404
        TBool iAuthenticated;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   405
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   406
        /// Whether the message is saved
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   407
        TBool iSaved;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   408
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   409
        /// The initiator URI
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   410
        TPtrC8 iInitiator;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   411
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   412
        /// The security parameter
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   413
        TUint iSEC;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   414
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   415
        /// The MAC value. Owns.
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   416
        TPtrC8 iMAC;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   417
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   418
        /// The Push Flag
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   419
        TInt iPushFlag;
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   420
    };
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   421
dd41e7de3375 201021_01
hgs
parents:
diff changeset
   422
#endif /* CWPPUSHMESSAGE_H */