00001 /* 00002 * ============================================================================== 00003 * Name : siprequestelements.h 00004 * Part of : SIP Client 00005 * Interface : SDK API, SIP API 00006 * Description : 00007 * Version : 1.0 00008 * 00009 * Copyright (c) 2005 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 CSIPREQUESTELEMENTS_H 00022 #define CSIPREQUESTELEMENTS_H 00023 00024 // INCLUDES 00025 #include <e32base.h> 00026 #include <s32strm.h> 00027 #include <stringpool.h> 00028 #include <uri8.h> 00029 #include "_sipcodecdefs.h" 00030 00031 // FORWARD DECLARATIONS 00032 class CSIPMessageElements; 00033 class CSIPFromHeader; 00034 class CSIPToHeader; 00035 class CSIPCSeqHeader; 00036 class CURIContainer; 00037 00038 // CLASS DECLARATION 00039 00049 class CSIPRequestElements : public CBase 00050 { 00051 public: // Constructors and destructor 00059 IMPORT_C static CSIPRequestElements* NewL(CUri8* aRemoteUri); 00060 00068 IMPORT_C static CSIPRequestElements* NewLC(CUri8* aRemoteUri); 00069 00073 IMPORT_C ~CSIPRequestElements(); 00074 00075 public: // New functions 00082 IMPORT_C void SetToHeaderL(CSIPToHeader* aTo); 00083 00089 IMPORT_C const CSIPToHeader* ToHeader() const; 00090 00098 IMPORT_C void SetFromHeaderL(CSIPFromHeader* aFrom); 00099 00105 IMPORT_C const CSIPFromHeader* FromHeader() const; 00106 00112 IMPORT_C const CSIPCSeqHeader* CSeqHeader() const; 00113 00121 IMPORT_C void SetRemoteUriL(CUri8* aRemoteUri); 00122 00127 IMPORT_C const CUri8& RemoteUri() const; 00128 00135 IMPORT_C void SetMethodL(RStringF aMethod); 00136 00142 IMPORT_C RStringF Method() const; 00143 00148 IMPORT_C const CSIPMessageElements& MessageElements() const; 00149 00156 IMPORT_C CSIPMessageElements& MessageElements(); 00157 00158 public: // New functions, for internal use 00159 static CSIPRequestElements* InternalizeL (RReadStream& aReadStream); 00160 void ExternalizeL (RWriteStream& aWriteStream) const; 00161 00162 private: 00163 CSIPRequestElements(); 00164 void ConstructL(CUri8* aRemoteUri); 00165 void DoInternalizeL(RReadStream& aReadStream); 00166 00167 private: // Data 00168 RStringF iMethod; 00169 CURIContainer* iRemoteURI; 00170 CSIPMessageElements* iMessageElements; 00171 00172 private: // For testing purposes 00173 UNIT_TEST(CSIPRequestElementsTest) 00174 }; 00175 00176 #endif