2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
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
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * Name : sipsupportedheader.h
17 * Interface : SDK API, SIP Codec API
25 #ifndef CSIPSUPPORTEDHEADER_H
26 #define CSIPSUPPORTEDHEADER_H
29 #include "siptokenheaderbase.h"
30 #include "_sipcodecdefs.h"
37 * Class provides functions for setting and getting SIP "Supported" header.
41 class CSIPSupportedHeader : public CSIPTokenHeaderBase
43 public: // Constructors and destructor
46 * Constructs a CSIPSupportedHeader from textual representation
47 * of the header's value part.
48 * @param aValue a value part of a "Supported"-header
49 * @return an array containing 1..n instances of CSIPSupportedHeader
51 IMPORT_C static RPointerArray<CSIPSupportedHeader>
52 DecodeL(const TDesC8& aValue);
55 * Creates a new instance of CSIPSupportedHeader
56 * @param aValue a tag value
57 * @return a new instance of CSIPSupportedHeader
59 IMPORT_C static CSIPSupportedHeader* NewL(RStringF aValue);
62 * Creates a new instance of CSIPSupportedHeader
63 * and puts it to CleanupStack
64 * @param aValue a tag value
65 * @return a new instance of CSIPSupportedHeader
67 IMPORT_C static CSIPSupportedHeader* NewLC(RStringF aValue);
70 * Destructor, deletes the resources of CSIPSupportedHeader.
72 IMPORT_C ~CSIPSupportedHeader();
75 public: // New functions
78 * Constructs an instance of a CSIPSupportedHeader from a RReadStream
79 * @param aReadStream a stream containing the value of the
80 * externalized object (header name not included).
81 * @return an instance of a CSIPSupportedHeader
83 IMPORT_C static CSIPHeaderBase*
84 InternalizeValueL(RReadStream& aReadStream);
87 public: // From CSIPHeaderBase
90 * From CSIPHeaderBase CloneL
92 IMPORT_C CSIPHeaderBase* CloneL() const;
95 * From CSIPHeaderBase Name
97 IMPORT_C RStringF Name() const;
100 public: // From CSIPHeaderBase, for internal use
105 TBool HasCompactName() const;
110 RStringF CompactName() const;
115 TPreferredPlace PreferredPlaceInMessage() const;
117 public: // New functions, for internal use
119 static RPointerArray<CSIPHeaderBase> BaseDecodeL(const TDesC8& aValue);
121 private: // New functions
123 CSIPSupportedHeader();
124 CSIPSupportedHeader(const CSIPSupportedHeader& aHeader);
126 private: // For testing purposes
128 UNIT_TEST(CSIPSupportedHeaderTest)
131 #endif // CSIPSUPPORTEDHEADER_H