| author | William Roberts <williamr@symbian.org> | 
| Wed, 31 Mar 2010 12:27:01 +0100 | |
| branch | Symbian2 | 
| changeset 3 | e1b950c65cb4 | 
| parent 2 | epoc32/include/sipcseqheader.h@2fe1408b6811 | 
| child 4 | 837f303aceeb | 
| permissions | -rw-r--r-- | 
| williamr@2 | 1  | 
/*  | 
| williamr@2 | 2  | 
* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).  | 
| williamr@2 | 3  | 
* All rights reserved.  | 
| williamr@2 | 4  | 
* This component and the accompanying materials are made available  | 
| williamr@2 | 5  | 
* 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  | 
| williamr@2 | 6  | 
* which accompanies this distribution, and is available  | 
| williamr@2 | 7  | 
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".  | 
| williamr@2 | 8  | 
*  | 
| williamr@2 | 9  | 
* Initial Contributors:  | 
| williamr@2 | 10  | 
* Nokia Corporation - initial contribution.  | 
| williamr@2 | 11  | 
*  | 
| williamr@2 | 12  | 
* Contributors:  | 
| williamr@2 | 13  | 
*  | 
| williamr@2 | 14  | 
* Description:  | 
| williamr@2 | 15  | 
* Name : sipcseqheader.h  | 
| williamr@2 | 16  | 
* Part of : SIP Codec  | 
| williamr@2 | 17  | 
* Interface : SDK API, SIP Codec API  | 
| williamr@2 | 18  | 
* Version : SIP/4.0  | 
| williamr@2 | 19  | 
*  | 
| williamr@2 | 20  | 
*/  | 
| williamr@2 | 21  | 
|
| williamr@2 | 22  | 
|
| williamr@2 | 23  | 
|
| williamr@2 | 24  | 
|
| williamr@2 | 25  | 
#ifndef CSIPCSEQHEADER_H  | 
| williamr@2 | 26  | 
#define CSIPCSEQHEADER_H  | 
| williamr@2 | 27  | 
|
| williamr@2 | 28  | 
// INCLUDES  | 
| williamr@2 | 29  | 
#include "sipheaderbase.h"  | 
| williamr@2 | 30  | 
#include "_sipcodecdefs.h"  | 
| williamr@2 | 31  | 
|
| williamr@2 | 32  | 
// CLASS DECLARATION  | 
| williamr@2 | 33  | 
/**  | 
| williamr@2 | 34  | 
* @publishedAll  | 
| williamr@2 | 35  | 
* @released  | 
| williamr@2 | 36  | 
*  | 
| williamr@2 | 37  | 
* Class provides functions for setting and getting sequence number and  | 
| williamr@2 | 38  | 
* method in SIP "CSeq" header.  | 
| williamr@2 | 39  | 
*  | 
| williamr@2 | 40  | 
* @lib sipcodec.lib  | 
| williamr@2 | 41  | 
*/  | 
| williamr@2 | 42  | 
class CSIPCSeqHeader : public CSIPHeaderBase  | 
| williamr@2 | 43  | 
	{
 | 
| williamr@2 | 44  | 
public: // Constructors and destructor  | 
| williamr@2 | 45  | 
|
| williamr@2 | 46  | 
/**  | 
| williamr@2 | 47  | 
* Constructs a CSIPCSeqHeader from textual representation  | 
| williamr@2 | 48  | 
* of the header's value part.  | 
| williamr@2 | 49  | 
* @param aValue a value part of a "CSeq"-header (e.g. "1 REGISTER")  | 
| williamr@2 | 50  | 
* @return a new instance of CSIPCSeqHeader.  | 
| williamr@2 | 51  | 
*/  | 
| williamr@2 | 52  | 
IMPORT_C static CSIPCSeqHeader* DecodeL(const TDesC8& aValue);  | 
| williamr@2 | 53  | 
|
| williamr@2 | 54  | 
/**  | 
| williamr@2 | 55  | 
* Creates a new instance of CSIPCSeqHeader  | 
| williamr@2 | 56  | 
* @param aSeq a sequence number to set.  | 
| williamr@2 | 57  | 
* @param aMethod a method to set. For example "REGISTER"  | 
| williamr@2 | 58  | 
* @return a new instance of CSIPCSeqHeader  | 
| williamr@2 | 59  | 
*/  | 
| williamr@2 | 60  | 
IMPORT_C static CSIPCSeqHeader* NewL(TUint aSeq, RStringF aMethod);  | 
| williamr@2 | 61  | 
|
| williamr@2 | 62  | 
/**  | 
| williamr@2 | 63  | 
* Creates a new instance of CSIPCSeqHeader and puts it to CleanupStack  | 
| williamr@2 | 64  | 
* @param aSeq a sequence number to set.  | 
| williamr@2 | 65  | 
* @param aMethod a method to set. For example "REGISTER"  | 
| williamr@2 | 66  | 
* @return a new instance of CSIPCSeqHeader  | 
| williamr@2 | 67  | 
*/  | 
| williamr@2 | 68  | 
IMPORT_C static CSIPCSeqHeader* NewLC(TUint aSeq, RStringF aMethod);  | 
| williamr@2 | 69  | 
|
| williamr@2 | 70  | 
/**  | 
| williamr@2 | 71  | 
* Destructor, deletes the resources of CSIPCSeqHeader.  | 
| williamr@2 | 72  | 
*/  | 
| williamr@2 | 73  | 
IMPORT_C ~CSIPCSeqHeader();  | 
| williamr@2 | 74  | 
|
| williamr@2 | 75  | 
|
| williamr@2 | 76  | 
public: // New functions  | 
| williamr@2 | 77  | 
|
| williamr@2 | 78  | 
/**  | 
| williamr@2 | 79  | 
* Gets the sequence number from the "CSeq" header  | 
| williamr@2 | 80  | 
* @return the current sequence number  | 
| williamr@2 | 81  | 
*/  | 
| williamr@2 | 82  | 
IMPORT_C TUint Seq() const;  | 
| williamr@2 | 83  | 
|
| williamr@2 | 84  | 
/**  | 
| williamr@2 | 85  | 
* Sets the sequence number in the "CSeq" header  | 
| williamr@2 | 86  | 
* @param aSeq a sequence number to set  | 
| williamr@2 | 87  | 
*/  | 
| williamr@2 | 88  | 
IMPORT_C void SetSeq(TUint aSeq);  | 
| williamr@2 | 89  | 
|
| williamr@2 | 90  | 
/**  | 
| williamr@2 | 91  | 
* Gets the method from the "CSeq" header  | 
| williamr@2 | 92  | 
* @return the method  | 
| williamr@2 | 93  | 
*/  | 
| williamr@2 | 94  | 
IMPORT_C RStringF Method() const;  | 
| williamr@2 | 95  | 
|
| williamr@2 | 96  | 
/**  | 
| williamr@2 | 97  | 
* Sets the method in the "CSeq" header  | 
| williamr@2 | 98  | 
* @param aMethod a method to set  | 
| williamr@2 | 99  | 
*/  | 
| williamr@2 | 100  | 
IMPORT_C void SetMethodL(RStringF aMethod);  | 
| williamr@2 | 101  | 
|
| williamr@2 | 102  | 
/**  | 
| williamr@2 | 103  | 
* Constructs an instance of a CSIPCSeqHeader from a RReadStream  | 
| williamr@2 | 104  | 
* @param aReadStream a stream containing the value of the  | 
| williamr@2 | 105  | 
* externalized object (header name not included).  | 
| williamr@2 | 106  | 
* @return an instance of a CSIPCSeqHeader  | 
| williamr@2 | 107  | 
*/  | 
| williamr@2 | 108  | 
IMPORT_C static CSIPHeaderBase*  | 
| williamr@2 | 109  | 
InternalizeValueL(RReadStream& aReadStream);  | 
| williamr@2 | 110  | 
|
| williamr@2 | 111  | 
|
| williamr@2 | 112  | 
public: // From CSIPHeaderBase  | 
| williamr@2 | 113  | 
|
| williamr@2 | 114  | 
/**  | 
| williamr@2 | 115  | 
* From CSIPHeaderBase CloneL  | 
| williamr@2 | 116  | 
*/  | 
| williamr@2 | 117  | 
IMPORT_C CSIPHeaderBase* CloneL() const;  | 
| williamr@2 | 118  | 
|
| williamr@2 | 119  | 
/**  | 
| williamr@2 | 120  | 
* From CSIPHeaderBase Name  | 
| williamr@2 | 121  | 
*/  | 
| williamr@2 | 122  | 
IMPORT_C RStringF Name() const;  | 
| williamr@2 | 123  | 
|
| williamr@2 | 124  | 
/**  | 
| williamr@2 | 125  | 
* From CSIPHeaderBase ToTextValueL  | 
| williamr@2 | 126  | 
*/  | 
| williamr@2 | 127  | 
IMPORT_C HBufC8* ToTextValueL() const;  | 
| williamr@2 | 128  | 
|
| williamr@2 | 129  | 
|
| williamr@2 | 130  | 
public: // From CSIPHeaderBase, for internal use  | 
| williamr@2 | 131  | 
|
| williamr@2 | 132  | 
/**  | 
| williamr@2 | 133  | 
* @internalComponent  | 
| williamr@2 | 134  | 
*/  | 
| williamr@2 | 135  | 
TPreferredPlace PreferredPlaceInMessage () const;  | 
| williamr@2 | 136  | 
|
| williamr@2 | 137  | 
public: // New functions, for internal use  | 
| williamr@2 | 138  | 
|
| williamr@2 | 139  | 
static RPointerArray<CSIPHeaderBase> BaseDecodeL(const TDesC8& aValue);  | 
| williamr@2 | 140  | 
|
| williamr@2 | 141  | 
private: // From CSIPHeaderBase  | 
| williamr@2 | 142  | 
|
| williamr@2 | 143  | 
void ExternalizeValueL (RWriteStream& aWriteStream) const;  | 
| williamr@2 | 144  | 
|
| williamr@2 | 145  | 
private: // Constructors  | 
| williamr@2 | 146  | 
|
| williamr@2 | 147  | 
CSIPCSeqHeader();  | 
| williamr@2 | 148  | 
void ConstructL(TUint aCSeq, RStringF aMethod);  | 
| williamr@2 | 149  | 
|
| williamr@2 | 150  | 
private: // New functions  | 
| williamr@2 | 151  | 
|
| williamr@2 | 152  | 
void DoInternalizeValueL(RReadStream& aReadStream);  | 
| williamr@2 | 153  | 
void ParseL(const TDesC8& aValue);  | 
| williamr@2 | 154  | 
void SetMethodL(const TDesC8& aMethod);  | 
| williamr@2 | 155  | 
|
| williamr@2 | 156  | 
private: // Data  | 
| williamr@2 | 157  | 
|
| williamr@2 | 158  | 
TUint iSeq;  | 
| williamr@2 | 159  | 
RStringF iMethod;  | 
| williamr@2 | 160  | 
|
| williamr@2 | 161  | 
private: // For testing purposes  | 
| williamr@2 | 162  | 
|
| williamr@2 | 163  | 
UNIT_TEST(CSIPCSeqHeaderTest)  | 
| williamr@2 | 164  | 
};  | 
| williamr@2 | 165  | 
|
| williamr@2 | 166  | 
#endif // CSIPCSEQHEADER_H  | 
| williamr@2 | 167  | 
|
| williamr@2 | 168  | 
// End of File  |