mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/sipclientstub/inc/sipresponseelements.h
branchRCL_3
changeset 22 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/sipclientstub/inc/sipresponseelements.h	Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,153 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+#ifndef CSIPRESPONSEELEMENTS_H
+#define CSIPRESPONSEELEMENTS_H
+
+//  INCLUDES
+
+#include <e32base.h>
+#include <s32strm.h>
+#include <stringpool.h>
+#include "_sipcodecdefs.h"
+
+// FORWARD DECLARATIONS
+class CSIPMessageElements;
+class CSIPFromHeader;
+class CSIPToHeader;
+class CSIPCSeqHeader;
+
+// CLASS DECLARATION
+
+/**
+*  @publishedAll
+*
+*  Class provides services for creating and manipulating SIP responses
+*  This class is used for creating and manipulating SIP responses including
+*  status code, reason phrase and optional elements such user headers,
+*  content and its type.
+*
+*  @lib sipclient.lib
+*/
+class CSIPResponseElements : public CBase
+	{
+    public:  // Constructors and destructor       
+	    /**
+        * Two-phased constructor.
+        * @pre aStatusCode > 100 && aStatusCode < 700
+	    * @param aStatusCode a known SIP response status code. Cannot be 100.
+		* @param aReasonPhrase a SIP response reason phrase.
+        */
+		IMPORT_C static CSIPResponseElements* NewL(TUint aStatusCode,
+		                                           RStringF aReasonPhrase);
+										
+	    /**
+        * Two-phased constructor.
+        * @pre aStatusCode > 100 && aStatusCode < 700
+	    * @param aStatusCode a known SIP response status code. Cannot be 100.
+		* @param aReasonPhrase a SIP response reason phrase.
+        */
+		IMPORT_C static CSIPResponseElements* NewLC(TUint aStatusCode,
+		                                            RStringF aReasonPhrase);
+											
+        /**
+        * Destructor.
+        */
+		IMPORT_C ~CSIPResponseElements();
+
+    public: // New functions
+		/**
+		* Sets a SIP Response extension status code. It is not possible to set
+        * value 100.
+        * @pre aStatusCode > 100 && aStatusCode < 700
+		* @param aStatusCode extension status code
+		* @leave KErrArgument if aStatusCode < 100 or aStatusCode >= 700
+		*/
+		IMPORT_C void SetStatusCodeL(TUint aStatusCode);
+
+		/**
+		* Gets the SIP Response status code
+		* @return SIP Response status code
+		*/
+		IMPORT_C TUint StatusCode() const;
+
+		/**
+		* Sets a SIP Response Reason Phrase.
+		* @param aReasonPhrase a SIP response reason phrase.
+		*/
+		IMPORT_C void SetReasonPhraseL(RStringF aReasonPhrase);
+			
+		/**
+		* Gets a SIP Response Reason Phrase.
+		* @return a SIP response reason phrase or an empty string if
+        *   the reason phrase is not defined.
+		*/
+		IMPORT_C RStringF ReasonPhrase() const;
+
+		/**
+		* Gets the originator's From-header
+		* @return a From-header or a 0-pointer if not present. Ownership is
+        *   not transferred.
+		*/
+		IMPORT_C const CSIPFromHeader* FromHeader() const;
+
+		/**
+		* Gets the recipient's To-header
+		* @return a To-header or a 0-pointer if not present. Ownership is
+        *   not transferred.
+		*/
+		IMPORT_C const CSIPToHeader* ToHeader() const;
+
+		/**
+		* Gets CSeq-header
+		* @return a CSeq-header or a 0-pointer if not present. Ownership is
+        *   not transferred.
+		*/		
+		IMPORT_C const CSIPCSeqHeader* CSeqHeader() const;
+
+		/**
+		* Gets message elements (contains all SIP user headers and content)
+		* @return message elements
+		*/
+		IMPORT_C const CSIPMessageElements& MessageElements() const;
+
+		/**
+		* Gets message elements (contains all SIP user headers and content)
+		* The response elements can be populated with SIP user headers
+		* and content using returned reference to the message elements.
+		* @return message elements
+		*/
+		IMPORT_C CSIPMessageElements& MessageElements();
+
+    public: // New functions, for internal use
+        static CSIPResponseElements* InternalizeL (RReadStream& aReadStream);
+        static CSIPResponseElements* InternalizeLC (RReadStream& aReadStream);
+        void ExternalizeL (RWriteStream& aWriteStream) const;
+
+    private:
+	    CSIPResponseElements();
+	    void ConstructL(TUint aStatusCode, RStringF aReasonPhrase);
+	    void DoInternalizeL (RReadStream& aReadStream);
+
+    private: // Data
+	    TUint iStatusCode;
+	    RStringF iReasonPhrase;
+        CSIPMessageElements* iMessageElements;
+	};
+
+#endif // end of CSIPRESPONSEELEMENTS_H