uiservicetabsettings/src/cvimpstsettingsstore.cpp
changeset 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetabsettings/src/cvimpstsettingsstore.cpp	Tue Feb 02 10:12:18 2010 +0200
@@ -0,0 +1,195 @@
+/*
+* 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:  implimentation class for the settings store
+*
+*
+*/
+
+//  INCLUDES
+#include <e32std.h>
+#include "cvimpstsettingsstore.h"
+#include "cvimpstsettingscenrep.h"
+#include "cvimpstsettings.h"
+#include <centralrepository.h>
+
+//dummy serviceId, assuming the service id not more than 256. for the first time
+//and it is assumed that this service id is for initializing the cenrep keys only.
+//not updated in the service table and hence will not get a TAB in phone book
+const TInt KServiceIDOffset = 16;
+
+//================= MEMBER FUNCTIONS =======================
+// ---------------------------------------------------------
+// CVIMPSTSettingsStore::NewLC
+// 
+// ---------------------------------------------------------
+EXPORT_C MVIMPSTSettingsStore* CVIMPSTSettingsStore::NewLC()
+    {
+    CVIMPSTSettingsStore* self = new (ELeave) CVIMPSTSettingsStore( );
+    CleanupStack::PushL( self );
+    self->ConstructL( );
+    return self;
+    }
+
+
+// ---------------------------------------------------------
+// CVIMPSTSettingsStore::NewL
+// 
+// ---------------------------------------------------------
+EXPORT_C MVIMPSTSettingsStore* CVIMPSTSettingsStore::NewL()
+    {
+    MVIMPSTSettingsStore* self = CVIMPSTSettingsStore::NewLC();
+    CleanupStack::Pop( );//self
+    return self;
+    }
+    
+// ---------------------------------------------------------
+// CVIMPSTSettingsStore::Destructor
+// 
+// ---------------------------------------------------------
+CVIMPSTSettingsStore::~CVIMPSTSettingsStore()
+    {
+    if(iCenrepStore)
+        {
+        delete iCenrepStore;
+        iCenrepStore = NULL;
+        }
+    if(iSettings)
+        {
+        delete iSettings;
+        iSettings = NULL;
+        }
+    }
+
+// ---------------------------------------------------------
+// CVIMPSTSettingsStore::ConstructL
+// 
+// ---------------------------------------------------------
+
+ void CVIMPSTSettingsStore::ConstructL( )
+    {
+    iCenrepStore = CVIMPSTSettingsCenRep::NewL();
+    // Get settings from vimpstsettings store to work with   
+    iSettings = CVIMPSTSettings::NewL(); 
+    }
+ 
+
+// ---------------------------------------------------------
+// CVIMPSTSettingsStore::Get
+// 
+// ---------------------------------------------------------
+TInt CVIMPSTSettingsStore::GetL(TUint32 aServiceId, TSettingItemName aSettingItemName, TInt& aValue ) const
+    {
+    TInt maskedId = aServiceId << KServiceIDOffset ;
+    TInt retError = iCenrepStore->Repository()->Get( maskedId + aSettingItemName, aValue );
+    if( retError == KErrNotFound)
+        {
+        //if key not found, create a new key with the defualt value 0
+        aValue = 0;
+        retError = iCenrepStore->Repository()->Create( maskedId + aSettingItemName, aValue ) ;
+        }
+    return retError; // return the value : error code  
+    }
+
+// ---------------------------------------------------------
+// CVIMPSTSettingsStore::Set
+// 
+// ---------------------------------------------------------
+TInt CVIMPSTSettingsStore::SetL(TUint32 aServiceId, TSettingItemName aSettingItemName, const TInt aValue  )
+    {
+    TInt maskedId = aServiceId << KServiceIDOffset ;
+    TInt retError = iCenrepStore->Repository()->Set( maskedId + aSettingItemName, aValue );    
+    if( retError == KErrNotFound )
+        {       
+        retError = iCenrepStore->Repository()->Create( maskedId + aSettingItemName, aValue );
+        }
+    return retError; // return the value : error code  
+    }
+
+// ---------------------------------------------------------
+// CVIMPSTSettingsStore::Get
+// 
+// ---------------------------------------------------------
+
+TInt CVIMPSTSettingsStore::GetL(TUint32 aServiceId, TSettingItemName aSettingItemName, RBuf& aBuffer  ) const
+    {
+    TInt maskedId = aServiceId << KServiceIDOffset ;
+    TInt retError = iCenrepStore->Repository()->Get( maskedId + aSettingItemName, aBuffer );
+    if( retError == KErrNotFound)
+        {
+        aBuffer = _L(" ");
+        retError = iCenrepStore->Repository()->Create( maskedId + aSettingItemName, aBuffer ) ;
+        }
+    return retError;     // return the value : error code  
+    }
+
+// ---------------------------------------------------------
+// CVIMPSTSettingsStore::Set
+// 
+// ---------------------------------------------------------
+
+TInt CVIMPSTSettingsStore::SetL(TUint32 aServiceId, TSettingItemName aSettingItemName, const TDesC& aBuffer  )
+    {
+    TInt maskedId = aServiceId << KServiceIDOffset ;
+    TInt retError = iCenrepStore->Repository()->Set( maskedId + aSettingItemName, aBuffer );
+    if( retError == KErrNotFound)
+        {        
+        retError = iCenrepStore->Repository()->Create( maskedId + aSettingItemName, aBuffer );
+        }
+    return retError;  // return the value : error code  
+    }
+
+// -----------------------------------------------------------------------------------------------------------
+// CVIMPSTSettingsStore::GetL
+// 
+// ------------------------------------------------------------------------------------------------------------
+
+TInt CVIMPSTSettingsStore::GetL(TUint32 aServiceId, TSettingItemName aSettingItemName, RBuf8& aBuffer  ) const
+    {
+    TInt maskedId = aServiceId << KServiceIDOffset ;
+    TInt retError = iCenrepStore->Repository()->Get( maskedId + aSettingItemName, aBuffer );
+    if( retError == KErrNotFound)
+        { 
+        // if not found set return value to null descriptor and create in the cenrep
+        aBuffer = _L8("");
+        retError = iCenrepStore->Repository()->Create( maskedId + aSettingItemName, aBuffer  ) ;  
+        }
+    return retError; // return the value : error code  
+    }
+
+// --------------------------------------------------------------------------------------------------
+// CVIMPSTSettingsStore::SetL
+// 
+// ---------------------------------------------------------------------------------------------------
+
+TInt CVIMPSTSettingsStore::SetL(TUint32 aServiceId, TSettingItemName aSettingItemName, const TDesC8& aBuffer  )
+    {
+    TInt maskedId = aServiceId << KServiceIDOffset ;
+    TInt retError = iCenrepStore->Repository()->Set( maskedId + aSettingItemName, aBuffer );
+    if( retError == KErrNotFound)
+        { // if not found create  
+        retError = iCenrepStore->Repository()->Create( maskedId + aSettingItemName, aBuffer );
+        }
+    return retError; // return the value : Error code
+    }
+
+// ---------------------------------------------------------------------------------------------------
+// CVIMPSTSettingsStore::GetSAPL
+// 
+// ----------------------------------------------------------------------------------------------------
+void CVIMPSTSettingsStore::GetSAPL( TUint32 aServiceId, CVIMPSTSettings* aSettings )
+    {
+    iCenrepStore->GetSettingsL( aServiceId, aSettings );
+    }
+
+//End of file