phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cellulardatasettings_s60.cpp
branchRCL_3
changeset 61 41a7f70b3818
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cellulardatasettings_s60.cpp	Tue Aug 31 15:14:29 2010 +0300
@@ -0,0 +1,221 @@
+/*
+* Copyright (c) 2010 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:
+*/
+
+// System includes
+
+#include "cmmanager.h"
+
+// User includes
+
+#include "cellulardatasettings.h"
+#include "cellulardatasettings_s60_p.h"
+#include "cppluginlogging.h"
+
+// External function prototypes
+
+// Local constants
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+/*!
+    Constructor.
+*/
+
+CellularDataSettingsPrivate::CellularDataSettingsPrivate(CellularDataSettings *q_pointer) :
+    q_ptr(q_pointer)
+{
+    DPRINT;
+}
+
+/*!
+    Destructor.
+*/
+
+CellularDataSettingsPrivate::~CellularDataSettingsPrivate()
+{
+    DPRINT;
+}
+
+/*!
+    Getter for setting "Cellular data usage in home network".
+*/
+
+int CellularDataSettingsPrivate::dataUseHome()
+{
+    DPRINT << ": IN";
+    
+    int result = 0;
+
+    // Read the setting
+    TCmGenConnSettings settings;
+    readSettings(&settings);
+    
+    // Map the settings read result
+    switch (settings.iCellularDataUsageHome) {
+    case ECmCellularDataUsageAutomatic:
+        result = CellularDataSettings::DataUsageHomeAutomatic;
+        break;
+
+    case ECmCellularDataUsageConfirm:
+        result = CellularDataSettings::DataUsageHomeConfirm;
+        break;
+
+    case ECmCellularDataUsageDisabled:
+        result = CellularDataSettings::DataUsageHomeWlanOnly;
+        break;
+    }
+    
+    DPRINT << ": OUT";
+    
+    return result;
+}
+
+/*!
+    Setter for setting "Cellular data usage in home network".
+*/
+
+void CellularDataSettingsPrivate::setDataUseHome(int value)
+{
+    DPRINT << ": IN";
+    
+    TCmGenConnSettings settings;
+    
+    readSettings(&settings);    
+    switch (value) {
+    case CellularDataSettings::DataUsageHomeAutomatic:
+        settings.iCellularDataUsageHome = ECmCellularDataUsageAutomatic; 
+        break;
+
+    case CellularDataSettings::DataUsageHomeConfirm:
+        settings.iCellularDataUsageHome = ECmCellularDataUsageConfirm;
+        break;
+
+    case CellularDataSettings::DataUsageHomeWlanOnly:
+        settings.iCellularDataUsageHome = ECmCellularDataUsageDisabled;
+        break;
+    }
+    writeSettings(&settings);
+    
+    DPRINT << ": OUT";
+}
+    
+/*!
+    Getter for setting "Cellular data usage when roaming".
+*/
+
+int CellularDataSettingsPrivate::dataUseRoam()
+{
+    DPRINT << ": IN";
+    
+    int result = 0;
+
+    // Read the setting
+    TCmGenConnSettings settings;
+    readSettings(&settings);
+    
+    // Map the settings read result
+    switch (settings.iCellularDataUsageVisitor) {
+    case ECmCellularDataUsageAutomatic:
+        result = CellularDataSettings::DataUsageAbroadAutomatic;
+        break;
+        
+    case ECmCellularDataUsageConfirm:
+        result = CellularDataSettings::DataUsageAbroadConfirm;
+        break;
+        
+    case ECmCellularDataUsageDisabled:
+        result = CellularDataSettings::DataUsageAbroadWlanOnly;
+        break;
+    }
+    
+    DPRINT << ": OUT";
+    
+    return result;
+}
+
+/*!
+    Getter for setting "Cellular data usage when roaming".
+*/
+
+void CellularDataSettingsPrivate::setDataUseRoam(int value)
+{
+    DPRINT << ": IN";
+    
+    TCmGenConnSettings settings;
+    
+    readSettings(&settings);    
+    switch (value) {
+    case CellularDataSettings::DataUsageAbroadAutomatic:
+        settings.iCellularDataUsageVisitor = ECmCellularDataUsageAutomatic; 
+        break;
+
+    case CellularDataSettings::DataUsageAbroadConfirm:
+        settings.iCellularDataUsageVisitor = ECmCellularDataUsageConfirm;
+        break;
+
+    case CellularDataSettings::DataUsageAbroadWlanOnly:
+        settings.iCellularDataUsageVisitor = ECmCellularDataUsageDisabled;
+        break;
+    }
+    writeSettings(&settings);
+    
+    DPRINT << ": OUT";
+}
+
+/*!
+    Cellular data settings reading from CM Manager.
+*/
+
+void CellularDataSettingsPrivate::readSettings(TCmGenConnSettings *settings)
+{
+    DPRINT << ": IN";
+    
+    QT_TRAP_THROWING(
+        RCmManager CmManager;
+        CmManager.CreateTablesAndOpenL();
+        CleanupClosePushL(CmManager); 
+        CmManager.ReadGenConnSettingsL(*settings);
+        CleanupStack::PopAndDestroy(1));
+    
+    DPRINT << ": Read: iCellularDataUsageHome= " << settings->iCellularDataUsageHome;
+    DPRINT << ": Read: iCellularDataUsageVisitor= " << settings->iCellularDataUsageVisitor;
+    
+    DPRINT << ": OUT";
+    
+}
+
+/*!
+    Cellular data settings writing to CM Manager.
+*/
+
+void CellularDataSettingsPrivate::writeSettings(TCmGenConnSettings *settings)
+{
+    DPRINT << ": IN";
+    
+    DPRINT << ": Write: iCellularDataUsageHome= " << settings->iCellularDataUsageHome;
+    DPRINT << ": Write: iCellularDataUsageVisitor=" << settings->iCellularDataUsageVisitor;
+
+    QT_TRAP_THROWING(
+        RCmManager CmManager;
+        CmManager.CreateTablesAndOpenL();
+        CleanupClosePushL(CmManager); 
+        CmManager.WriteGenConnSettingsL(*settings);
+        CleanupStack::PopAndDestroy(1););
+    
+    DPRINT << ": OUT";
+}