diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/ClientResolver/Resolver/inc/CSipHeaderStrategyBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/ClientResolver/Resolver/inc/CSipHeaderStrategyBase.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,126 @@ +/* +* Copyright (c) 2005-2009 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: +* Name : CSipHeaderStrategyBase.h +* Part of : SIP Client Resolver +* Version : 1.0 +* +*/ + + + + +/** + @internalComponent +*/ + +#ifndef CSIPHEADERSTRATEGYBASE_H +#define CSIPHEADERSTRATEGYBASE_H + +#include +#include +#include "_sipcodecdefs.h" + +class CSIPResponse; +class CSIPRequest; +class MSipClients; +class MSipClient; +class CSIPContentTypeHeader; +class CSIPResolvedClient2; +class CSIPClientResolver2; +class CUri8; + +class CSipHeaderStrategyBase : public CBase + { + public: + + virtual ~CSipHeaderStrategyBase(); + + virtual CSIPResponse* ApplyL( CSIPRequest& aRequest, + RArray& aUids, + TBool& aContinueSearch, + CSIPClientResolver2& + aClientResolver2 ) = 0; + + TBool MatchL( CSIPResolvedClient2& aClient,CSIPRequest& aRequest, + TUid& aUid ); + + CUri8* ConvertRequestUriL( CSIPRequest& aRequest ); + + protected: + + CSipHeaderStrategyBase(MSipClients& aSipClients, + CSipHeaderStrategyBase* aNextStrategy, + CSipHeaderStrategyBase* aNextStrategy2); + + CSIPResponse* MatchClientsL(CSIPRequest& aRequest, + RArray& aUids); + + CSIPResponse* MatchClients2L( + CSIPRequest& aRequest, + RArray& aUids, + TBool& aContinueSearch, + CSIPClientResolver2& aClientResolver2 ); + + CSIPResponse* NextStrategyL(CSIPRequest& aRequest, + RArray& aUids, + TBool& aContinueSearch, + CSIPClientResolver2& aClientResolver2 ); + + CSIPResponse* NextStrategy2L( CSIPRequest& aRequest, + RArray& aUids, + TBool& aContinueSearch, + CSIPClientResolver2& aClientResolver2 ); + + CSIPResponse* NoMatchL( CSIPRequest& aRequest, + RArray& aUids, + TBool& aContinueSearch, + CSIPClientResolver2& aClientResolver2 ); + + protected: + + virtual CSIPResponse* MoreThanOneMatchL(CSIPRequest& aRequest, + RArray& aUids, + TBool& aContinueSearch, + CSIPClientResolver2& aClientResolver2 ); + + virtual TBool MatchResolvedClientL( CSIPResolvedClient2& aClient, + CSIPRequest& aRequest, + TUid& aClientUid, + const CUri8& aUri8 ); + + virtual void EliminateClientsL(CSIPRequest& aRequest, + RArray& aUids); + + virtual TBool CompareHeaders(CSIPRequest& aRequest, + MSipClient& aClient); + + virtual CSIPResponse* CreateResponseL(); + + /** + * @return 0 if the ContentType header was not found, + * otherwise the header. The ownership is NOT transferred. + */ + virtual CSIPContentTypeHeader* ContentType(CSIPRequest& aRequest); + + protected: // Data + + MSipClients& iSipClients; + CSipHeaderStrategyBase* iNextStrategy; // Not owned + CSipHeaderStrategyBase* iNextStrategy2; // Not owned + }; + +#endif // CSIPHEADERSTRATEGYBASE_H + +// End of File