00001 /* 00002 * ============================================================================= 00003 * Name : sipparameterheaderbase.h 00004 * Part of : SIP Codec 00005 * Interface : SDK API, SIP Codec API 00006 * Description : 00007 * Version : SIP/4.0 00008 * 00009 * Copyright (c) 2006 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 CSIPPARAMETERHEADERBASE_H 00023 #define CSIPPARAMETERHEADERBASE_H 00024 00025 // INCLUDES 00026 #include "sipheaderbase.h" 00027 #include "_sipcodecdefs.h" 00028 00029 // FORWARD DECLARATIONS 00030 class CSIPParamContainerBase; 00031 00032 // CLASS DECLARATION 00044 class CSIPParameterHeaderBase : public CSIPHeaderBase 00045 { 00046 public: // Constructors and destructor 00047 00051 IMPORT_C virtual ~CSIPParameterHeaderBase(); 00052 00053 00054 public: // New functions 00055 00061 IMPORT_C TBool HasParam(RStringF aName) const; 00062 00070 IMPORT_C RStringF ParamValue(RStringF aName) const; 00071 00081 IMPORT_C void SetParamL(RStringF aName, RStringF aValue); 00082 00091 IMPORT_C void SetParamL(RStringF aName); 00092 00097 IMPORT_C void DeleteParam(RStringF aName); 00098 00103 IMPORT_C TInt ParamCount() const; 00104 00114 IMPORT_C TInt Param(TInt aIndex, RStringF& aName) const; 00115 00116 public: // From CSIPHeaderBase 00117 00121 IMPORT_C HBufC8* ToTextValueL() const; 00122 00123 00124 protected: // Contructors 00125 00126 CSIPParameterHeaderBase(const TChar& aSeparator); 00127 00128 protected: // New functions 00129 00130 void ParseL(const TDesC8& aValue, TBool aIgnoreParenthesis=ETrue); 00131 00132 protected: // Virtual functions 00133 00134 virtual TBool ParamInsertionAllowed() const; 00135 00136 protected: // Pure virtual functions 00137 00138 virtual HBufC8* ToTextMandatoryPartLC() const = 0; 00139 virtual void ParseMandatoryPartL(const TDesC8& aMandatoryPart) = 0; 00140 virtual const CSIPParamContainerBase& Params() const = 0; 00141 virtual CSIPParamContainerBase& Params() = 0; 00142 00143 private: // Contructors 00144 00145 CSIPParameterHeaderBase(); 00146 00147 private: // Data 00148 00149 TChar iSeparator; 00150 00151 private: // For testing purposes 00152 00153 UNIT_TEST(CSIPParameterHeaderBaseTest) 00154 }; 00155 00156 // CSIPPARAMETERHEADERBASE_H 00157 #endif 00158 00159 // End of File