mmsharing/mmshavailability/tsrc/ut_availability/Stubs/src/centralrepositorystub.cpp
changeset 22 496ad160a278
parent 0 f0cf47e981f9
--- /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<CCRepositoryBehaviorTls*>(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<TUint32>& /*aFoundKeys*/ )
+    {
+    return KErrNone;
+    }
+    
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt CRepository::FindEqL( TUint32 /*aPartialKey*/, 
+                                    TUint32 /*aMask*/,
+		                            const TDesC8& /*aValue*/, 
+		                            RArray<TUint32>& /*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 )
+    {
+    }    
+
+