diff -r ccd8e69b5392 -r 496ad160a278 mmsharing/mmshavailability/tsrc/ut_availability/Stubs/inc/sipclienttransaction.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/tsrc/ut_availability/Stubs/inc/sipclienttransaction.h Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,187 @@ +/* +* Copyright (c) 2003 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 CSIPCLIENTTRANSACTION_H +#define CSIPCLIENTTRANSACTION_H + + +// INCLUDES +#include "siptransactionbase.h" + +// FORWARD DECLARATIONS +class CSIPRefresh; + + +#ifdef CPPUNIT_TEST +#undef IMPORT_C +#define IMPORT_C +#endif + + +/** +* +* Class for managing SIP client transactions. +* It provides services for ending and getting the SIP client transaction +* parameters. Some client transactions can also be canceled. +* +* The user of the class cannot instante this class. +* @lib sipclient +*/ +class CSIPClientTransaction: public CSIPTransactionBase + { + public: + + /** + * Destructor + */ + + IMPORT_C ~CSIPClientTransaction(); + + public: + + /** + * Gets response elements of the most recent response. + * @return Response elements. Ownership isn't transferred. + */ + + IMPORT_C const CSIPResponseElements* ResponseElements() const; + + + /** + * Cancels client transaction i.e. creates a CANCEL request + * and sends to the remote UA; + * leaves on failure. + * @pre State()==EProceeding + * @pre CancelAllowed()==ETrue + * @pre Connection().State()==EActive + * @return SIP CANCEL transaction, ownership is transferred. + * @leave KErrSIPInvalidTransactionState if canceling is not possible + * at all, or because the transaction is not in a proper state or the + * transaction is not related to a dialog. + * @leave KErrSIPResourceNotAvailable if a required SIP Client API + * object has been deleted + */ + + IMPORT_C CSIPClientTransaction* CancelL(); + + + /** + * Gets the associated refresh with the transaction. + * If the refresh is associated with the transaction, + * transaction will be refreshed at defined interval. + * @return associated refresh or 0-pointer if there's no + * associated refresh. Ownership isn't transferred. + */ + + IMPORT_C const CSIPRefresh* Refresh() const; + + + /** + * Checks if the client transaction is such that it can be cancelled. + * This does no check whether the transaction is currently in such a + * state that the canceling can be done now. + * + * @return ETrue if client transaction can be cancelled; + * EFalse otherwise + */ + + IMPORT_C TBool CancelAllowed() const; + + /** + * Gets the associated refresh with the transaction and allows + * modification fo the refresh. This method is for internal use only. + * + * @return associated refresh or 0-pointer if there's no + * associated refresh. Ownership isn't transferred. + */ + + CSIPRefresh* Refresh(); + + + /** + * Clears the association from ClientTransaction to CSIPRefresh + */ + + void RemoveRefresh(); + + public: // Not in real SIP API + + IMPORT_C static CSIPClientTransaction* NewL( RStringF aType ); + + IMPORT_C void SetResponseElements(CSIPResponseElements* aE); + + + public: + + /** + * Instantiates a CSIPClientTransaction object, leaves on failure. + * + * @param aType Identifies the transaction type + * @param aRequestId RequestId obtained from SIP client + * @param aAssociation Object to which the transaction is associated + * with. + * @param aRefresh If transaction is refreshed, this points to a + * CSIPRefresh, otherwise this is NULL. Ownership is not transferred. + * @return SIP client transaction, ownership is transferred. + */ + + static CSIPClientTransaction* + NewL(RStringF aType, + TUint32 aRequestId, + MTransactionAssociation& aAssociation, + CSIPRefresh* aRefresh=0); + + /** + * Instantiates a CSIPClientTransaction object and pushes it into + * CleanupStack, leaves on failure. + * + * @param aType Identifies the transaction type + * @param aRequestId RequestId obtained from SIP client + * @param aAssociation Object to which the transaction is associated + * with. + * @param aRefresh If transaction is refreshed, this points to a + * CSIPRefresh, otherwise this is NULL. Ownership is not transferred. + * @return SIP client transaction, ownership is transferred. + */ + + static CSIPClientTransaction* + NewLC(RStringF aType, + TUint32 aRequestId, + MTransactionAssociation& aAssociation, + CSIPRefresh* aRefresh=0); + + protected: + CSIPClientTransaction( RStringF aType ); + + private: + //NULL if this transaction is not refreshed. + //CSIPClientTransaction does not own the refresh object. + CSIPRefresh* iRefresh; + + CSIPResponseElements* iE; + + TBool iIsCancelAllowed; + + +#ifdef CPPUNIT_TEST + friend class CSIP_Test; +#endif + }; + +#endif