diff -r 000000000000 -r 1bce908db942 natfw/natfwturnplugin/src/tturnplugincallbackinfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/natfw/natfwturnplugin/src/tturnplugincallbackinfo.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,186 @@ +/* +* Copyright (c) 2007 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: +* +*/ + + + + +#include "tturnplugincallbackinfo.h" +#include "natfwturnpluginlogs.h" + +#ifdef _DEBUG +_LIT16( KPanicArgument, "invalid argument" ); +#endif + +// --------------------------------------------------------------------------- +// TTurnPluginCallbackInfo::TTurnPluginCallbackInfo +// --------------------------------------------------------------------------- +// +TTurnPluginCallbackInfo::TTurnPluginCallbackInfo( + const CNATFWPluginApi& aTurnPlugin, + MNATFWPluginObserver& aObserver, + TTurnPluginCallbackInfo::TFunction aFunction, TUint aStreamId, + TInt aErrorCode, + TAny* aEventData ) + : + iLink(), + iTurnPlugin( aTurnPlugin ), + iObserver( aObserver ), + iFunction( aFunction ), + iStreamId( aStreamId ), + iErrorCode( aErrorCode ), + iEventData( aEventData ) + { + } + +// --------------------------------------------------------------------------- +// TTurnPluginCallbackInfo::TTurnPluginCallbackInfo +// Dummy implementation. Default constructor is declared private and not used. +// --------------------------------------------------------------------------- +// +TTurnPluginCallbackInfo::TTurnPluginCallbackInfo() : + iLink(), + iTurnPlugin( *( CNATFWPluginApi* )0x1 ), + iObserver( *( MNATFWPluginObserver* )0x1 ), + iFunction( EFetchingEnd ), + iStreamId( 0 ), + iErrorCode( KErrNone ), + iEventData( NULL ) + { + } + +// --------------------------------------------------------------------------- +// TTurnPluginCallbackInfo::TTurnPluginCallbackInfo +// Dummy implementation, as copy constructor is declared private and not used. +// --------------------------------------------------------------------------- +// +TTurnPluginCallbackInfo::TTurnPluginCallbackInfo( + const TTurnPluginCallbackInfo& /*aCallbackInfo*/ ) : + iLink(), + iTurnPlugin( *( CNATFWPluginApi* )0x1 ), + iObserver( *( MNATFWPluginObserver* )0x1 ), + iFunction( EFetchingEnd ), + iStreamId( 0 ), + iErrorCode( KErrNone ), + iEventData( NULL ) + { + } + +// ---------------------------------------------------------------------------- +// TTurnPluginCallbackInfo::Validate +// ---------------------------------------------------------------------------- +// +TBool TTurnPluginCallbackInfo::Validate() const + { + __TURNPLUGIN( "TurnPluginCallbackInfo::Validate()" ) + switch ( iFunction ) + { + case EActiveSending: + case EDeactiveSending: + case EActiveReceiving: + case EDeactiveReceiving: + case ELocalCandidateFound: + case EFetchingEnd: + return iStreamId; + + case EConnectServer: + return ETrue; + + case EError: + return iStreamId && ( iErrorCode != KErrNone ); + + default: + return EFalse; + } + } + +// --------------------------------------------------------------------------- +// TTurnPluginCallbackInfo::Execute +// --------------------------------------------------------------------------- +// +void TTurnPluginCallbackInfo::Execute() const + { + __TURNPLUGIN( "TurnPluginCallbackInfo::Execute() in" ) + __ASSERT_DEBUG( Validate(), + User::Panic( KPanicArgument, KErrArgument ) ); + + switch ( iFunction ) + { + case EConnectServer: + PassEvent( MNATFWPluginObserver::EServerConnected ); + break; + + case EActiveSending: + PassEvent( MNATFWPluginObserver::ESendingActivated ); + break; + + case EDeactiveSending: + PassEvent( MNATFWPluginObserver::ESendingDeactivated ); + break; + + case EActiveReceiving: + PassEvent( MNATFWPluginObserver::EReceivingActivated ); + break; + + case EDeactiveReceiving: + PassEvent( MNATFWPluginObserver::EReceivingDeactivated ); + break; + + case ELocalCandidateFound: + { + CNATFWCandidate* candidate = + reinterpret_cast( iEventData ); + + ASSERT( candidate ); + iObserver.NewLocalCandidateFound( iTurnPlugin, candidate ); + } + break; + + case EFetchingEnd: + PassEvent( MNATFWPluginObserver::EFetchingCompleted ); + break; + + case EError: + PassError(); + break; + + default: + ASSERT( EFalse ); + } + + __TURNPLUGIN( "TurnPluginCallbackInfo::Execute() out" ) + } + +// --------------------------------------------------------------------------- +// TTurnPluginCallbackInfo::PassEvent +// --------------------------------------------------------------------------- +// +void TTurnPluginCallbackInfo::PassEvent( + MNATFWPluginObserver::TNATFWPluginEvent aEvent ) const + { + iObserver.Notify( iTurnPlugin, iStreamId, aEvent, iErrorCode ); + } + +// --------------------------------------------------------------------------- +// TTurnPluginCallbackInfo::PassError +// --------------------------------------------------------------------------- +// +void TTurnPluginCallbackInfo::PassError() const + { + iObserver.Error( iTurnPlugin, iStreamId, iErrorCode ); + } + +// End of file