diff -r ccd8e69b5392 -r 496ad160a278 mmsharing/mmshavailability/tsrc/ut_availability/Stubs/src/centralrepositorystub.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/tsrc/ut_availability/Stubs/src/centralrepositorystub.cpp Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,456 @@ +/* +* 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: +* +*/ + + +#include "centralrepository.h" +#include "mussettingskeys.h" +#include "CSipSseTestTls.h" + + +/// CenRep UIDs and keys +const TUid KCRUidSIPClientResolverConfig = { 0x10282EE7 }; + +const TUid KCRUidInCallVolume = {0x102828B1}; +const TUint32 KTelIncallEarVolume = 0x00000001; +const TUint32 KTelIncallLoudspeakerVolume = 0x00000002; + + +// Values for static variables +MusSettingsKeys::TOperatorVariant CRepository::iOperatorVariant = + MusSettingsKeys::EStandard; +TBool CRepository::iEmulateSawfishRepository = EFalse; + +// STUB stuff +/* +void CCRepositoryBehaviorTls::OpenL() + { + CCRepositoryBehaviorTls* self = new (ELeave) CCRepositoryBehaviorTls(); + Dll::SetTls( self ); + + User::LeaveIfError( self->Set ( MusSettingsKeys::KActivation, + MusSettingsKeys::EAlwaysActive ) ); + User::LeaveIfError( self->Set ( MusSettingsKeys::KAuditoryNotification, + MusSettingsKeys::EAuditoryNotificationOff ) ); + User::LeaveIfError( self->Set ( MusSettingsKeys::KPopupNotification, + MusSettingsKeys::EPopupNotificationOff ) ); + User::LeaveIfError( self->Set ( MusSettingsKeys::KPopupNotificationType, + MusSettingsKeys::ENotificationTypeQueryUser ) ); + User::LeaveIfError( self->Set ( MusSettingsKeys::KEdgeDtmSupport, + MusSettingsKeys::EDtmModeNotAllowed ) ); + User::LeaveIfError( self->Set ( MusSettingsKeys::KForceInternetSignaling, + MusSettingsKeys::EFollowProfileConfiguration ) ); + User::LeaveIfError( self->Set ( MusSettingsKeys::KAutoRecord, + MusSettingsKeys::EAutoRecordOn ) ); + User::LeaveIfError( self->Set ( MusSettingsKeys::KSipProfileId, + 0 ) ); //default profile + User::LeaveIfError( self->Set ( MusSettingsKeys::KUiOrientation, + MusSettingsKeys::EPortrait ) ); + User::LeaveIfError( self->Set ( MusSettingsKeys::KCapabilityQuery, + MusSettingsKeys::ENoOptions ) ); + } + +void CCRepositoryBehaviorTls::Close () + { + CCRepositoryBehaviorTls* self = Storage(); + delete self; + Dll::SetTls( NULL ); + } + + +CCRepositoryBehaviorTls* CCRepositoryBehaviorTls::Storage() + { + return static_cast(Dll::Tls()); + } + +void CCRepositoryBehaviorTls::Reset() + { + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KActivation, + MusSettingsKeys::EAlwaysActive ) ); + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KAuditoryNotification, + MusSettingsKeys::EAuditoryNotificationOff ) ); + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KPopupNotification, + MusSettingsKeys::EPopupNotificationOff ) ); + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KPopupNotificationType, + MusSettingsKeys::ENotificationTypeQueryUser ) ); + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KEdgeDtmSupport, + MusSettingsKeys::EDtmModeNotAllowed ) ); + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KForceInternetSignaling, + MusSettingsKeys::EFollowProfileConfiguration ) ); + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KAutoRecord, + MusSettingsKeys::EAutoRecordOn ) ); + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KSipProfileId, + 0 ) ); //default profile + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KUiOrientation, + MusSettingsKeys::EPortrait ) ); + User::LeaveIfError( Storage()->Set ( MusSettingsKeys::KCapabilityQuery, + MusSettingsKeys::ENoOptions ) ); + } + +TInt CCRepositoryBehaviorTls::Set(TUint32 aKey, TInt aValue) + { + // Setting of any other value + for ( TInt i = 0; i < iKeys.Count(); ++i ) + { + if ( iKeys[i] == aKey ) + { + iValues[i] = aValue; + return KErrNone; + } + } + + // No wise error handling implemented + TInt error = iKeys.Append( aKey ); + if ( error == KErrNone ) + { + error = iValues.Append( aValue ); + } + + return error; + } + +TInt CCRepositoryBehaviorTls::Get(TUint32 aKey, TInt& aValue) + { + for ( TInt i = 0; i < iKeys.Count(); ++i ) + { + if ( iKeys[i] == aKey ) + { + aValue = iValues[i]; + return KErrNone; + } + } + + return KErrNotFound; + } + +CCRepositoryBehaviorTls::CCRepositoryBehaviorTls() + { + } + +CCRepositoryBehaviorTls::~CCRepositoryBehaviorTls() + { + iKeys.Reset(); + iValues.Reset(); + } +*/ + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C CRepository* CRepository::NewL( TUid aRepositoryUid ) + { + CRepository* self = CRepository::NewLC( aRepositoryUid ); + CleanupStack::Pop( self ); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C CRepository* CRepository::NewLC( TUid aRepositoryUid ) + { + + CRepository* self = new( ELeave ) CRepository( aRepositoryUid ); + CleanupStack::PushL( self ); + + // This UID cannot be used in normal variant + if ( aRepositoryUid == KCRUidSIPClientResolverConfig && + !iEmulateSawfishRepository ) + { + User::Leave( KErrNotFound ); + } + + // Add a few keys + if ( self->iRepositoryUid == KCRUidInCallVolume ) + { + User::LeaveIfError( self->Set ( KTelIncallEarVolume, 4 ) ); + User::LeaveIfError( self->Set ( KTelIncallLoudspeakerVolume, 4 ) ); + } +/* else if ( self->iRepositoryUid == MusSettingsKeys::KRepositoryUid ) + { + // Set default values for numeric values which are not handled by static + // variables + User::LeaveIfError( + self->Set ( MusSettingsKeys::KActivation, + MusSettingsKeys::EAlwaysActive ) ); + User::LeaveIfError( + self->Set ( MusSettingsKeys::KAuditoryNotification, + MusSettingsKeys::EAuditoryNotificationOff ) ); + User::LeaveIfError( + self->Set ( MusSettingsKeys::KPopupNotification, + MusSettingsKeys::EPopupNotificationOff ) ); + User::LeaveIfError( + self->Set ( MusSettingsKeys::KPopupNotificationType, + MusSettingsKeys::ENotificationTypeQueryUser ) ); + User::LeaveIfError( + self->Set ( MusSettingsKeys::KEdgeDtmSupport, + MusSettingsKeys::EDtmModeNotAllowed ) ); + User::LeaveIfError( + self->Set ( MusSettingsKeys::KForceInternetSignaling, + MusSettingsKeys::EFollowProfileConfiguration ) ); + User::LeaveIfError( + self->Set ( MusSettingsKeys::KAutoRecord, + MusSettingsKeys::EAutoRecordOn ) ); + User::LeaveIfError( + self->Set ( MusSettingsKeys::KSipProfileId, + 0 ) ); //default profile + User::LeaveIfError( + self->Set ( MusSettingsKeys::KUiOrientation, + MusSettingsKeys::EPortrait ) ); + User::LeaveIfError( + self->Set ( MusSettingsKeys::KCapabilityQuery, + MusSettingsKeys::ENoOptions ) ); + // No variation keys defined + } + */ + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C CRepository::~CRepository() + { +/* iKeys.Reset(); + iValues.Reset(); +*/ } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Create(TUint32 /*aKey*/, TInt /*aValue*/ ) + { + return KErrNone; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Create(TUint32 /*aKey*/, const TDesC8& /*aValue*/) + { + return KErrNone; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Delete( TUint32 /*aPartialKey*/, + TUint32 /*aMask*/, + TUint32& /*aErrorKey*/ ) + { + return KErrNone; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Get(TUint32 aKey, TInt& aValue) + { + TInt error = KErrNone; + + if ( iRepositoryUid == MusSettingsKeys::KRepositoryUid && + aKey == MusSettingsKeys::KOperatorVariant ) + { + aValue = CRepository::iOperatorVariant; + return KErrNone; + } + + CSipSseTestTls* repository = CSipSseTestTls::Storage(); + + if ( repository ) + { + error = repository->Get( aKey, aValue ); + } + else + { + error = KErrNotFound; + } + + return error; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Get(TUint32 /*aKey*/, TDes8& /*aValue*/) + { + return KErrNotSupported; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Set(TUint32 /*aKey*/, const TDesC8& /*aValue*/) + { + return KErrNotSupported; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Get(TUint32 /*aKey*/, TDes& aValue) + { + _LIT( KSampleValue, "\\data\\videos\\"); + aValue.Append( KSampleValue() ); + return KErrNone; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Set(TUint32 /*aKey*/, const TDesC& /*aValue*/) + { + return KErrNone; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::Set(TUint32 aKey, TInt aValue) + { + // Setting of operator variant value + if ( iRepositoryUid == MusSettingsKeys::KRepositoryUid && + aKey == MusSettingsKeys::KOperatorVariant ) + { + CRepository::iOperatorVariant = + ( MusSettingsKeys::TOperatorVariant ) aValue; + return KErrNone; + } +/* + // Setting of any other value + for ( TInt i = 0; i < iKeys.Count(); ++i ) + { + if ( iKeys[i] == aKey ) + { + iValues[i] = aValue; + return KErrNone; + } + } + + // No wise error handling implemented + TInt error = iKeys.Append( aKey ); + if ( error == KErrNone ) + { + error = iValues.Append( aValue ); + } + */ + TInt error = KErrNone; + //CCRepositoryBehaviorTls* repository = CCRepositoryBehaviorTls::Storage(); + CSipSseTestTls* repository = CSipSseTestTls::Storage(); + if ( repository ) + { + error = repository->Set( aKey, aValue ); + } + return error; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::FindL( TUint32 /*aPartialKey*/, + TUint32 /*aMask*/, + RArray& /*aFoundKeys*/ ) + { + return KErrNone; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::FindEqL( TUint32 /*aPartialKey*/, + TUint32 /*aMask*/, + const TDesC8& /*aValue*/, + RArray& /*aFoundKeys*/ ) + { + return KErrNone; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::StartTransaction( TTransactionMode /*aMode*/ ) + { + return KErrNone; + } + + +/// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CRepository::CommitTransaction(TUint32& /*aKeyInfo*/) + { + return KErrNone; + } + + + +// ------- Functions that are not present in real CRepository but are ---------- +// ------- defined here exclusively for stubbing purposes ---------- + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void CRepository::ResetKeysAndValues() + { + CSipSseTestTls* repository = CSipSseTestTls::Storage(); + if ( repository ) + { + repository->Reset(); + } + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +CRepository::CRepository( TUid aRepositoryUid ) + :iRepositoryUid( aRepositoryUid ) + { + } + +