diff -r 000000000000 -r 094583676ce7 wvuing/wvuiada/Src/CCAImpsAccessClient.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/wvuiada/Src/CCAImpsAccessClient.cpp Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,239 @@ +/* +* Copyright (c) 2005 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: Implements WV engine access services interface +* +*/ + + + +// INCLUDE FILES +#include "CCAImpsAccessClient.h" +#include "CCAAdapterDll.h" +#include "TCAInterfaceSignaller.h" + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::CCAImpsAccessClient +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CCAImpsAccessClient::CCAImpsAccessClient( RImpsEng& aImpsEng ) + : iImpsEng( aImpsEng ) + { + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CCAImpsAccessClient* CCAImpsAccessClient::NewL( RImpsEng& aImpsEng ) + { + CCAImpsAccessClient* self = new( ELeave ) CCAImpsAccessClient( aImpsEng ); + return self; + } + +// Destructor +CCAImpsAccessClient::~CCAImpsAccessClient() + { + delete iCIdle; + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::InterfaceL +// Returns registered WV Engine interface. Implements lazy initialization. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +RImpsAccessClient2* CCAImpsAccessClient::InterfaceL() + { + if ( iLazyInitialization ) + { + iClient.RegisterL( iImpsEng, iAccessHandler, iPriority ); + iLazyInitialization = EFalse; + iRegistered = ETrue; + if ( iErrorHandler ) + { + iClient.RegisterErrorObserverL( *iErrorHandler ); + } + if ( iStatusHandler ) + { + iClient.RegisterStatusObserverL( iStatusHandler ); + } + // register all the client interfaces immediately, otherwise + // client might miss events from network + TCAInterfaceSignaller::RegisterAllL(); + } + return &iClient; + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::RegisterL +// Stores values for later registration. Implements lazy initialization. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCAImpsAccessClient::RegisterL( MImpsAccessHandler2* aObserver, + TInt aPriority /* = 0 */ ) + { + iPriority = aPriority; + iAccessHandler = aObserver; + iLazyInitialization = ETrue; + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::Unregister +// Unregisters if registered. Clears member variables. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCAImpsAccessClient::Unregister() + { + if ( iRegistered ) + { + iClient.Unregister(); + } + iAccessHandler = NULL; + iLazyInitialization = ETrue; + iRegistered = EFalse; + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::LoginL +// Forwards the call to WV Engine. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CCAImpsAccessClient::LoginL( TImpsCspIdentifier aCspId, + const TDesC& aPsw, + const TDesC& aClientId, + TUint32 aAP, + const TDesC* aKey1 /*= NULL*/, + const TDesC* aKey2 /*= NULL*/ ) + { + return InterfaceL()->ReactiveLoginL( aCspId, aPsw, aClientId, aAP, aKey1, + aKey2 ); + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::LogoutL +// Forwards the call to WV Engine. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CCAImpsAccessClient::LogoutL() + { + return InterfaceL()->LogoutL(); + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::NumberOfSessionsL +// Forwards the call to WV Engine. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CCAImpsAccessClient::NumberOfSessionsL( TImpsCspIdentifier& aCspId ) + { + return InterfaceL()->NumberOfSessionsL( aCspId ); + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::GetServicesL +// Forwards the call to WV Engine. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCAImpsAccessClient::GetServicesL( TImpsServices& aServices ) + { + InterfaceL()->GetServicesL( aServices ); + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::RegisterErrorObserverL +// Calls WV Engine if registered. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCAImpsAccessClient::RegisterErrorObserverL( MImpsErrorHandler2& aObs ) + { + iErrorHandler = &aObs; + if ( iRegistered ) + { + InterfaceL()->RegisterErrorObserverL( *iErrorHandler ); + } + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::UnregisterErrorObserverL +// Calls WV Engine always. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCAImpsAccessClient::UnregisterErrorObserverL() + { + iErrorHandler = NULL; + iClient.UnregisterErrorObserverL(); + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::RegisterStatusObserverL +// Calls WV Engine if registered. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCAImpsAccessClient::RegisterStatusObserverL( MImpsStatusHandler2* aObs ) + { + iStatusHandler = aObs; + if ( iRegistered ) + { + InterfaceL()->RegisterStatusObserverL( iStatusHandler ); + } + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::UnregisterStatusObserverL +// Calls WV Engine always. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CCAImpsAccessClient::UnregisterStatusObserverL() + { + iClient.UnregisterStatusObserverL(); + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::StatusHandler +// Returns current status handler. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +MImpsStatusHandler2* CCAImpsAccessClient::StatusHandler() const + { + return iStatusHandler; + } + +// ----------------------------------------------------------------------------- +// CCAImpsAccessClient::ErrorHandler +// Returns current error handler. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +MImpsErrorHandler2* CCAImpsAccessClient::ErrorHandler() const + { + return iErrorHandler; + } + +// End of File