00001 /* 00002 * ============================================================================= 00003 * Name : SdpTimeField.h 00004 * Part of : SDP Codec 00005 * Interface : SDK API, SDP Codec API 00006 * Description : 00007 * Version : 1.0 00008 * 00009 * Copyright (c) 2003 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 #ifndef CSDPTIMESFIELD_H 00022 #define CSDPTIMESFIELD_H 00023 00024 // INCLUDES 00025 #include <e32base.h> 00026 #include <stringpool.h> 00027 #include "_sdpdefs.h" 00028 00029 // FORWARD DECLARATIONS 00030 class RReadStream; 00031 class RWriteStream; 00032 class CSdpRepeatField; 00033 00034 // CLASS DECLARATION 00050 class CSdpTimeField : public CBase 00051 { 00052 public: // Constructors and destructor 00064 IMPORT_C static CSdpTimeField * DecodeL(const TDesC8& aText, 00065 TBool aRecurse = ETrue); 00066 00078 IMPORT_C static CSdpTimeField * DecodeLC(const TDesC8& aText, 00079 TBool aRecurse = ETrue); 00080 00089 IMPORT_C static CSdpTimeField * NewL(const TDesC8& aStartTime, 00090 const TDesC8& aStopTime); 00091 00100 IMPORT_C static CSdpTimeField * NewLC(const TDesC8& aStartTime, 00101 const TDesC8& aStopTime); 00102 00106 IMPORT_C ~CSdpTimeField(); 00107 00108 public: // New functions 00120 IMPORT_C void EncodeL(RWriteStream& aStream, TBool aRecurse = ETrue) const; 00121 00130 IMPORT_C CSdpTimeField * CloneL(TBool aRecurse = ETrue) const; 00131 00139 IMPORT_C TBool operator == (const CSdpTimeField & aObj) const; 00140 00146 IMPORT_C TBool IsValid() const; 00147 00153 IMPORT_C const TDesC8& StartTime() const; 00154 00160 IMPORT_C const TDesC8& StopTime() const; 00161 00171 IMPORT_C void SetTimesL(const TDesC8& aStartTime, const TDesC8& aStopTime); 00172 00184 IMPORT_C RPointerArray<CSdpRepeatField>& RepeatFields(); 00185 00186 public: 00192 void ExternalizeL(RWriteStream& aStream) const; 00193 00200 static CSdpTimeField* InternalizeL(RReadStream& aStream); 00201 00208 void DoInternalizeL(RReadStream& aStream); 00209 00210 private: 00211 CSdpTimeField(); 00212 00213 void ConstructL(const TDesC8& aText, TBool aRecurse=ETrue); 00214 void ConstructL(const TDesC8& aStartTime, const TDesC8& aStopTime); 00215 00216 TBool RepeatFieldsCompare(const CSdpTimeField& aObj) const; 00217 00218 private: // Data 00219 HBufC8* iStartTime; 00220 HBufC8* iStopTime; 00221 RPointerArray<CSdpRepeatField> iRFields; 00222 RStringPool iStringPool; 00223 00224 __DECLARE_TEST; 00225 }; 00226 00227 // CSDPTIMESFIELD_H 00228 #endif