00001 /* 00002 * ============================================================================= 00003 * Name : SdpRepeatField.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 CSDPREPEATFIELD_H 00022 #define CSDPREPEATFIELD_H 00023 00024 // INCLUDES 00025 #include <e32base.h> 00026 #include <StringPool.h> 00027 #include "_sdpdefs.h" 00028 #include "sdptypedtime.h" 00029 00030 // FORWARD DECLARATIONS 00031 class RReadStream; 00032 class RWriteStream; 00033 00034 // CLASS DECLARATION 00049 class CSdpRepeatField : public CBase 00050 { 00051 public: // Constructors and destructor 00059 IMPORT_C static CSdpRepeatField* DecodeL(const TDesC8& aText); 00060 00069 IMPORT_C static CSdpRepeatField* DecodeLC(const TDesC8& aText); 00070 00080 IMPORT_C static CSdpRepeatField* NewL( 00081 const TSdpTypedTime aRepeatInterval, 00082 const TSdpTypedTime aActiveDuration, 00083 const RArray<TSdpTypedTime>& aOffsets); 00084 00095 IMPORT_C static CSdpRepeatField* NewLC( 00096 const TSdpTypedTime aRepeatInterval, 00097 const TSdpTypedTime aActiveDuration, 00098 const RArray<TSdpTypedTime>& aOffsets); 00099 00103 IMPORT_C ~CSdpRepeatField(); 00104 00105 public: // New functions 00113 IMPORT_C void EncodeL(RWriteStream& aStream) const; 00114 00120 IMPORT_C CSdpRepeatField * CloneL() const; 00121 00128 IMPORT_C TBool operator == (const CSdpRepeatField & aObj) const; 00129 00135 IMPORT_C const TSdpTypedTime RepeatInterval() const; 00136 00144 IMPORT_C void SetRepeatIntervalL(const TSdpTypedTime aValue); 00145 00151 IMPORT_C const TSdpTypedTime ActiveDuration() const; 00152 00158 IMPORT_C void SetActiveDuration(const TSdpTypedTime aValue); 00159 00166 IMPORT_C const RArray<TSdpTypedTime>& TimeOffsets() const; 00167 00173 IMPORT_C void SetTimeOffsetsL(const RArray<TSdpTypedTime>& aValue); 00174 00175 public: 00181 void ExternalizeL(RWriteStream& aStream) const; 00182 00189 static CSdpRepeatField* InternalizeL(RReadStream& aStream); 00190 00191 private: 00192 CSdpRepeatField(const TSdpTypedTime aRepeatInterval, 00193 const TSdpTypedTime aActiveDuration); 00194 CSdpRepeatField(); 00195 void ConstructL(const TDesC8& aText); 00196 void ConstructL(const RArray<TSdpTypedTime>& aOffsets); 00197 00198 00199 private: // Data 00200 RStringPool iPool; 00201 TSdpTypedTime iRepeatInterval; 00202 TSdpTypedTime iActiveDuration; 00203 RArray<TSdpTypedTime> iTimeOffsets; 00204 00205 __DECLARE_TEST; 00206 }; 00207 00208 // CSDPREPEATFIELD_H 00209 #endif