phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cellulardatasettings_s60.cpp
--- /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";
+}