diff -r 000000000000 -r 1bce908db942 natfw/natfwstunserver/inc/natfwstunsrvclientsession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/natfw/natfwstunserver/inc/natfwstunsrvclientsession.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,109 @@ +/* +* Copyright (c) 2007-2008 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: Provides client interface of the NAT FW STUN server +* +*/ + + + + +#ifndef NATFWSTUNSRVCLIENTSESSION_H +#define NATFWSTUNSRVCLIENTSESSION_H + +#include +#include "natfwconnectivityapidefs.h" + +class CNATFWSTUNSrvImpl; +class MNATFWStunSrvObserver; +class CNATFWCredentials; +class MNcmConnectionMultiplexer; +class TInetAddr; + +/** + * Interface of the NATFW STUN server, which client uses to listen to + * incoming STUN requests. Also Turn spesific data indications are decoded. + * + * @lib stunserver.lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( CNATFWSTUNSrvClientSession ): public CBase + { + +public: + + /** + * Two-phased constructor. + * @param aObserver A callback object to receive and handle + * event notifications from NAT FW STUN server. + * @param aMultiplexer multiplexer. + */ + IMPORT_C static CNATFWSTUNSrvClientSession* NewL( + MNATFWStunSrvObserver& aObserver, + MNcmConnectionMultiplexer& aMultiplexer ); + /** + * Destructor. + */ + virtual ~CNATFWSTUNSrvClientSession(); + + /** + * Starts listening to incoming STUN requests. + * Notifies the client of STUN requests that are valid. + * + * @since S60 3.2 + * @param aIdentifications Authentication passwords + * @return void + */ + IMPORT_C void AddAuthenticationParamsL( + const RPointerArray& aIdentifications ); + + /** + * Stops listening to incoming STUN requests. + * + * @since S60 3.2 + * @param aIdentifications Authentication passwords + * @return void + */ + IMPORT_C void RemoveAuthenticationParamsL( + const RPointerArray& aIdentifications ); + + /** + * Sets role for an agent. + * + * @since S60 3.2 + * @param aRole Either controlling or controlled. + * @param aTieBreaker Value for determining which agent will change + * Role if role conflict is present + * @return void + */ + IMPORT_C void SetRoleL( TNATFWIceRole aRole, + TUint64 aTieBreaker ); + + +private: + + CNATFWSTUNSrvClientSession(); + + void ConstructL( MNATFWStunSrvObserver& aObserver, + MNcmConnectionMultiplexer& aMultiplexer ); + +private: + + /* + * NAT FW STUN server implementation + * Own. + */ + CNATFWSTUNSrvImpl* iImplementation; + }; + +#endif // NATFWSTUNSRVCLIENTSESSION_H