00001 /* 00002 * ============================================================================== 00003 * Name : sipservertransaction.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 CSIPSERVERTRANSACTION_H 00022 #define CSIPSERVERTRANSACTION_H 00023 00024 // INCLUDES 00025 #include "siptransactionbase.h" 00026 00027 // FORWARD DECLARATIONS 00028 class CSIPRequestElements; 00029 class MSIPResponseSender; 00030 class CSIPConnection; 00031 class CSIPDialogImplementation; 00032 00033 // CLASS DECLARATION 00034 00046 class CSIPServerTransaction: public CSIPTransactionBase 00047 { 00048 public: // Destructor 00049 00053 IMPORT_C ~CSIPServerTransaction(); 00054 00055 public: // New functions 00056 00076 IMPORT_C void SendResponseL(CSIPResponseElements *aElements); 00077 00082 IMPORT_C const CSIPRequestElements* RequestElements() const; 00083 00089 IMPORT_C TBool ResponseAllowed() const; 00090 00091 public: // New functions, for internal use 00092 00099 void SetResponseSender(MSIPResponseSender* aSender); 00100 00107 CSIPDialogImplementation* Dialog() const; 00108 00115 CSIPConnection& SIPConnectionL(); 00116 00122 void ReAssociateL(MTransactionAssociation& aAssociation); 00123 00131 static void DetachRequestElements(TAny* aServerTransaction); 00132 00133 public: // Constructors, for internal use 00142 static CSIPServerTransaction* 00143 NewL(TUint32 aRequestId, 00144 MTransactionAssociation& aAssociation, 00145 CSIPRequestElements* aElements); 00146 00155 static CSIPServerTransaction* 00156 NewLC(TUint32 aRequestId, 00157 MTransactionAssociation& aAssociation, 00158 CSIPRequestElements* aElements); 00159 00160 private: // Constructors 00161 CSIPServerTransaction(TUint32 aRequestId, 00162 MTransactionAssociation& aAssociation); 00163 00170 void ConstructL(CSIPRequestElements* aElements); 00171 00172 private: // Data 00173 CSIPRequestElements* iRequestElements; 00174 00175 //This interface is used for sending the response. 00176 //CSIPServerTransaction owns iResponseSender. 00177 MSIPResponseSender* iResponseSender; 00178 00179 private: // For testing purposes 00180 00181 UNIT_TEST(CSIPServerTransaction_Test) 00182 UNIT_TEST(CSIP_Test) 00183 00184 __DECLARE_TEST; 00185 }; 00186 00187 #endif