S60 3rd Edition API Reference: sdpdocument.h Source File

sdpdocument.h

Go to the documentation of this file.
00001 /*
00002 * =============================================================================
00003 *  Name          : SdpDocument.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 CSDPDOCUMENT_H
00022 #define CSDPDOCUMENT_H
00023 
00024 //  INCLUDES
00025 #include <e32base.h>
00026 #include <badesca.h>
00027 #include "_sdpdefs.h"
00028 #include <stringpool.h>
00029 
00030 // FORWARD DECLARATIONS
00031 class SdpUtil;
00032 class RReadStream;
00033 class RWriteStream;
00034 class CUri8;
00035 class CDesC8Array;
00036 class CSdpOriginField;
00037 class CSdpEmailField;
00038 class CSdpPhoneField;
00039 class CSdpConnectionField;
00040 class CSdpBandwidthField;
00041 class CSdpTimeField;
00042 class CSdpAttributeField;
00043 class CSdpMediaField;
00044 class CSdpKeyField;
00045 class CSdpCodecParseUtil;
00046 
00047 // CLASS DECLARATION
00063 class CSdpDocument : public CBase
00064     {
00065     public: // Constructors and destructor
00072         IMPORT_C static CSdpDocument* DecodeL(const TDesC8& aText);
00073 
00080         IMPORT_C static CSdpDocument* DecodeLC(const TDesC8& aText);
00081             
00091         IMPORT_C static CSdpDocument* NewL();
00092 
00103         IMPORT_C static CSdpDocument* NewLC();
00104 
00108         IMPORT_C ~CSdpDocument();
00109 
00110     public: 
00116         IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
00117 
00124         IMPORT_C static CSdpDocument* InternalizeL(RReadStream& aStream);
00125 
00137         IMPORT_C void EncodeL(RWriteStream& aStream) const;
00138 
00144         IMPORT_C CSdpDocument* CloneL() const;
00145 
00151         IMPORT_C TBool IsValid() const;
00152 
00159         IMPORT_C TUint SdpVersion() const;
00160 
00168         IMPORT_C CSdpOriginField* OriginField();
00169 
00175         IMPORT_C const CSdpOriginField* OriginField() const;
00176 
00184         IMPORT_C void SetOriginField(CSdpOriginField* aObj);
00185 
00191         IMPORT_C const TDesC8& SessionName() const;
00192 
00202         IMPORT_C void SetSessionNameL(const TDesC8& aValue);
00203 
00209         IMPORT_C const TDesC8& Info() const;
00210 
00218         IMPORT_C void SetInfoL(const TDesC8& aValue);
00219 
00227         IMPORT_C CUri8* Uri();
00228 
00234         IMPORT_C const CUri8* Uri() const;
00235 
00243         IMPORT_C void SetUri(CUri8* aValue);
00244 
00253         IMPORT_C CDesC8Array& EmailFields();
00254 
00263         IMPORT_C CDesC8Array& PhoneFields();
00264 
00272         IMPORT_C CSdpConnectionField* ConnectionField();
00273 
00279         IMPORT_C const CSdpConnectionField* ConnectionField() const;
00280 
00288         IMPORT_C void SetConnectionField(CSdpConnectionField* aObj);
00289 
00302         IMPORT_C RPointerArray<CSdpBandwidthField>& BandwidthFields();
00303 
00317         IMPORT_C RPointerArray<CSdpTimeField>& TimeFields();
00318 
00325         IMPORT_C const TDesC8& ZoneAdjustments() const;
00326 
00333         IMPORT_C void SetZoneAdjustmentsL(const TDesC8& aValue);
00334 
00342         IMPORT_C CSdpKeyField* Key();
00343 
00349         IMPORT_C const CSdpKeyField* Key() const;
00350 
00358         IMPORT_C void SetKey(CSdpKeyField* aObj);
00359 
00372         IMPORT_C RPointerArray<CSdpAttributeField>& AttributeFields();
00373 
00389         IMPORT_C RPointerArray<CSdpMediaField>& MediaFields();
00390 
00391     private:
00392         CSdpDocument();
00393         void ConstructL();
00394         void ConstructL(const CSdpDocument& aSdpDocument);
00395         void DoInternalizeL(RReadStream& aStream);
00396 
00397         void ParseL (const TDesC8& aText);
00398         void ParseSessionVersionL();
00399         void ParseSessionOwnerL();
00400         void ParseSessionNameL();
00401         void ParseSessionInformationL();
00402         void ParseUriL();
00403         void ParseEmailL();
00404         void ParsePhoneL();
00405         void ParseConnectionL();
00406         void ParseBandwidthL();
00407         void ParseTimeFieldL();
00408         void ParseZoneAdjustmentL();
00409         void ParseEncryptionKeyL();
00410         void ParseAttributeFieldL();
00411         void ParseMediaLevelL ();
00412         void ExternalizeDesCArrayL(CDesC8ArraySeg& aArray,
00413                                RWriteStream& aStream) const;
00414         void EncodeDesCArrayL(CDesC8ArraySeg& aArray,TInt aIndex,
00415                                             RWriteStream& aStream) const;
00416 
00417         TDesC8& GetTokenFromStreamL(RReadStream& aStream);
00418 
00419         CSdpDocument(const CSdpDocument&); // Hidden.
00420         CSdpDocument& operator = (const CSdpDocument&); // Hidden
00421 
00422     private: // Data
00423             
00424         HBufC8* iInfo;
00425         HBufC8* iSessionName;
00426         HBufC8* iZoneAdjustments;
00427         CSdpKeyField* iSdpKeyField;
00428         CSdpOriginField* iSdpOriginField;
00429         CSdpConnectionField* iSdpConnectionField;
00430         TUint iSdpVersion;
00431         RPointerArray<CSdpTimeField>* iTimeFields;
00432         RPointerArray<CSdpBandwidthField>* iBandwidthFields;
00433         RPointerArray<CSdpAttributeField>* iAttributeFields;
00434         RPointerArray<CSdpMediaField>* iMediaFields;
00435         CUri8* iUri;
00436         CDesC8ArraySeg* iEmailFields;
00437         CDesC8ArraySeg* iPhoneFields;
00438         RStringPool iPool;
00439         HBufC8* iToken;
00440         CSdpCodecParseUtil* iSdpCodecParseUtil;
00441     };
00442 
00443 // CSDPDOCUMENT_H
00444 #endif

Copyright © Nokia Corporation 2001-2007
Back to top