00001 /* 00002 * ============================================================================= 00003 * Name : sipsecurityheaderbase.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 CSIPSECURITYHEADERBASE_H 00023 #define CSIPSECURITYHEADERBASE_H 00024 00025 // INCLUDES 00026 #include "SipParameterHeaderBase.h" 00027 #include "_sipcodecdefs.h" 00028 00029 // FORWARD DECLARATIONS 00030 class CSIPSecurityHeaderBaseParams; 00031 00032 // CLASS DECLARATION 00041 class CSIPSecurityHeaderBase : public CSIPParameterHeaderBase 00042 { 00043 public: // Constructors and destructor 00044 00048 IMPORT_C virtual ~CSIPSecurityHeaderBase(); 00049 00050 public: // New functions 00051 00056 IMPORT_C TReal PreferenceParam() const; 00057 00062 IMPORT_C void SetPreferenceParamL(TReal aPreferenceValue); 00063 00068 IMPORT_C const TDesC8& MechanismName() const; 00069 00074 IMPORT_C void SetMechanismNameL(const TDesC8& aMechanismName); 00075 00076 public: // From CSIPHeaderBase, for internal use 00077 00078 TBool MoreThanOneAllowed() const; 00079 TPreferredPlace PreferredPlaceInMessage() const; 00080 00081 protected: // Constructors 00082 00083 CSIPSecurityHeaderBase(); 00084 void ConstructL(); 00085 void ConstructL(const TDesC8& aMechanismName); 00086 void ConstructL(const CSIPSecurityHeaderBase& aSecurityHeaderBase); 00087 00088 protected: // New functions 00089 00090 void DoInternalizeValueL(RReadStream& aReadStream); 00091 00092 private: // From CSIPHeaderBase 00093 00094 void ExternalizeValueL(RWriteStream& aWriteStream) const; 00095 00096 private: // From CSIPParameterHeaderBase 00097 00098 HBufC8* ToTextMandatoryPartLC() const; 00099 void ParseMandatoryPartL(const TDesC8& aMandatoryPart); 00100 const CSIPParamContainerBase& Params() const; 00101 CSIPParamContainerBase& Params(); 00102 00103 private: // Data 00104 00105 HBufC8* iMechanismName; 00106 CSIPSecurityHeaderBaseParams* iParams; 00107 00108 private: // For testing purposes 00109 00110 UNIT_TEST(CSIPSecurityHeaderBaseTest) 00111 }; 00112 00113 // CSIPSECURITYHEADERBASE_H 00114 #endif 00115 00116 // End of File