00001 /* 00002 * ============================================================================= 00003 * Name : siprackheader.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 CSIPRACKHEADER_H 00023 #define CSIPRACKHEADER_H 00024 00025 // INCLUDES 00026 #include "sipheaderbase.h" 00027 #include "_sipcodecdefs.h" 00028 00029 // CLASS DECLARATION 00039 class CSIPRAckHeader : public CSIPHeaderBase 00040 { 00041 public: // Constructors and destructor 00042 00049 IMPORT_C static CSIPRAckHeader* DecodeL(const TDesC8& aValue); 00050 00058 IMPORT_C static CSIPRAckHeader* NewL(TUint aSeq, 00059 TUint aCSeqNum, 00060 RStringF aMethod); 00061 00062 00070 IMPORT_C static CSIPRAckHeader* NewLC(TUint aSeq, 00071 TUint aCSeqNum, 00072 RStringF aMethod); 00073 00077 IMPORT_C ~CSIPRAckHeader(); 00078 00079 00080 public: // New functions 00081 00086 IMPORT_C TUint Seq() const; 00087 00092 IMPORT_C void SetSeq(TUint aSeq); 00093 00098 IMPORT_C TUint CSeqNum() const; 00099 00104 IMPORT_C void SetCSeqNum(TUint aCSeqNum); 00105 00110 IMPORT_C RStringF Method() const; 00111 00116 IMPORT_C void SetMethodL(RStringF aMethod); 00117 00124 IMPORT_C static CSIPHeaderBase* 00125 InternalizeValueL(RReadStream& aReadStream); 00126 00127 00128 public: // From CSIPHeaderBase 00129 00133 IMPORT_C CSIPHeaderBase* CloneL() const; 00134 00138 IMPORT_C RStringF Name() const; 00139 00143 IMPORT_C HBufC8* ToTextValueL() const; 00144 00145 00146 public: // From CSIPHeaderBase, for internal use 00147 00148 TPreferredPlace PreferredPlaceInMessage() const; 00149 00150 public: // New functions, for internal use 00151 00152 static RPointerArray<CSIPHeaderBase> BaseDecodeL(const TDesC8& aValue); 00153 00154 private: // From CSIPHeaderBase 00155 00156 void ExternalizeValueL (RWriteStream& aWriteStream) const; 00157 00158 private: // Constructors 00159 00160 CSIPRAckHeader(); 00161 CSIPRAckHeader(TUint aSeq, TUint aCSeqNum); 00162 void ConstructL(RStringF aMethod); 00163 void ConstructL(const CSIPRAckHeader& aRAckHeader); 00164 00165 private: // New functions 00166 00167 void DoInternalizeValueL(RReadStream& aReadStream); 00168 void ParseL(const TDesC8& aValue); 00169 void SetMethodL(const TDesC8& aMethod); 00170 00171 private: // Data 00172 00173 TUint iSeq; 00174 TUint iCSeqNum; 00175 RStringF iMethod; 00176 00177 private: // For testing purposes 00178 00179 UNIT_TEST(CSIPRAckHeaderTest) 00180 }; 00181 00182 // CSIPRACKHEADER_H 00183 #endif 00184 00185 // End of File