00001 /* 00002 * ============================================================================= 00003 * Name : sipacceptlanguageheader.h 00004 * Part of : SIP Codec 00005 * Interface : SDK API, SIP Codec API 00006 * Description : 00007 * Version : SIP/4.0 00008 * 00009 * Copyright (c) 2004 Nokia Corporation. 00010 * This material, including documentation and any related 00011 * computer programs, is protected by copyright controlled by 00012 * Nokia Corporation. All rights are reserved. Copying, 00013 * including reproducing, storing, adapting or translating, any 00014 * or all of this material requires the prior written consent of 00015 * Nokia Corporation. This material also contains confidential 00016 * information which may not be disclosed to others without the 00017 * prior written consent of Nokia Corporation. 00018 * ============================================================================= 00019 */ 00020 00021 00022 #ifndef CSIPACCEPTLANGUAGEHEADER_H 00023 #define CSIPACCEPTLANGUAGEHEADER_H 00024 00025 // INCLUDES 00026 #include "SipParameterHeaderBase.h" 00027 #include "_sipcodecdefs.h" 00028 00029 // FORWARD DECLARATIONS 00030 class CSIPAcceptHeaderParams; 00031 00032 // CLASS DECLARATION 00042 class CSIPAcceptLanguageHeader : public CSIPParameterHeaderBase 00043 { 00044 public: // Constructors and destructor 00045 00053 IMPORT_C static RPointerArray<CSIPAcceptLanguageHeader> 00054 DecodeL(const TDesC8& aValue); 00055 00061 IMPORT_C static CSIPAcceptLanguageHeader* 00062 NewL(const TDesC8& aLanguageRange); 00063 00070 IMPORT_C static CSIPAcceptLanguageHeader* 00071 NewLC(const TDesC8& aLanguageRange); 00072 00076 IMPORT_C ~CSIPAcceptLanguageHeader(); 00077 00078 00079 public: // New functions 00080 00085 IMPORT_C const TDesC8& LanguageRange() const; 00086 00091 IMPORT_C void SetLanguageRangeL(const TDesC8& aLanguageRange); 00092 00097 IMPORT_C TReal QParameter() const; 00098 00103 IMPORT_C void SetQParameterL(TReal aQValue); 00104 00111 IMPORT_C static CSIPHeaderBase* 00112 InternalizeValueL(RReadStream& aReadStream); 00113 00114 00115 public: // From CSIPHeaderBase 00116 00120 IMPORT_C CSIPHeaderBase* CloneL() const; 00121 00125 IMPORT_C RStringF Name() const; 00126 00127 00128 public: // From CSIPHeaderBase, for internal use 00129 00130 TBool MoreThanOneAllowed() const; 00131 TPreferredPlace PreferredPlaceInMessage() const; 00132 00133 public: // New functions, for internal use 00134 00135 static RPointerArray<CSIPHeaderBase> BaseDecodeL(const TDesC8& aValue); 00136 00137 private: // From CSIPHeaderBase 00138 00139 void ExternalizeValueL(RWriteStream& aWriteStream) const; 00140 00141 private: // From CSIPParameterHeaderBase 00142 00143 HBufC8* ToTextMandatoryPartLC() const; 00144 void ParseMandatoryPartL(const TDesC8& aMandatoryPart); 00145 const CSIPParamContainerBase& Params() const; 00146 CSIPParamContainerBase& Params(); 00147 00148 private: // New functions 00149 00150 CSIPAcceptLanguageHeader(); 00151 void ConstructL(); 00152 void ConstructL(const TDesC8& aLanguageRange); 00153 void ConstructL(const CSIPAcceptLanguageHeader& aAcceptLanguageHeader); 00154 void DoInternalizeValueL(RReadStream& aReadStream); 00155 00156 private: // Data 00157 00158 HBufC8* iLanguageRange; 00159 CSIPAcceptHeaderParams* iParams; 00160 00161 private: // For testing purposes 00162 00163 UNIT_TEST(CSIPAcceptLanguageHeaderTest) 00164 }; 00165 00166 // CSIPACCEPTLANGUAGEHEADER_H 00167 #endif 00168 00169 // End of File