diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/SIP/ConnectionMgr/inc/MSIPTransportMgr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/SIP/ConnectionMgr/inc/MSIPTransportMgr.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,110 @@ +/* +* Copyright (c) 2006-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 : MSIPTransportMgr.h +* Part of : SIPSec +* Version : SIP/5.0 +* +*/ + + + + +/** + @internalComponent +*/ + +#ifndef MSIPTRANSPORTMGR_H +#define MSIPTRANSPORTMGR_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class TSIPTransportParams; +class TInetAddr; +class MSIPTransportRemovalObserver; + + +// CLASS DECLARATION +/** +* An interface for allocationg and deallocating transport resources +* for IPSec SAs and TLS. +* +* @lib N/A +*/ +class MSIPTransportMgr + { + public: + + /** + * Reserves UPD and TCP transports with the given parameters. + * @param aTransportParams on return contains the id of + * the reserved transport + * @param aLocalSendPort local port used for sending + * @param aLocalReceivePort local port listened on UDP and TCP + * @param aRemoteAddr remote address + * @param aRemoteSendPort remote port where messages are expected from. + */ + virtual void ReserveTransportL( TSIPTransportParams& aTransportParams, + TUint aLocalSendPort, + TUint aLocalReceivePort, + const TInetAddr& aRemoteAddr, + TUint aRemoteSendPort ) = 0; + + /** + * Pre-allocates a TLS transport. + * The actual destination address is known when the first + * SIP request is sent using this transport and + * the TLS connection establishment is delayed until that. + * @param aTransportParams on return contains the id of + * the pre-allocated transport resources + */ + virtual void CreateTLSTransportL( + TSIPTransportParams& aTransportParams ) = 0; + + /** + * Deallocates resources reserved for the transport. + * @param aTransportId identifies the transport + */ + virtual void RemoveTransport( TUint32 aTransportId ) = 0; + + /** + * Deallocates resources reserved for the transport. If return value + * is more than zero and observer is provided, the caller must wait + * asynchronous completion of removal. Completion callback of removal + * observer interface is called as many times as there is asynchronous + * removal operations. + * @param aTransportId identifies the transport + * @param aRemovalObserver interface for asynchronous removal completion + * callbacks; may be NULL if caller is not interested about + * removal completion + * @return number of asynchronous remove operations + */ + virtual TInt RemoveTransport( + TUint32 aTransportId, + MSIPTransportRemovalObserver* aRemovalObserver ) = 0; + + /** + * Retrieves local address of spesified IAP + * @param aIapId id of accesspoint which local address is retrieved + * @param aAddr on return will contain retrieved local address + * @returns KErrNone if success, otherwise system wide error code + */ + virtual TInt GetLocalAddress( TUint32 aIapId, TInetAddr& aAddr ) = 0; + }; + +#endif // MSIPTRANSPORTMGR_H + +// End of File