Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
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 : siprouteheader.h
17 * Interface : SDK API, SIP Codec API
25 #ifndef CSIPROUTEHEADER_H
26 #define CSIPROUTEHEADER_H
29 #include "siprouteheaderbase.h"
30 #include "_sipcodecdefs.h"
37 * Class for SIP "Route"-header manipulation.
41 class CSIPRouteHeader : public CSIPRouteHeaderBase
43 public: // Constructors and destructor
46 * Constructs a CSIPRouteHeader from textual representation
47 * of the header's value part.
48 * @param aValue a value part of a "Route"-header
49 * @return an array containing one to many instances of CSIPRouteHeader
51 IMPORT_C static RPointerArray<CSIPRouteHeader>
52 DecodeL(const TDesC8& aValue);
55 * Creates a new instance of CSIPRouteHeader
56 * @pre aSIPAddress != 0
57 * @param aSIPAddress a name-address, the ownership is transferred
58 * @return a new instance of CSIPRouteHeader
60 IMPORT_C static CSIPRouteHeader* NewL(CSIPAddress* aSIPAddress);
63 * Creates a new instance of CSIPRouteHeader and puts it to CleanupStack
64 * @pre aSIPAddress != 0
65 * @pre aSIPAddress->Address().HostPort().HasHost() == ETrue
66 * @param aSIPAddress a name-address, the ownership is transferred
67 * @return a new instance of CSIPRouteHeader
69 IMPORT_C static CSIPRouteHeader* NewLC(CSIPAddress* aSIPAddress);
72 * Destructor, deletes the resources of CSIPRouteHeader.
74 IMPORT_C ~CSIPRouteHeader();
77 public: // New functions
80 * Constructs an instance of a CCSIPRouteHeader from a RReadStream
81 * @param aReadStream a stream containing the value of the
82 * externalized object (header name not included).
83 * @return an instance of a CSIPRouteHeader
85 IMPORT_C static CSIPHeaderBase*
86 InternalizeValueL(RReadStream& aReadStream);
89 public: // From CSIPHeaderBase
92 * From CSIPHeaderBase CloneL
94 IMPORT_C CSIPHeaderBase* CloneL() const;
97 * From CSIPHeaderBase Name
99 IMPORT_C RStringF Name() const;
102 public: // New functions, for internal use
104 static RPointerArray<CSIPHeaderBase> BaseDecodeL(const TDesC8& aValue);
105 static CSIPRouteHeader* NewL(const CSIPRouteHeaderBase& aHeader);
107 private: // From CSIPHeaderbase
109 void ExternalizeValueL(RWriteStream& aWriteStream) const;
111 private: // Constructors
115 private: // New functions
117 void DoInternalizeValueL(RReadStream& aReadStream);
120 #endif // CSIPROUTEHEADER_H