realtimenetprots/sipfw/ClientResolver/Resolver/inc/CSipHeaderStrategyBase.h
changeset 0 307788aac0a8
equal deleted inserted replaced
-1:000000000000 0:307788aac0a8
       
     1 /*
       
     2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 * Name          : CSipHeaderStrategyBase.h
       
    16 * Part of       : SIP Client Resolver
       
    17 * Version       : 1.0
       
    18 *
       
    19 */
       
    20 
       
    21 
       
    22 
       
    23 
       
    24 /**
       
    25  @internalComponent
       
    26 */
       
    27 
       
    28 #ifndef CSIPHEADERSTRATEGYBASE_H
       
    29 #define CSIPHEADERSTRATEGYBASE_H
       
    30 
       
    31 #include <e32base.h>
       
    32 #include <stringpool.h>
       
    33 #include "_sipcodecdefs.h"
       
    34 
       
    35 class CSIPResponse;
       
    36 class CSIPRequest;
       
    37 class MSipClients;
       
    38 class MSipClient;
       
    39 class CSIPContentTypeHeader;
       
    40 class CSIPResolvedClient2;
       
    41 class CSIPClientResolver2;
       
    42 class CUri8;
       
    43 
       
    44 class CSipHeaderStrategyBase : public CBase
       
    45     {
       
    46     public:
       
    47 
       
    48         virtual ~CSipHeaderStrategyBase();
       
    49                                               
       
    50         virtual CSIPResponse* ApplyL( CSIPRequest& aRequest, 
       
    51                                       RArray<TUid>& aUids,
       
    52                                       TBool& aContinueSearch,
       
    53                                       CSIPClientResolver2& 
       
    54                                       				aClientResolver2 ) = 0;
       
    55                                      
       
    56         TBool MatchL( CSIPResolvedClient2& aClient,CSIPRequest& aRequest,
       
    57     						 TUid& aUid );
       
    58     						 
       
    59     	CUri8* ConvertRequestUriL( CSIPRequest& aRequest );
       
    60 
       
    61     protected:
       
    62 
       
    63 	    CSipHeaderStrategyBase(MSipClients& aSipClients,
       
    64 	                           CSipHeaderStrategyBase* aNextStrategy,
       
    65     						   CSipHeaderStrategyBase* aNextStrategy2);
       
    66 
       
    67         CSIPResponse* MatchClientsL(CSIPRequest& aRequest,
       
    68                                          RArray<TUid>& aUids);
       
    69                                          
       
    70         CSIPResponse* MatchClients2L(
       
    71         							CSIPRequest& aRequest,
       
    72                                     RArray<TUid>& aUids,
       
    73     								TBool& aContinueSearch,
       
    74     								CSIPClientResolver2& aClientResolver2 );
       
    75         
       
    76         CSIPResponse* NextStrategyL(CSIPRequest& aRequest, 
       
    77     								RArray<TUid>& aUids,
       
    78     								TBool& aContinueSearch,
       
    79     								CSIPClientResolver2& aClientResolver2 );
       
    80     								
       
    81     	CSIPResponse* NextStrategy2L( CSIPRequest& aRequest, 
       
    82     								  RArray<TUid>& aUids,
       
    83     								  TBool& aContinueSearch,
       
    84     								  CSIPClientResolver2& aClientResolver2 );
       
    85     								
       
    86 		CSIPResponse* NoMatchL( CSIPRequest& aRequest, 
       
    87     							RArray<TUid>& aUids,
       
    88     							TBool& aContinueSearch,
       
    89     							CSIPClientResolver2& aClientResolver2 );
       
    90         
       
    91     protected:
       
    92     	
       
    93     	virtual CSIPResponse* MoreThanOneMatchL(CSIPRequest& aRequest, 
       
    94     								RArray<TUid>& aUids,
       
    95     								TBool& aContinueSearch,
       
    96     								CSIPClientResolver2& aClientResolver2 );
       
    97     								
       
    98     	virtual TBool MatchResolvedClientL( CSIPResolvedClient2& aClient,
       
    99     								CSIPRequest& aRequest,
       
   100     								TUid& aClientUid,
       
   101     								const CUri8& aUri8 );
       
   102     								
       
   103         virtual void EliminateClientsL(CSIPRequest& aRequest,
       
   104                                             RArray<TUid>& aUids);
       
   105                                                
       
   106         virtual TBool CompareHeaders(CSIPRequest& aRequest,
       
   107                                      MSipClient& aClient);
       
   108                                      
       
   109         virtual CSIPResponse* CreateResponseL();
       
   110         
       
   111         /**
       
   112         * @return 0 if the ContentType header was not found,
       
   113         *          otherwise the header. The ownership is NOT transferred.
       
   114         */
       
   115         virtual CSIPContentTypeHeader* ContentType(CSIPRequest& aRequest);
       
   116 
       
   117     protected: // Data
       
   118 
       
   119         MSipClients& iSipClients;
       
   120         CSipHeaderStrategyBase* iNextStrategy; // Not owned
       
   121         CSipHeaderStrategyBase* iNextStrategy2; // Not owned
       
   122     };
       
   123 
       
   124 #endif // CSIPHEADERSTRATEGYBASE_H
       
   125 
       
   126 // End of File