--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshavailability/tsrc/ut_availability/Stubs/inc/sipclienttransaction.h Thu Dec 17 08:44:37 2009 +0200
@@ -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