epoc32/include/sipservertransaction.h
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 2fe1408b6811
child 4 837f303aceeb
     1.1 --- a/epoc32/include/sipservertransaction.h	Tue Mar 16 16:12:26 2010 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,190 +0,0 @@
     1.4 -/*
     1.5 -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.6 -* All rights reserved.
     1.7 -* This component and the accompanying materials are made available
     1.8 -* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     1.9 -* which accompanies this distribution, and is available
    1.10 -* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.11 -*
    1.12 -* Initial Contributors:
    1.13 -* Nokia Corporation - initial contribution.
    1.14 -*
    1.15 -* Contributors:
    1.16 -*
    1.17 -* Description:
    1.18 -* Name        : sipservertransaction.h
    1.19 -* Part of     : SIP Client
    1.20 -* Interface   : SDK API, SIP API
    1.21 -* Version     : 1.0
    1.22 -*
    1.23 -*/
    1.24 -
    1.25 -
    1.26 -
    1.27 -#ifndef CSIPSERVERTRANSACTION_H
    1.28 -#define CSIPSERVERTRANSACTION_H
    1.29 -
    1.30 -// INCLUDES
    1.31 -#include "siptransactionbase.h"
    1.32 -
    1.33 -// FORWARD DECLARATIONS
    1.34 -class CSIPRequestElements;
    1.35 -class MSIPResponseSender;
    1.36 -class CSIPConnection;
    1.37 -class CSIPDialogImplementation;
    1.38 -
    1.39 -// CLASS DECLARATION
    1.40 -
    1.41 -/**
    1.42 -*  @publishedAll
    1.43 -*  @released
    1.44 -*
    1.45 -*  Class for managing SIP server transactions.
    1.46 -*  It provides services for creating, ending
    1.47 -*  and getting SIP transaction parameters.
    1.48 -*  Client cannot instantiate this class.
    1.49 -*  
    1.50 -*  @lib sipclient
    1.51 -*/
    1.52 -class CSIPServerTransaction: public CSIPTransactionBase
    1.53 -	{
    1.54 -	public: // Destructor
    1.55 -    
    1.56 -        /**
    1.57 -        * Destructor
    1.58 -		*/
    1.59 -		IMPORT_C ~CSIPServerTransaction();
    1.60 -
    1.61 -	public: // New functions
    1.62 -	
    1.63 -        /**
    1.64 -		* Sends response and ends the transaction;
    1.65 -		* The user must not send 100 Trying response. Leaves on failure.
    1.66 -        * @pre aElements!=0
    1.67 -        * @pre State()==ETrying || State()==EProceeding
    1.68 -		* @pre CSIPConnection::State()==EActive
    1.69 -		* @pre ResponseAllowed()==ETrue		
    1.70 -		* @param aElements contains Status Code, optional Reason Phrase and
    1.71 -        *   optional SIP message headers and body. Ownership is transferred.
    1.72 -		* @leave KErrArgument if aElements == NULL
    1.73 -		* @leave KErrGeneral if ResponseAllowed() == EFalse
    1.74 -		* @leave KErrSIPInvalidTransactionState if State()!=ETrying and
    1.75 -		*	State()!=EProceeding
    1.76 -		* @leave KErrSIPInvalidDialogState if sending response to a request
    1.77 -		*	within dialog, and the dialog is in terminated state.
    1.78 -		* @leave KErrSIPResourceNotAvailable if a required SIP Client API
    1.79 -		*	object has been deleted
    1.80 -		* @capability NetworkServices
    1.81 -		*/
    1.82 -		IMPORT_C void SendResponseL(CSIPResponseElements *aElements);
    1.83 -
    1.84 -	    /**
    1.85 -		* Gets the request elements
    1.86 -		* @return Request elements. Ownership is not transferred.
    1.87 -		*/
    1.88 -		IMPORT_C const CSIPRequestElements* RequestElements() const;
    1.89 -
    1.90 -        /**
    1.91 -		* Checks if the response sending is allowed for this server
    1.92 -        * transaction. For instance response is not allowed in ACK transaction.
    1.93 -		* @return ETrue if response sending is allowed, EFalse otherwise
    1.94 -		*/
    1.95 -		IMPORT_C TBool ResponseAllowed() const;
    1.96 -        
    1.97 -	public: // New functions, for internal use
    1.98 -	
    1.99 -        /**
   1.100 -		* Sets a new respose sender, replacing the current sender.
   1.101 -		*
   1.102 -        * @param aSender Response sender to be used from now on. Ownership is
   1.103 -        *   	 transferred.		
   1.104 -		*/
   1.105 -        void SetResponseSender(MSIPResponseSender* aSender);
   1.106 -
   1.107 -		/**
   1.108 -		* If the request was received inside a dialog, returns the dialog.		
   1.109 -		*
   1.110 -        * @return CSIPDialogImplementation* The dialog inside which the request
   1.111 -        *	was received, or NULL. Ownership is not transferred.
   1.112 -		*/
   1.113 -		CSIPDialogImplementation* Dialog() const;
   1.114 -
   1.115 -        /**
   1.116 -	    * Obtains the associated CSIPConnection instance. If connection can't
   1.117 -        * be accessed anymore, this function leaves.
   1.118 -        *	
   1.119 -	    * @return CSIPConnection
   1.120 -	    */
   1.121 -        CSIPConnection& SIPConnectionL();
   1.122 -
   1.123 -        /**
   1.124 -		* Update the MTransactionAssociation to point to aAssociation.
   1.125 -		*
   1.126 -        * @param aAssociation Associated object		
   1.127 -		*/
   1.128 -        void ReAssociateL(MTransactionAssociation& aAssociation);
   1.129 -
   1.130 -        /**
   1.131 -		* Removes, but does not delete, request elements from
   1.132 -        * aServerTransaction.
   1.133 -        *
   1.134 -		* @param aServerTransaction Server transaction from which response
   1.135 -        *   elements are removed. Ownership is not transferred.
   1.136 -		*/
   1.137 -        static void DetachRequestElements(TAny* aServerTransaction);
   1.138 -
   1.139 -	public: // Constructors, for internal use
   1.140 -        /**
   1.141 -		* Creates a server transaction.
   1.142 -		*
   1.143 -        * @param aRequestId RequestId for the transaction to use
   1.144 -        * @param aAssociation Object with which the transaction is associated
   1.145 -        * @param aElements Request elements. Ownership is transferred.
   1.146 -        * @return New object. Ownership is transferred.
   1.147 -		*/
   1.148 -		static CSIPServerTransaction*
   1.149 -            NewL(TUint32 aRequestId,
   1.150 -                 MTransactionAssociation& aAssociation,
   1.151 -                 CSIPRequestElements* aElements);
   1.152 -
   1.153 -        /**
   1.154 -		* Creates a server transaction and pushes it to cleanup stack.
   1.155 -		*
   1.156 -        * @param aRequestId RequestId for the transaction to use
   1.157 -        * @param aAssociation Object with which the transaction is associated
   1.158 -        * @param aElements Request elements. Ownership is transferred.
   1.159 -        * @return New object. Ownership is transferred.
   1.160 -		*/
   1.161 -		static CSIPServerTransaction*
   1.162 -            NewLC(TUint32 aRequestId,
   1.163 -                  MTransactionAssociation& aAssociation,
   1.164 -                  CSIPRequestElements* aElements);
   1.165 -
   1.166 -	private: // Constructors
   1.167 -		CSIPServerTransaction(TUint32 aRequestId,
   1.168 -                              MTransactionAssociation& aAssociation);
   1.169 -
   1.170 -        /**
   1.171 -		* Second phase constructor.
   1.172 -		*
   1.173 -		* @pre aElements!=0
   1.174 -        * @param aElements Request elements. Ownership is transferred.        
   1.175 -		*/
   1.176 -        void ConstructL(CSIPRequestElements* aElements);
   1.177 -
   1.178 -	private: // Data
   1.179 -        CSIPRequestElements* iRequestElements;
   1.180 -
   1.181 -        //This interface is used for sending the response.
   1.182 -        //CSIPServerTransaction owns iResponseSender.
   1.183 -        MSIPResponseSender* iResponseSender;
   1.184 -
   1.185 -	private: // For testing purposes        
   1.186 -
   1.187 -	    UNIT_TEST(CSIPServerTransaction_Test)
   1.188 -        UNIT_TEST(CSIP_Test)
   1.189 -
   1.190 -		__DECLARE_TEST;
   1.191 -	};
   1.192 -
   1.193 -#endif