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 "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * Name : sipaddressheaderbase.h
17 * Interface : SDK API, SIP Codec API
25 #ifndef CSIPADDRESSHEADERBASE_H
26 #define CSIPADDRESSHEADERBASE_H
29 #include "sipparameterheaderbase.h"
31 // FORWARD DECLARATIONS
33 class CSIPHeaderGenericParams;
40 * A base class for SIP headers having syntax
41 * ( name-addr/ addr-spec ) *(generic-param)
45 class CSIPAddressHeaderBase : public CSIPParameterHeaderBase
47 public: // Constructors and destructor
50 * Destructor, deletes the resources of CSIPAddressHeaderBase.
52 IMPORT_C virtual ~CSIPAddressHeaderBase();
55 public: // New functions
58 * Sets the name-address
59 * @pre aSIPAddress != 0
60 * @param aSIPAddress a name-address to set, the ownership is transferred
62 IMPORT_C void SetSIPAddressL(CSIPAddress* aSIPAddress);
65 * Gets the name-address as const
66 * @return name-address object
68 IMPORT_C const CSIPAddress& SIPAddress() const;
71 * Gets the name-address
72 * @return name-address object
74 IMPORT_C CSIPAddress& SIPAddress();
77 protected: // Constructors
79 CSIPAddressHeaderBase();
81 void ConstructL(CSIPAddress* aSIPAddress);
82 void ConstructL(const CSIPAddressHeaderBase& aHeader);
89 CSIPAddress* iSIPAddress;
94 CSIPHeaderGenericParams* iParams;
96 protected: // New functions
98 void DoInternalizeValueL(RReadStream& aReadStream);
100 protected: // From CSIPHeaderBase
105 void ExternalizeValueL(RWriteStream& aWriteStream) const;
107 private: // From CSIPParameterHeaderBase
109 HBufC8* ToTextMandatoryPartLC() const;
110 void ParseMandatoryPartL(const TDesC8& aMandatoryPart);
111 const CSIPParamContainerBase& Params() const;
112 CSIPParamContainerBase& Params();
115 #endif // end of CSIPADDRESSHEADERBASE_H