00001 /* 00002 * ============================================================================= 00003 * Name : siptimestampheader.h 00004 * Part of : SIP Codec 00005 * Description : 00006 * Version : SIP/4.0 00007 * 00008 * Copyright (c) 2004 Nokia Corporation. 00009 * This material, including documentation and any related 00010 * computer programs, is protected by copyright controlled by 00011 * Nokia Corporation. All rights are reserved. Copying, 00012 * including reproducing, storing, adapting or translating, any 00013 * or all of this material requires the prior written consent of 00014 * Nokia Corporation. This material also contains confidential 00015 * information which may not be disclosed to others without the 00016 * prior written consent of Nokia Corporation. 00017 * ============================================================================= 00018 */ 00019 00020 00021 #ifndef CSIPTIMESTAMPHEADER_H 00022 #define CSIPTIMESTAMPHEADER_H 00023 00024 // INCLUDES 00025 #include "sipheaderbase.h" 00026 #include "_sipcodecdefs.h" 00027 00028 // CLASS DECLARATION 00037 class CSIPTimestampHeader : public CSIPHeaderBase 00038 { 00039 public: // Constructors and destructor 00040 00047 IMPORT_C static CSIPTimestampHeader* DecodeL(const TDesC8& aValue); 00048 00054 IMPORT_C CSIPTimestampHeader(TReal aTimestamp); 00055 00059 IMPORT_C ~CSIPTimestampHeader (); 00060 00061 00062 public: // New functions 00063 00068 IMPORT_C void SetTimestamp(TReal aTimestamp); 00069 00074 IMPORT_C TReal Timestamp() const; 00075 00080 IMPORT_C TBool HasDelay() const; 00081 00086 IMPORT_C void SetDelay(TReal aDelay); 00087 00093 IMPORT_C TReal Delay() const; 00094 00101 IMPORT_C static CSIPHeaderBase* 00102 InternalizeValueL(RReadStream& aReadStream); 00103 00104 public: // From CSIPHeaderBase 00105 00109 IMPORT_C CSIPHeaderBase* CloneL() const; 00110 00114 IMPORT_C RStringF Name() const; 00115 00119 IMPORT_C HBufC8* ToTextValueL() const; 00120 00121 00122 public: // From CSIPHeaderBase, for internal use 00123 00124 TPreferredPlace PreferredPlaceInMessage() const; 00125 00126 public: // New functions, for internal use 00127 00128 static RPointerArray<CSIPHeaderBase> BaseDecodeL(const TDesC8& aValue); 00129 00130 private: // From CSIPHeaderBase 00131 00132 void ExternalizeValueL (RWriteStream& aWriteStream) const; 00133 00134 private: // New functions 00135 00136 void ParseL(const TDesC8& aValue); 00137 void DoInternalizeValueL(RReadStream& aReadStream); 00138 00139 private: // Data 00140 00141 TReal iTimestamp; 00142 TBool iHasDelay; 00143 TReal iDelay; 00144 00145 private: // For testing purposes 00146 00147 UNIT_TEST(CSIPTimestampHeaderTest) 00148 }; 00149 00150 00151 // end of CSIPTIMESTAMPHEADER_H 00152 #endif 00153 00154 // End of File