diff -r 3ce708148e4d -r 4490afcb47b1 omadm/omadmextensions/adapters/globalwlansettings/src/globalwlanadapter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadm/omadmextensions/adapters/globalwlansettings/src/globalwlanadapter.cpp Thu Jan 07 12:39:15 2010 +0200 @@ -0,0 +1,2998 @@ +/* +* Copyright (c) 2008 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: Global WLAN settings Adapter +* +*/ + + + +#include "globalwlanadapter.h" +#include "nsmldebug.h" +#include // For TImplementationProxy definition +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +#ifndef __WINS__ +// This lowers the unnecessary compiler warning (armv5) to remark. +// "Warning: #174-D: expression has no effect..." is caused by +// DBG_ARGS8 macro in no-debug builds. +#pragma diag_remark 174 +#endif + + +//------------------------------------------------------------------------------ +// +//------------------------------------------------------------------------------ +const TImplementationProxy ImplementationTable[] = + { + IMPLEMENTATION_PROXY_ENTRY(0x1315DBE, CGlobalWLANAdapter::NewL) + }; + +//------------------------------------------------------------------------------ +// TImplementationProxy* ImplementationGroupProxy() +//------------------------------------------------------------------------------ +EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount ) + { + _DBG_FILE("ImplementationGroupProxy() for CGlobalWLANAdapter: begin"); + + aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); + + _DBG_FILE("ImplementationGroupProxy() for CGlobalWLANAdapter: end"); + return ImplementationTable; + } + + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::NewL( ) +//----------------------------------------------------------------------------- +CGlobalWLANAdapter* CGlobalWLANAdapter::NewL( MSmlDmCallback* aDmCallback ) + { + _DBG_FILE("CGlobalWLANAdapter::NewL(): begin"); + + CGlobalWLANAdapter* self = NewLC( aDmCallback ); + CleanupStack::Pop( self ); + + _DBG_FILE("CGlobalWLANAdapter::NewL(): end"); + return self; + } + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::NewLC( ) +//----------------------------------------------------------------------------- +CGlobalWLANAdapter* CGlobalWLANAdapter::NewLC( MSmlDmCallback* aDmCallback ) + { + _DBG_FILE("CGlobalWLANAdapter::NewLC(): begin"); + + CGlobalWLANAdapter* self = new(ELeave) CGlobalWLANAdapter(aDmCallback); + CleanupStack::PushL( self ); + + self->iCallBack = aDmCallback; + _DBG_FILE("CGlobalWLANAdapter::NewLC(): call constructL"); + self->ConstructL( ); + + _DBG_FILE("CGlobalWLANAdapter::NewLC(): end"); + return self; + } + +//----------------------------------------------------------------------------- +// void CGlobalWLAdapter::ConstructL( ) +// Second phase constructor +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::ConstructL( ) + { + _DBG_FILE("CGlobalWLANAdapter::ConstructL(): begin"); + + // checks if Wlan feature is supported + FeatureManager::InitializeLibL(); + iWlanSupported = FeatureManager::FeatureSupported( KFeatureIdProtocolWlan ); + FeatureManager::UnInitializeLib(); + + iWriteSettings = new(ELeave) TGlobalSettings; + iReadSettings = new(ELeave) TGlobalSettings; + iReadStatuses = new(ELeave) TStatusResult; + iWriteStatuses = new(ELeave) TStatusResult; + + // set "present" variables to false, since symbian inits thems as true + InitMemberVariables(); + + _DBG_FILE("CGlobalWLANAdapter::ConstructL(): end"); + } + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter::CGlobalWLANAdapter( ) +// Constructor +//----------------------------------------------------------------------------- +CGlobalWLANAdapter::CGlobalWLANAdapter( TAny* aEcomArguments ) + : CSmlDmAdapter(aEcomArguments) + { + _DBG_FILE("CGlobalWLANAdapter::CGlobalWLANAdapter(): begin"); + _DBG_FILE("CGlobalWLANAdapter::CGlobalWLANAdapter(): end"); + } + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter::~CGlobalWLANAdapter( ) +// Destructor +//----------------------------------------------------------------------------- +CGlobalWLANAdapter::~CGlobalWLANAdapter( ) + { + _DBG_FILE("CGlobalWLANAdapter::~CGlobalWLANAdapter(): begin"); + + delete iWriteSettings; + delete iReadSettings; + delete iReadStatuses; + delete iWriteStatuses; + + _DBG_FILE("CGlobalWLANAdapter::~CGlobalWLANAdapter(): end"); + } + + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::DDFVersionL( CBufBase& aDDFVersion ) +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::DDFVersionL( CBufBase& aDDFVersion ) + { + _DBG_FILE("CGlobalWLANAdapter::DDFVersionL(): begin"); + + aDDFVersion.InsertL( 0, KNSmGlobalWlanAdapterDDFversion ); + + _DBG_FILE("CGlobalWLANAdapter::DDFVersionL(): end"); + } + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::DDFStructureL( MSmlDmDDFObject& aDDF ) +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::DDFStructureL( MSmlDmDDFObject& aDDF ) + { + _DBG_FILE("CGlobalWLANAdapter::DDFStructureL(): begin"); + if( !iWlanSupported ) + { + _DBG_FILE("CGlobalWLANAdapter::DDFStructureL(): WLAN not supported."); + return; + } +// +// Set Get, add and replace as acceptable operations +// + + TSmlDmAccessTypes accessTypesGetAddReplace; + accessTypesGetAddReplace.SetAdd(); + accessTypesGetAddReplace.SetGet(); + accessTypesGetAddReplace.SetReplace(); + + //WLAN + MSmlDmDDFObject& rootWLan = aDDF.AddChildObjectL( KNSmlWLan ); + FillNodeInfoL( rootWLan, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::ENode, + KNSmlEmpty ); + + //WLAN/InternetConnectivityTest + MSmlDmDDFObject& internetConnectivityTest = rootWLan.AddChildObjectL( KNSmlWLanInternetConnectivityTest ); + FillNodeInfoL( internetConnectivityTest, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/UseDefaultSettings + MSmlDmDDFObject& useDefaultSettings = rootWLan.AddChildObjectL( KNSmlWLanUseDefaultSettings ); + FillNodeInfoL( useDefaultSettings, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EBool, + KNSmlEmpty ); + + //WLAN/LongRetryLimit + MSmlDmDDFObject& longRetryLimit = rootWLan.AddChildObjectL( KNSmlWLanLongRetryLimit ); + FillNodeInfoL( longRetryLimit, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/ShortRetryLimit + MSmlDmDDFObject& shortRetryLimit = rootWLan.AddChildObjectL( KNSmlWLanShortRetryLimit ); + FillNodeInfoL( shortRetryLimit, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + + //WLAN/RTSThreshold + MSmlDmDDFObject& RTSThreshold = rootWLan.AddChildObjectL( KNSmlWLanRTSThreshold ); + FillNodeInfoL( RTSThreshold, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/TXPowerLevel + MSmlDmDDFObject& TXPowerLevel = rootWLan.AddChildObjectL( KNSmlWLanTXPowerLevel ); + FillNodeInfoL( TXPowerLevel, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/PowerSaving + MSmlDmDDFObject& powerSaving = rootWLan.AddChildObjectL( KNSmlWLanPowerSaving ); + FillNodeInfoL( powerSaving, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EBool, + KNSmlEmpty ); + + //WLAN/BackgroundScanInterval + MSmlDmDDFObject& backgroundScanInterval = rootWLan.AddChildObjectL( KNSmlWLanBackgroundScanInterval ); + FillNodeInfoL( backgroundScanInterval, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/ScanRate + MSmlDmDDFObject& scanRate = rootWLan.AddChildObjectL( KNSmlWLanScanRate ); + FillNodeInfoL( scanRate, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/RCPITrigger + MSmlDmDDFObject& RCPITrigger = rootWLan.AddChildObjectL( KNSmlWLanRCPITrigger ); + FillNodeInfoL( RCPITrigger, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/MinActiveChannelTime + MSmlDmDDFObject& minActiveChannelTime = rootWLan.AddChildObjectL( KNSmlWLanMinActiveChannelTime ); + FillNodeInfoL( minActiveChannelTime, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/MaxActiveChannelTime + MSmlDmDDFObject& maxActiveChannelTime = rootWLan.AddChildObjectL( KNSmlWLanMaxActiveChannelTime ); + FillNodeInfoL( maxActiveChannelTime, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/MaxTxMSDULifeTime + MSmlDmDDFObject& maxTxMSDULifeTime = rootWLan.AddChildObjectL( KNSmlWLanMaxTxMSDULifeTime ); + FillNodeInfoL( maxTxMSDULifeTime, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/ScanExpirationTimer + MSmlDmDDFObject& scanExpirationTimer = rootWLan.AddChildObjectL( KNSmlWLanScanExpirationTimer ); + FillNodeInfoL( scanExpirationTimer, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/UnloadDriverTimer + MSmlDmDDFObject& unloadDriverTimer = rootWLan.AddChildObjectL( KNSmlWLanUnloadDriverTimer ); + FillNodeInfoL( unloadDriverTimer, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/RoamTimer + MSmlDmDDFObject& roamTimer = rootWLan.AddChildObjectL( KNSmlWLanRoamTimer ); + FillNodeInfoL( roamTimer, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/KNSmlWLanRCPIDifference + MSmlDmDDFObject& RCPIDifference = rootWLan.AddChildObjectL( KNSmlWLanRCPIDifference ); + FillNodeInfoL( RCPIDifference, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/ConnRegainTimer + MSmlDmDDFObject& connRegainTimer = rootWLan.AddChildObjectL( KNSmlWLanConnRegainTimer ); + FillNodeInfoL( connRegainTimer, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/MaxTriesToFindNw + MSmlDmDDFObject& maxTriesToFindNw = rootWLan.AddChildObjectL( KNSmlWLanMaxTriesToFindNw ); + FillNodeInfoL( maxTriesToFindNw, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/DelayBetweenFindNw + MSmlDmDDFObject& delayBetweenFindNw = rootWLan.AddChildObjectL( KNSmlWLanDelayBetweenFindNw ); + FillNodeInfoL( delayBetweenFindNw, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/AllowRadioMeasurements + MSmlDmDDFObject& allowRadioMeasurements = rootWLan.AddChildObjectL( KNSmlWLanAllowRadioMeasurements ); + FillNodeInfoL( allowRadioMeasurements, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EBool, + KNSmlEmpty ); + + //WLAN/MinPassiveChannelTime + MSmlDmDDFObject& minPassiveChannelTime = rootWLan.AddChildObjectL( KNSmlWLanMinPassiveChannelTime ); + FillNodeInfoL( minPassiveChannelTime, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/MaxPassiveChannelTime + MSmlDmDDFObject& maxPassiveChannelTime = rootWLan.AddChildObjectL( KNSmlWLanMaxPassiveChannelTime ); + FillNodeInfoL( maxPassiveChannelTime, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/MaxApFailureCount + MSmlDmDDFObject& maxApFailureCount = rootWLan.AddChildObjectL( KNSmlWLanMaxApFailureCount ); + FillNodeInfoL( maxApFailureCount, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/LongBeaconFindCount + MSmlDmDDFObject& longBeaconFindCount = rootWLan.AddChildObjectL( KNSmlWLanLongBeaconFindCount ); + FillNodeInfoL( longBeaconFindCount, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/QosNullFrameInterval + MSmlDmDDFObject& qosNullFrameInterval = rootWLan.AddChildObjectL( KNSmlWLanQosNullFrameInterval ); + FillNodeInfoL( qosNullFrameInterval, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/QosNullFrameTimeout + MSmlDmDDFObject& qosNullFrameTimeout = rootWLan.AddChildObjectL( KNSmlWLanQosNullFrameTimeout ); + FillNodeInfoL( qosNullFrameTimeout, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + //WLAN/MTU + MSmlDmDDFObject& MTU = rootWLan.AddChildObjectL( KNSmlWLanMTU ); + FillNodeInfoL( MTU, + accessTypesGetAddReplace, + MSmlDmDDFObject::EZeroOrOne, + MSmlDmDDFObject::EDynamic, + MSmlDmDDFObject::EInt, + KNSmlEmpty ); + + + _DBG_FILE("CGlobalWLANAdapter::DDFStructureL(): end"); + } + + + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::AddLeafObjectL( const TDesC& aURI,const +// TDesC& aParentLUID, const TDesC8& aObject, const TDesC& aType, +// const TInt aStatusRef ) +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::AddLeafObjectL( const TDesC8& aURI, + const TDesC8& aParentLUID, + const TDesC8& aObject, + const TDesC8& /*aType*/, + const TInt aStatusRef ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL - <%S> <%S>"), &aURI, &aParentLUID ); + + // Get the last uri segment and the number of uri items in the input + TInt uriSegs = NumOfUriSegs( aURI ); + TInt err(KErrNone); + TPtrC8 lastUriSeg = GetLastUriSeg( aURI ); + + //************************************************************************** + // Check which leaf is in question + //************************************************************************** + if( aURI.Match( _L8("WLAN/*" ) ) != KErrNotFound && uriSegs==2 ) + { + // ***************************************************************** + if( lastUriSeg.Match( KNSmlWLanInternetConnectivityTest ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->internetConnectivityTest = err; + iWriteSettings->internetConnectivityTestPresent = ETrue; + iWriteStatuses->internetConnectivityTestStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanUseDefaultSettings ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + if( aObject.MatchF( _L8("True")) != KErrNotFound || + aObject.MatchF( _L8("true")) != KErrNotFound ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + iWriteSettings->useDefaultSettings = ETrue; + iWriteSettings->useDefaultSettingsPresent = ETrue; + iWriteStatuses->useDefaultSettingsStatus = aStatusRef; + } + else if ( aObject.MatchF( _L8("False")) != KErrNotFound || + aObject.MatchF( _L8("false")) != KErrNotFound ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + iWriteSettings->useDefaultSettings = EFalse; + iWriteSettings->useDefaultSettingsPresent = ETrue; + iWriteStatuses->useDefaultSettingsStatus = aStatusRef; + } + else + { + err = KErrArgument; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanLongRetryLimit ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->longRetryLimit = err; + iWriteSettings->longRetryLimitPresent = ETrue; + iWriteStatuses->longRetryLimitStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanShortRetryLimit ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->shortRetryLimit = err; + iWriteSettings->shortRetryLimitPresent = ETrue; + iWriteStatuses->shortRetryLimitStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanRTSThreshold ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->RTSThreshold = err; + iWriteSettings->RTSThresholdPresent = ETrue; + iWriteStatuses->RTSThresholdStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanTXPowerLevel ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + //store the parameter + err = DesToInt( aObject ); + if ( err >= 0) + { + iWriteSettings->TXPowerLevel = err; + iWriteSettings->TXPowerLevelPresent = ETrue; + iWriteStatuses->TXPowerLevelStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanPowerSaving ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + if( aObject.MatchF( _L8("True")) != KErrNotFound || + aObject.MatchF( _L8("true")) != KErrNotFound ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + iWriteSettings->powerSaving = ETrue; + iWriteSettings->powerSavingPresent = ETrue; + iWriteStatuses->powerSavingStatus = aStatusRef; + } + else if ( aObject.MatchF( _L8("False")) != KErrNotFound || + aObject.MatchF( _L8("false")) != KErrNotFound ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + iWriteSettings->powerSaving = EFalse; + iWriteSettings->powerSavingPresent = ETrue; + iWriteStatuses->powerSavingStatus = aStatusRef; + } + else + { + err = KErrArgument; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanBackgroundScanInterval ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->backgroundScanInterval = err; + iWriteSettings->backgroundScanIntervalPresent = ETrue; + iWriteStatuses->backgroundScanIntervalStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanScanRate ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->scanRate = err; + iWriteSettings->scanRatePresent = ETrue; + iWriteStatuses->scanRateStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanRCPITrigger ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0) + { + iWriteSettings->RCPITrigger = err; + iWriteSettings->RCPITriggerPresent = ETrue; + iWriteStatuses->RCPITriggerStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMinActiveChannelTime ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->minActiveChannelTime = err; + iWriteSettings->minActiveChannelTimePresent = ETrue; + iWriteStatuses->minActiveChannelTimeStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxActiveChannelTime ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0) + { + iWriteSettings->maxActiveChannelTime = err; + iWriteSettings->maxActiveChannelTimePresent = ETrue; + iWriteStatuses->maxActiveChannelTimeStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxTxMSDULifeTime ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->maxTxMSDULifeTime = err; + iWriteSettings->maxTxMSDULifeTimePresent = ETrue; + iWriteStatuses->maxTxMSDULifeTimeStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanScanExpirationTimer ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->scanExpirationTimer = err; + iWriteSettings->scanExpirationTimerPresent = ETrue; + iWriteStatuses->scanExpirationTimerStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanUnloadDriverTimer ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->unloadDriverTimer = err; + iWriteSettings->unloadDriverTimerPresent = ETrue; + iWriteStatuses->unloadDriverTimerStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanRoamTimer ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->roamTimer = err; + iWriteSettings->roamTimerPresent = ETrue; + iWriteStatuses->roamTimerStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanRCPIDifference ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->RCPIDifference = err; + iWriteSettings->RCPIDifferencePresent = ETrue; + iWriteStatuses->RCPIDifferenceStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanConnRegainTimer ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->connRegainTimer = err; + iWriteSettings->connRegainTimerPresent = ETrue; + iWriteStatuses->connRegainTimerStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxTriesToFindNw ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0) + { + iWriteSettings->maxTriesToFindNw = err; + iWriteSettings->maxTriesToFindNwPresent = ETrue; + iWriteStatuses->maxTriesToFindNwStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanDelayBetweenFindNw ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->delayBetweenFindNw = err; + iWriteSettings->delayBetweenFindNwPresent = ETrue; + iWriteStatuses->delayBetweenFindNwStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanAllowRadioMeasurements ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + if( aObject.MatchF( _L8("True")) != KErrNotFound || + aObject.MatchF( _L8("true")) != KErrNotFound ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + iWriteSettings->allowRadioMeasurements = ETrue; + iWriteSettings->allowRadioMeasurementsPresent = ETrue; + iWriteStatuses->allowRadioMeasurementsStatus = aStatusRef; + } + else if ( aObject.MatchF( _L8("False")) != KErrNotFound || + aObject.MatchF( _L8("false")) != KErrNotFound ) + { + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + iWriteSettings->allowRadioMeasurements = EFalse; + iWriteSettings->allowRadioMeasurementsPresent = ETrue; + iWriteStatuses->allowRadioMeasurementsStatus = aStatusRef; + } + else + { + err = KErrArgument; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMinPassiveChannelTime ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->minPassiveChannelTime = err; + iWriteSettings->minPassiveChannelTimePresent = ETrue; + iWriteStatuses->minPassiveChannelTimeStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxPassiveChannelTime ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->maxPassiveChannelTime = err; + iWriteSettings->maxPassiveChannelTimePresent = ETrue; + iWriteStatuses->maxPassiveChannelTimeStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxApFailureCount ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->maxApFailureCount = err; + iWriteSettings->maxApFailureCountPresent = ETrue; + iWriteStatuses->maxApFailureCountStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanLongBeaconFindCount ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->longBeaconFindCount = err; + iWriteSettings->longBeaconFindCountPresent = ETrue; + iWriteStatuses->longBeaconFindCountStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanQosNullFrameInterval ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->qosNullFrameInterval = err; + iWriteSettings->qosNullFrameIntervalPresent = ETrue; + iWriteStatuses->qosNullFrameIntervalStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanQosNullFrameTimeout ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->qosNullFrameTimeout = err; + iWriteSettings->qosNullFrameTimeoutPresent = ETrue; + iWriteStatuses->qosNullFrameTimeoutStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMTU ) != KErrNotFound ) + { + // check whether input is of legal size + if ( aObject.Size() <= KInputMaxLength ) + { + //store the parameter + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddLeafObjectL, add leaf - <%S>"), &aURI ); + err = DesToInt( aObject ); + if ( err >= 0 ) + { + iWriteSettings->MTU = err; + iWriteSettings->MTUPresent = ETrue; + iWriteStatuses->MTUStatus = aStatusRef; + err = KErrNone; + } + } + else + { + err = KErrTooBig; + } + } + // ***************************************************************** + // The given leaf was not found + else + { + err = KErrNotFound; + } + } + else + { + // Something went wrong + _DBG_FILE("CGlobalWLANAdapter::AddLeafObjectL(): Leaf addition failed"); + err = KErrGeneral; + } + + // Update the possible failure to the status, success is updated when the + // actual writing to db is done + switch ( err ) + { + case KErrTooBig: + iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::ETooLargeObject ); + break; + + case KErrNotFound: + iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject ); + break; + + case KErrGeneral: + iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError ); + break; + + case KErrArgument: + iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject ); + break; + + case KErrOverflow: + iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EInvalidObject ); + break; + } + + _DBG_FILE("CGlobalWLANAdapter::AddLeafObjectL(): end"); + } + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::UpdateLeafObjectL( const TDesC& aURI, +// const TDesC& aLUID, const TDesC8& aObject, const TDesC& aType, +// const TInt aStatusRef ) +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::UpdateLeafObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& aObject, + const TDesC8& aType, + const TInt aStatusRef ) + { + _DBG_FILE("CGlobalWLANAdapter::UpdateLeafObjectL(): begin"); + DBG_ARGS8(_S8("CGlobalWLANAdapter::UpdateLeafObjectL - <%S> <%S>"), &aURI, &aLUID ); + + AddLeafObjectL( aURI, aLUID, aObject, aType, aStatusRef ); + + _DBG_FILE("CGlobalWLANAdapter::UpdateLeafObjectL(): end"); + } + +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::UpdateLeafObjectL( const TDesC8& aURI, +// const TDesC8& aLUID, const TDesC8& aObject, const TDesC8& aType ) +// Not supported +//------------------------------------------------------------------------------ + +void CGlobalWLANAdapter::UpdateLeafObjectL( const TDesC8& /*aURI*/, + const TDesC8& /*aLUID*/, + RWriteStream*& /*aStream*/, + const TDesC8& /*aType*/, + TInt aStatusRef ) + { + _DBG_FILE("CGlobalWLANAdapter::UpdateLeafObjectL(): streaming: begin"); + + iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError); + + _DBG_FILE("CGlobalWLANAdapter::UpdateLeafObjectL() streaming: end"); + } + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::DeleteObjectL( const TDesC8& aURI, +// const TDesC8& aLUID, const TInt aStatusRef ) +// Not supported +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::DeleteObjectL( const TDesC8& /*aURI*/, + const TDesC8& /*aLUID*/, + const TInt aStatusRef ) + { + _DBG_FILE("CGlobalWLANAdapter::DeleteObjectL(): begin"); + + iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError); + + _DBG_FILE("CGlobalWLANAdapter::DeleteObjectL(): end"); + } + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, +// const TDesC8& aLUID, const TDesC8& aType, +// const TInt aResultsRef, const TInt aStatusRef ) +// not supported +//----------------------------------------------------------------------------- + +void CGlobalWLANAdapter::FetchLeafObjectSizeL( const TDesC8& /*aURI*/, + const TDesC8& /*aLUID*/, + const TDesC8& /*aType*/, + TInt /*aResultsRef*/, + TInt /*aStatusRef*/ ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectSizeL(): begin"); + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectSizeL(): end"); + return; + } + + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::FetchLeafObjectL( const TDesC8& aURI, +// const TDesC8& aLUID, const TDesC8& aType, +// const TInt aResultsRef, const TInt aStatusRef ) +// +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::FetchLeafObjectL( const TDesC8& aURI, + const TDesC8& aLUID, + const TDesC8& /*aType*/, + const TInt aResultsRef, + const TInt aStatusRef ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): begin"); + DBG_ARGS8(_S8("Fetch aURI - %S - %S"), &aURI, &aLUID); + + // Store the required parameters into the struct. Actual reading will be done in + // when CompleteOutstandingCommands is called + + // Get the last uri segment + TPtrC8 lastUriSeg = GetLastUriSeg( aURI ); + DBG_ARGS8(_S8("Fetch leaf, lasturiseg - %S"), &lastUriSeg); + + //************************************************************************** + // Check which leaf is in question + //************************************************************************** + if( aURI.Match( _L8("WLAN/*" ) ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): WLAN/* found in uri"); + // ***************************************************************** + if( lastUriSeg.Match( KNSmlWLanInternetConnectivityTest ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->internetConnectivityTestPresent = ETrue; + iReadStatuses->internetConnectivityTestResult = aResultsRef; + iReadStatuses->internetConnectivityTestStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanUseDefaultSettings ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->useDefaultSettingsPresent = ETrue; + iReadStatuses->useDefaultSettingsResult = aResultsRef; + iReadStatuses->useDefaultSettingsStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanLongRetryLimit ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->longRetryLimitPresent = ETrue; + iReadStatuses->longRetryLimitResult = aResultsRef; + iReadStatuses->longRetryLimitStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanShortRetryLimit ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->shortRetryLimitPresent = ETrue; + iReadStatuses->shortRetryLimitResult = aResultsRef; + iReadStatuses->shortRetryLimitStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanRTSThreshold ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->RTSThresholdPresent = ETrue; + iReadStatuses->RTSThresholdResult = aResultsRef; + iReadStatuses->RTSThresholdStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanTXPowerLevel ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->TXPowerLevelPresent = ETrue; + iReadStatuses->TXPowerLevelResult = aResultsRef; + iReadStatuses->TXPowerLevelStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanPowerSaving ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->powerSavingPresent = ETrue; + iReadStatuses->powerSavingResult = aResultsRef; + iReadStatuses->powerSavingStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanBackgroundScanInterval ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->backgroundScanIntervalPresent = ETrue; + iReadStatuses->backgroundScanIntervalResult = aResultsRef; + iReadStatuses->backgroundScanIntervalStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanScanRate ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->scanRatePresent = ETrue; + iReadStatuses->scanRateResult = aResultsRef; + iReadStatuses->scanRateStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanRCPITrigger ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->RCPITriggerPresent = ETrue; + iReadStatuses->RCPITriggerResult = aResultsRef; + iReadStatuses->RCPITriggerStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMinActiveChannelTime ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->minActiveChannelTimePresent = ETrue; + iReadStatuses->minActiveChannelTimeResult = aResultsRef; + iReadStatuses->minActiveChannelTimeStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxActiveChannelTime ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->maxActiveChannelTimePresent = ETrue; + iReadStatuses->maxActiveChannelTimeResult = aResultsRef; + iReadStatuses->maxActiveChannelTimeStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxTxMSDULifeTime ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->maxTxMSDULifeTimePresent = ETrue; + iReadStatuses->maxTxMSDULifeTimeResult = aResultsRef; + iReadStatuses->maxTxMSDULifeTimeStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanScanExpirationTimer ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->scanExpirationTimerPresent = ETrue; + iReadStatuses->scanExpirationTimerResult = aResultsRef; + iReadStatuses->scanExpirationTimerStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanUnloadDriverTimer ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->unloadDriverTimerPresent = ETrue; + iReadStatuses->unloadDriverTimerResult = aResultsRef; + iReadStatuses->unloadDriverTimerStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanRoamTimer ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->roamTimerPresent = ETrue; + iReadStatuses->roamTimerResult = aResultsRef; + iReadStatuses->roamTimerStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanRCPIDifference ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->RCPIDifferencePresent = ETrue; + iReadStatuses->RCPIDifferenceResult = aResultsRef; + iReadStatuses->RCPIDifferenceStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanConnRegainTimer ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->connRegainTimerPresent = ETrue; + iReadStatuses->connRegainTimerResult = aResultsRef; + iReadStatuses->connRegainTimerStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxTriesToFindNw ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->maxTriesToFindNwPresent = ETrue; + iReadStatuses->maxTriesToFindNwResult = aResultsRef; + iReadStatuses->maxTriesToFindNwStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanDelayBetweenFindNw ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->delayBetweenFindNwPresent = ETrue; + iReadStatuses->delayBetweenFindNwResult = aResultsRef; + iReadStatuses->delayBetweenFindNwStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanAllowRadioMeasurements ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->allowRadioMeasurementsPresent = ETrue; + iReadStatuses->allowRadioMeasurementsResult = aResultsRef; + iReadStatuses->allowRadioMeasurementsStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMinPassiveChannelTime ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->minPassiveChannelTimePresent = ETrue; + iReadStatuses->minPassiveChannelTimeResult = aResultsRef; + iReadStatuses->minPassiveChannelTimeStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxPassiveChannelTime ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->maxPassiveChannelTimePresent = ETrue; + iReadStatuses->maxPassiveChannelTimeResult = aResultsRef; + iReadStatuses->maxPassiveChannelTimeStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMaxApFailureCount ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->maxApFailureCountPresent = ETrue; + iReadStatuses->maxApFailureCountResult = aResultsRef; + iReadStatuses->maxApFailureCountStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanLongBeaconFindCount ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->longBeaconFindCountPresent = ETrue; + iReadStatuses->longBeaconFindCountResult = aResultsRef; + iReadStatuses->longBeaconFindCountStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanQosNullFrameInterval ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->qosNullFrameIntervalPresent = ETrue; + iReadStatuses->qosNullFrameIntervalResult = aResultsRef; + iReadStatuses->qosNullFrameIntervalStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanQosNullFrameTimeout ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->qosNullFrameTimeoutPresent = ETrue; + iReadStatuses->qosNullFrameTimeoutResult = aResultsRef; + iReadStatuses->qosNullFrameTimeoutStatus = aStatusRef; + } + + // ***************************************************************** + else if( lastUriSeg.Match( KNSmlWLanMTU ) != KErrNotFound ) + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): leaf"); + iReadSettings->MTUPresent = ETrue; + iReadStatuses->MTUResult = aResultsRef; + iReadStatuses->MTUStatus = aStatusRef; + } + + // ***************************************************************** + // The given leaf was not found + else + { + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): No matchin leaf was found"); + iCallBack->SetStatusL(aStatusRef, ENotFound); + } + } + else + { + // Something went wrong + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): No matchin node was found"); + iCallBack->SetStatusL(aStatusRef, EInvalidObject); + } + + _DBG_FILE("CGlobalWLANAdapter::FetchLeafObjectL(): end"); + + } + + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::ChildURIListL( const TDesC& aURI, +// const TDesC& aLUID, const CArrayFix& aPreviousURISegmentList, +// const TInt aResultsRef, const TInt aStatusRef ) +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::ChildURIListL( const TDesC8& aURI, + const TDesC8& /*aLUID*/, + const CArrayFix& /*aPreviousURISegmentList*/, + const TInt aResultsRef, + const TInt aStatusRef ) + { + _DBG_FILE("CGlobalWLANAdapter::ChildURIListL(): begin"); + DBG_ARGS8(_S8("globalwlanadapter::ChildUriList - <%S>"), &aURI ); + + CBufBase* currentUriSegmentList = CBufFlat::NewL( KUriSegListLength ); + CleanupStack::PushL( currentUriSegmentList ); + TEntry currentEntry; + TInt uriSegs = NumOfUriSegs( aURI ); + + // Check whether WLAN node in question + if ( aURI.Match(_L8("WLAN" ))!= KErrNotFound && uriSegs == 1 ) + { + _DBG_FILE("CGlobalWLANAdapter::ChildURIListL(): WLAN"); + currentUriSegmentList->InsertL( 0, KNSmlWLanNode ); + iCallBack->SetResultsL( aResultsRef, *currentUriSegmentList, KNullDesC8 ); + iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EOk ); + _DBG_FILE("CGlobalWLANAdapter::ChildURIListL(): WLAN leafs returned"); + } + + // Some illegal node/leaf in question + else + { + iCallBack->SetStatusL(aStatusRef,CSmlDmAdapter::ENotFound); + _DBG_FILE("CNSmlInternetAdapter::ChildURIListL(): ENotFound end"); + } + + // delete the list + CleanupStack::PopAndDestroy( currentUriSegmentList ); + _DBG_FILE("CGlobalWLANAdapter::ChildURIListL(): end"); + } + +//----------------------------------------------------------------------------- +// void CGlobalWLANAdapter::AddNodeObjectL( const TDesC& aURI, const TDesC& aParentLUID, +// const TInt aStatusRef ) +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::AddNodeObjectL( const TDesC8& aURI, + const TDesC8& aParentLUID, + const TInt aStatusRef ) + { + + DBG_ARGS8(_S8("CGlobalWLANAdapter::AddNodeObjectL - uri: <%S> to aParentLuid: <%S>"), + &aURI, &aParentLUID ); + + TInt uriSegs = NumOfUriSegs( aURI ); + + // The only node is WLAN, lets check if that is in question + if( aURI.Match( _L8("WLAN" ) ) != KErrNotFound && uriSegs==1 ) + { + // No actions needed, the table is created and filled in the + // Execution function. + iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError); + } + + _DBG_FILE("CGlobalWLANAdapter::AddNodeObjectL(): end"); + } + +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::ExecuteCommandL +// not supported +//------------------------------------------------------------------------------ +void CGlobalWLANAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, + const TDesC8& /*aLUID*/, + const TDesC8& /*aArgument*/, + const TDesC8& /*aType*/, + TInt aStatusRef ) + { + _DBG_FILE("CGlobalWLANAdapter::ExecuteCommandL(): begin"); + + iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError); + + _DBG_FILE("CGlobalWLANAdapter::ExecuteCommandL(): end"); + } + +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::ExecuteCommandL ( .. RWriteStream ..) +// not supported +//------------------------------------------------------------------------------ +void CGlobalWLANAdapter::ExecuteCommandL( const TDesC8& /*aURI*/, + const TDesC8& /*aLUID*/, + RWriteStream*& /*aStream*/, + const TDesC8& /*aType*/, + TInt aStatusref ) + { + _DBG_FILE("CGlobalWLANAdapter::ExecuteCommandL(): begin"); + + iCallBack->SetStatusL( aStatusref, CSmlDmAdapter::EError ); + + _DBG_FILE("CGlobalWLANAdapter::ExecuteCommandL(): end"); + } + +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::CopyCommandL +// not supported +//------------------------------------------------------------------------------ +void CGlobalWLANAdapter::CopyCommandL( const TDesC8& /*aTargetURI*/, + const TDesC8& /*aTargetLUID*/, + const TDesC8& /* aSourceURI*/, + const TDesC8& /*aSourceLUID*/, + const TDesC8& /*aType*/, + TInt aStatusRef ) + { + _DBG_FILE("CGlobalWLANAdapter::CopyCommandL(): begin"); + + iCallBack->SetStatusL(aStatusRef, CSmlDmAdapter::EError); + + _DBG_FILE("CGlobalWLANAdapter::CopyCommandL(): end"); + } +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::StartAtomicL +// not supported +//------------------------------------------------------------------------------ +void CGlobalWLANAdapter::StartAtomicL() + { + _DBG_FILE("CGlobalWLANAdapter::StartAtomicL(): begin"); + _DBG_FILE("CGlobalWLANAdapter::StartAtomicL(): end"); + } + +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::CommitAtomicL +// not supported +//------------------------------------------------------------------------------ +void CGlobalWLANAdapter::CommitAtomicL() + { + _DBG_FILE("CGlobalWLANAdapter::CommitAtomicL(): begin"); + _DBG_FILE("CGlobalWLANAdapter::CommitAtomicL(): end"); + } + +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::RollbackAtomicL +// returns EError +//------------------------------------------------------------------------------ +void CGlobalWLANAdapter::RollbackAtomicL() + { + _DBG_FILE("CGlobalWLANAdapter::RollbackAtomicL(): begin"); + _DBG_FILE("CGlobalWLANAdapter::RollbackAtomicL(): end"); + } + + +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::StreamingSupport +// returns ETrue, streaming is supported +//------------------------------------------------------------------------------ + +TBool CGlobalWLANAdapter::StreamingSupport( TInt& /*aItemSize*/ ) + { + _DBG_FILE("CGlobalWLANAdapter::StreamingSupport(): begin"); + _DBG_FILE("CGlobalWLANAdapter::StreamingSupport(): end"); + return EFalse; + } + +//------------------------------------------------------------------------------ +// CGlobalWLANAdapter::StreamCommittedL +// not used in this adapter +//------------------------------------------------------------------------------ + +void CGlobalWLANAdapter::StreamCommittedL() + { + _DBG_FILE("CGlobalWLANAdapter::StreamCommittedL(): begin"); + _DBG_FILE("CGlobalWLANAdapter::StreamCommittedL(): end"); + } + +//----------------------------------------------------------------------------- +// CGlobalWLANAdapter* CGlobalWLANAdapter::CompleteOutstandingCmdsL( ) +//----------------------------------------------------------------------------- +void CGlobalWLANAdapter::CompleteOutstandingCmdsL( ) + { + _DBG_FILE("CGlobalWLANAdapter::CompleteOutStandingCmdsL(): begin"); + + ExecuteBufferL( ETrue ); + + _DBG_FILE("CGlobalWLANAdapter::CompleteOutStandingCmdsL(): end"); + } + + +// ------------------------------------------------------------------------------------- +// CGlobalWLANAdapter::FillNodeInfoL() +// Fills the node info in ddf structure +// ------------------------------------------------------------------------------------- +void CGlobalWLANAdapter::FillNodeInfoL( MSmlDmDDFObject& aNode, + TSmlDmAccessTypes aAccTypes, + MSmlDmDDFObject::TOccurence aOccurrence, + MSmlDmDDFObject::TScope aScope, + MSmlDmDDFObject::TDFFormat aFormat, + const TDesC8& aDescription ) + + { + aNode.SetAccessTypesL(aAccTypes); + aNode.SetOccurenceL(aOccurrence); + aNode.SetScopeL(aScope); + aNode.SetDFFormatL(aFormat); + if(aFormat!=MSmlDmDDFObject::ENode) + { + aNode.AddDFTypeMimeTypeL(KNSmlMimeType); + } + aNode.SetDescriptionL(aDescription); + } + + +// ------------------------------------------------------------------------------------------------ +// void CGlobalWLANAdapter::ExecuteBufferL( TBool aFinal ) +// Executes buffered commands +// ------------------------------------------------------------------------------------------------ +void CGlobalWLANAdapter::ExecuteBufferL( TBool /*aFinal*/ ) + { + + _DBG_FILE("CGlobalWLANAdapter::ExecuteBuffer(): begin"); + + // Store the given values into cenrep and commsdb and + // read the required parameters from cenrep and commsdb + TRAPD (err1, StoreCenRepParamsL()); + TRAPD (err2, StoreCommsDBParamsL()); + TRAPD (err3, ReadCenRepParamsL()); + TRAPD (err4, ReadCommsDBParamsL()); + + // Init the member variables after updates + InitMemberVariables(); + + // If some of the operations failed, then leave + User::LeaveIfError( err1 ); + User::LeaveIfError( err2 ); + User::LeaveIfError( err3 ); + User::LeaveIfError( err4 ); + + _DBG_FILE("CGlobalWLANAdapter::ExecuteBuffer(): End"); + } + + +// ------------------------------------------------------------------------------------------------ +// TBool CGlobalWLANAdapter::StoreCenRepParamsL( ) +// Stores the parameters to central repository +// ------------------------------------------------------------------------------------------------ +void CGlobalWLANAdapter::StoreCenRepParamsL() + { + + _DBG_FILE("CGlobalWLANAdapter::StoreCenRepParams(): begin"); + + CRepository* repository = NULL; + CRepository* conSettRep = NULL; + TInt err = KErrNone; + + + // Write KWlanInternetConnectivityTest + if ( iWriteSettings->internetConnectivityTestPresent ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanInternetConnectivityTest start " ); + // Open the cenrep for internet connectivity settings. This is the only global wlan parameter + // from this cenrep + conSettRep = CRepository::NewL( KCRUidInternetConnectivitySettings ); + + // There is no pointer to the repository, leave + if ( conSettRep == NULL ) + { + User::LeaveIfError( KErrGeneral ); + } + + CleanupStack::PushL(conSettRep); + + err = conSettRep->Set( KIctsTestPermission, static_cast( iWriteSettings->internetConnectivityTest ) ); + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanInternetConnectivityTest set to cenRep " ); + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanInternetConnectivityTest" ); + iCallBack->SetStatusL(iWriteStatuses->internetConnectivityTestStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanInternetConnectivityTest failed " ); + iCallBack->SetStatusL(iWriteStatuses->internetConnectivityTestStatus, CSmlDmAdapter::EError); + } + CleanupStack::PopAndDestroy(conSettRep); + } + + + // The rest of the parameters are stored to Wlan device settings cenRep + repository = CRepository::NewL( KCRUidWlanDeviceSettingsRegistryId ); + + // There is no pointer to the repository, leave + if ( repository == NULL ) + { + User::LeaveIfError( KErrGeneral ); + } + + CleanupStack::PushL(repository); + + if ( iWriteSettings->MTUPresent ) + { + err = repository->Set( KWlanMTU, static_cast( iWriteSettings->MTU ) ); + + DBG_ARGS8(_S8("CGlobalWLANAdapter::StoreCenRepParams, MTU status - (%d)"), err ); + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() MTU" ); + iCallBack->SetStatusL(iWriteStatuses->MTUStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() MTU failed " ); + iCallBack->SetStatusL(iWriteStatuses->MTUStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanScanRate + if ( iWriteSettings->scanRatePresent ) + { + err = repository->Set( KWlanScanRate, static_cast( iWriteSettings->scanRate ) ); + + DBG_ARGS8(_S8("CGlobalWLANAdapter::StoreCenRepParams, scanrate status - (%d)"), err ); + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() WlanScanRate" ); + iCallBack->SetStatusL(iWriteStatuses->scanRateStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() WlanScanRate failed " ); + iCallBack->SetStatusL(iWriteStatuses->scanRateStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanRcpiTrigger + if ( iWriteSettings->RCPITriggerPresent ) + { + err = repository->Set( KWlanRcpiTrigger, static_cast( iWriteSettings->RCPITrigger ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRcpiTrigger" ); + iCallBack->SetStatusL(iWriteStatuses->RCPITriggerStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRcpiTrigger failed" ); + iCallBack->SetStatusL(iWriteStatuses->RCPITriggerStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanMinActiveChannelTime + if ( iWriteSettings->minActiveChannelTimePresent ) + { + err = repository->Set( KWlanMinActiveChannelTime, static_cast( iWriteSettings->minActiveChannelTime ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMinActiveChannelTime" ); + iCallBack->SetStatusL(iWriteStatuses->minActiveChannelTimeStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMinActiveChannelTime failed" ); + iCallBack->SetStatusL(iWriteStatuses->minActiveChannelTimeStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanMaxActiveChannelTime + if ( iWriteSettings->maxActiveChannelTimePresent ) + { + err = repository->Set( KWlanMaxActiveChannelTime, static_cast( iWriteSettings->maxActiveChannelTime ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxActiveChannelTime" ); + iCallBack->SetStatusL(iWriteStatuses->maxActiveChannelTimeStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxActiveChannelTime failed" ); + iCallBack->SetStatusL(iWriteStatuses->maxActiveChannelTimeStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanMaxTxMSDULifeTime + if ( iWriteSettings->maxTxMSDULifeTimePresent ) + { + err = repository->Set( KWlanMaxTxMSDULifeTime, static_cast( iWriteSettings->maxTxMSDULifeTime ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanMaxTxMSDULifeTime" ); + iCallBack->SetStatusL(iWriteStatuses->maxTxMSDULifeTimeStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanMaxTxMSDULifeTime failed" ); + iCallBack->SetStatusL(iWriteStatuses->maxTxMSDULifeTimeStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanScanExpirationTimer + if ( iWriteSettings->scanExpirationTimerPresent ) + { + err = repository->Set( KWlanScanExpirationTimer, static_cast( iWriteSettings->scanExpirationTimer ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanScanExpirationTimer" ); + iCallBack->SetStatusL(iWriteStatuses->scanExpirationTimerStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanScanExpirationTimer failed" ); + iCallBack->SetStatusL(iWriteStatuses->scanExpirationTimerStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanUnloadDriverTimer + if ( iWriteSettings->unloadDriverTimerPresent ) + { + err = repository->Set( KWlanUnloadDriverTimer, static_cast( iWriteSettings->unloadDriverTimer ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanUnloadDriverTimer" ); + iCallBack->SetStatusL(iWriteStatuses->unloadDriverTimerStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams()KWlanUnloadDriverTimer failed" ); + iCallBack->SetStatusL(iWriteStatuses->unloadDriverTimerStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanRoamTimer + if ( iWriteSettings->roamTimerPresent ) + { + err = repository->Set( KWlanRoamTimer, static_cast( iWriteSettings->roamTimer ) ); + + if( err == KErrNone) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRoamTimer" ); + iCallBack->SetStatusL(iWriteStatuses->roamTimerStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRoamTimer failed" ); + iCallBack->SetStatusL(iWriteStatuses->roamTimerStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanRcpiDifference + if ( iWriteSettings->RCPIDifferencePresent ) + { + err = repository->Set( KWlanRcpiDifference, static_cast( iWriteSettings->RCPIDifference ) ); + + DBG_ARGS8(_S8("CGlobalWLANAdapter::StoreCenRepParams, rcpidifference status - (%d)"), err ); + if( err == KErrNone) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRcpiDifference" ); + iCallBack->SetStatusL(iWriteStatuses->RCPIDifferenceStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanRcpiDifference failed" ); + iCallBack->SetStatusL(iWriteStatuses->RCPIDifferenceStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanConnRegainTimer + if ( iWriteSettings->connRegainTimerPresent ) + { + err = repository->Set( KWlanConnRegainTimer, static_cast( iWriteSettings->connRegainTimer ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanConnRegainTimer" ); + iCallBack->SetStatusL(iWriteStatuses->connRegainTimerStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanConnRegainTimer failed" ); + iCallBack->SetStatusL(iWriteStatuses->connRegainTimerStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanMaxTriesToFindNw + if ( iWriteSettings->maxTriesToFindNwPresent ) + { + err = repository->Set( KWlanMaxTriesToFindNw, static_cast( iWriteSettings->maxTriesToFindNw ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxTriesToFindNw "); + iCallBack->SetStatusL(iWriteStatuses->maxTriesToFindNwStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxTriesToFindNw failed"); + iCallBack->SetStatusL(iWriteStatuses->maxTriesToFindNwStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanDelayBetweenFindNw + if ( iWriteSettings->delayBetweenFindNwPresent ) + { + err = repository->Set( KWlanDelayBetweenFindNw, static_cast( iWriteSettings->delayBetweenFindNw ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanDelayBetweenFindNw" ); + iCallBack->SetStatusL(iWriteStatuses->delayBetweenFindNwStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanDelayBetweenFindNw failed" ); + iCallBack->SetStatusL(iWriteStatuses->delayBetweenFindNwStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanMinPassiveChannelTime + if ( iWriteSettings->minPassiveChannelTimePresent ) + { + err = repository->Set( KWlanMinPassiveChannelTime, static_cast( iWriteSettings->minPassiveChannelTime ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMinPassiveChannelTime" ); + iCallBack->SetStatusL(iWriteStatuses->minPassiveChannelTimeStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMinPassiveChannelTime failed" ); + iCallBack->SetStatusL(iWriteStatuses->minPassiveChannelTimeStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanMaxPassiveChannelTime + if ( iWriteSettings->maxPassiveChannelTimePresent ) + { + err = repository->Set( KWlanMaxPassiveChannelTime, static_cast( iWriteSettings->maxPassiveChannelTime ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxPassiveChannelTime" ); + iCallBack->SetStatusL(iWriteStatuses->maxPassiveChannelTimeStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxPassiveChannelTime failed" ); + iCallBack->SetStatusL(iWriteStatuses->maxPassiveChannelTimeStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanMaxApFailureCount + if ( iWriteSettings->maxApFailureCountPresent ) + { + err = repository->Set( KWlanMaxApFailureCount, static_cast( iWriteSettings->maxApFailureCount ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxApFailureCount" ); + iCallBack->SetStatusL(iWriteStatuses->maxApFailureCountStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanMaxApFailureCount failed" ); + iCallBack->SetStatusL(iWriteStatuses->maxApFailureCountStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanLongBeaconFindCount + if ( iWriteSettings->longBeaconFindCountPresent ) + { + err = repository->Set( KWlanLongBeaconFindCount, static_cast( iWriteSettings->longBeaconFindCount ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanLongBeaconFindCount" ); + iCallBack->SetStatusL(iWriteStatuses->longBeaconFindCountStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanLongBeaconFindCount failed" ); + iCallBack->SetStatusL(iWriteStatuses->longBeaconFindCountStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanQosNullFrameInterval + if ( iWriteSettings->qosNullFrameIntervalPresent ) + { + err = repository->Set( KWlanQosNullFrameInterval, static_cast( iWriteSettings->qosNullFrameInterval ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanQosNullFrameInterval" ); + iCallBack->SetStatusL(iWriteStatuses->qosNullFrameIntervalStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanQosNullFrameInterval failed" ); + iCallBack->SetStatusL(iWriteStatuses->qosNullFrameIntervalStatus, CSmlDmAdapter::EError); + } + } + + // Write KWlanQosNullFrameTimeout + if ( iWriteSettings->qosNullFrameTimeoutPresent ) + { + err = repository->Set( KWlanQosNullFrameTimeout, static_cast( iWriteSettings->qosNullFrameTimeout ) ); + + if( err == KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanQosNullFrameTimeout" ); + iCallBack->SetStatusL(iWriteStatuses->qosNullFrameTimeoutStatus, CSmlDmAdapter::EOk); + } + else + { + _DBG_FILE("CGlobalWLANAdapter:StoreCenRepParams() KWlanQosNullFrameTimeout failed" ); + iCallBack->SetStatusL(iWriteStatuses->qosNullFrameTimeoutStatus, CSmlDmAdapter::EError); + } + } + + // Cleanup + CleanupStack::PopAndDestroy(repository); + _DBG_FILE("CGlobalWLANAdapter::StoreCenRepParams(): end"); + return; + } + +// ------------------------------------------------------------------------------------------------ +// void CGlobalWLANAdapter::StoreCommsDBParams( ) +// Stores the parameters to central repository +// ------------------------------------------------------------------------------------------------ +void CGlobalWLANAdapter::StoreCommsDBParamsL() + { + + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): begin"); + + CCommsDatabase* db = CCommsDatabase::NewL(); + CleanupStack::PushL(db); + + // User defined WLAN device settings table from Comms database + CCommsDbTableView* usrTable; + + // Open user settings. + usrTable = db->OpenViewMatchingUintLC( TPtrC(WLAN_DEVICE_SETTINGS), + TPtrC(WLAN_DEVICE_SETTINGS_TYPE), + KWlanUserSettings ); + + // if record did not exist, then it is created. + if ( usrTable->GotoFirstRecord() != KErrNone ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): Record creation"); + TUint32 id; + User::LeaveIfError( usrTable->InsertRecord( id ) ); + + usrTable->WriteUintL( TPtrC(WLAN_DEVICE_SETTINGS_TYPE), KWlanUserSettings ); + //usrTable->WriteUintL( TPtrC(WLAN_TABLE_VERSION), KWlanDeviceSettingsTableVersion ); + User::LeaveIfError( usrTable->PutRecordChanges() ); // End and save changes. + } + + // Write CommsDat settings + User::LeaveIfError( usrTable->UpdateRecord() ); // Begin changes. + + // Check which parameters are present in the structure, store them into commsdb and + // update the status to OK/Error accordingly + if ( iWriteSettings->backgroundScanIntervalPresent ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KBgScanInterval"); + TRAPD( err, usrTable->WriteUintL( TPtrC(WLAN_BG_SCAN_INTERVAL), iWriteSettings->backgroundScanInterval )); + if ( err == KErrNone) + { + iCallBack->SetStatusL(iWriteStatuses->backgroundScanIntervalStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(iWriteStatuses->backgroundScanIntervalStatus, CSmlDmAdapter::EError); + } + } + + if ( iWriteSettings->useDefaultSettingsPresent ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KUseDefaultSettings"); + TRAPD( err, usrTable->WriteBoolL( TPtrC(WLAN_USE_DEFAULT_SETTINGS), iWriteSettings->useDefaultSettings )); + if ( err == KErrNone) + { + iCallBack->SetStatusL(iWriteStatuses->useDefaultSettingsStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(iWriteStatuses->useDefaultSettingsStatus, CSmlDmAdapter::EError); + } + } + + if ( iWriteSettings->longRetryLimitPresent ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanLongRetry"); + TRAPD( err, usrTable->WriteUintL( TPtrC(WLAN_LONG_RETRY), iWriteSettings->longRetryLimit )); + if ( err == KErrNone) + { + iCallBack->SetStatusL(iWriteStatuses->longRetryLimitStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(iWriteStatuses->longRetryLimitStatus, CSmlDmAdapter::EError); + } + } + + if ( iWriteSettings->shortRetryLimitPresent ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanShortRetry"); + TRAPD( err, usrTable->WriteUintL( TPtrC(WLAN_SHORT_RETRY), iWriteSettings->shortRetryLimit )); + if ( err == KErrNone) + { + iCallBack->SetStatusL(iWriteStatuses->shortRetryLimitStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(iWriteStatuses->shortRetryLimitStatus, CSmlDmAdapter::EError); + } + } + + if ( iWriteSettings->RTSThresholdPresent ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanRTSThreshold"); + TRAPD( err, usrTable->WriteUintL( TPtrC(WLAN_RTS_THRESHOLD), iWriteSettings->RTSThreshold )); + if ( err == KErrNone) + { + iCallBack->SetStatusL(iWriteStatuses->RTSThresholdStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(iWriteStatuses->RTSThresholdStatus, CSmlDmAdapter::EError); + } + } + + if ( iWriteSettings->TXPowerLevelPresent ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanTxPowerLevel"); + TRAPD( err, usrTable->WriteUintL( TPtrC(NU_WLAN_TX_POWER_LEVEL), iWriteSettings->TXPowerLevel )); + if ( err == KErrNone) + { + iCallBack->SetStatusL(iWriteStatuses->TXPowerLevelStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(iWriteStatuses->TXPowerLevelStatus, CSmlDmAdapter::EError); + } + } + + if ( iWriteSettings->allowRadioMeasurementsPresent ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanAllowRadioMeasurements"); + TRAPD( err, usrTable->WriteBoolL( TPtrC(WLAN_ALLOW_RADIO_MEASUREMENTS), iWriteSettings->allowRadioMeasurements )); + if ( err == KErrNone) + { + iCallBack->SetStatusL(iWriteStatuses->allowRadioMeasurementsStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(iWriteStatuses->allowRadioMeasurementsStatus, CSmlDmAdapter::EError); + } + } + + if ( iWriteSettings->powerSavingPresent ) + { + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): write KWlanPowerSaving"); + TRAPD( err, usrTable->WriteBoolL( TPtrC(WLAN_POWER_MODE), iWriteSettings->powerSaving )); + if ( err == KErrNone) + { + iCallBack->SetStatusL(iWriteStatuses->powerSavingStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL(iWriteStatuses->powerSavingStatus, CSmlDmAdapter::EError); + } + } + + _DBG_FILE("CGlobalWLANAdapter::StoreCommsDBParams(): end"); + User::LeaveIfError( usrTable->PutRecordChanges() ); // End and save changes. + CleanupStack::PopAndDestroy( usrTable ); + CleanupStack::PopAndDestroy( db ); + return; + + } + + +// ------------------------------------------------------------------------------------------------ +// void CGlobalWLANAdapter::ReadCenRepParams( ) +// Reads parameters from central repository +// ------------------------------------------------------------------------------------------------ +void CGlobalWLANAdapter::ReadCenRepParamsL() + { + + _DBG_FILE("CGlobalWLANAdapter::ReadCenRepParams(): begin"); + + TInt err = KErrNone; + CRepository* repository = NULL; + TBuf8 value; + TBuf8 type; + TInt temp = 0; + + // InternetConnectivityTest parameter is in a different cenRep than the other parameters + // Write KWlanScanRate + if ( iReadSettings->internetConnectivityTestPresent ) + { + // This parameter is in the internet connectivity settings cenRep, open the repository + repository = CRepository::NewL( KCRUidInternetConnectivitySettings ); + CleanupStack::PushL(repository); + + value.Zero(); + type.Zero(); + + // if opening the cenrtral repository failed, then leave this function + if ( repository == NULL ) + { + User::LeaveIfError( KErrGeneral ); + } + + err = repository->Get( KIctsTestPermission, temp ); + value.Num(temp); + type.Append( KNSmlWLanInternetConnectivityTest ); + UpdateStatusAndResultL( iReadStatuses->internetConnectivityTestResult, iReadStatuses->internetConnectivityTestStatus, + value, type, err ); + + CleanupStack::PopAndDestroy(repository); + } + + // The rest of the parameters are in WlanDeviceSettings cenRep + repository = CRepository::NewL( KCRUidWlanDeviceSettingsRegistryId ); + CleanupStack::PushL(repository); + + // if opening the cenrtral repository failed, then leave this function + if ( repository == NULL ) + { + User::LeaveIfError( KErrGeneral ); + } + + if ( iReadSettings->MTUPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanMTU, temp ); + value.Num(temp); + type.Append( KNSmlWLanMTU ); + UpdateStatusAndResultL( iReadStatuses->MTUResult, iReadStatuses->MTUStatus, + value, type, err ); + } + + // Write KWlanScanRate + if ( iReadSettings->scanRatePresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanScanRate, temp ); + value.Num(temp); + type.Append( KNSmlWLanScanRate ); + UpdateStatusAndResultL( iReadStatuses->scanRateResult, iReadStatuses->scanRateStatus, + value, type, err ); + } + + // Write KWlanRcpiTrigger + if ( iReadSettings->RCPITriggerPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanRcpiTrigger, temp ); + value.Num(temp); + type.Append( KNSmlWLanRCPITrigger ); + UpdateStatusAndResultL( iReadStatuses->RCPITriggerResult, iReadStatuses->RCPITriggerStatus, + value, type, err ); + } + + // Write KWlanMinActiveChannelTime + if ( iReadSettings->minActiveChannelTimePresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanMinActiveChannelTime, temp ); + value.Num(temp); + type.Append( KNSmlWLanMinActiveChannelTime ); + UpdateStatusAndResultL( iReadStatuses->minActiveChannelTimeResult, iReadStatuses->minActiveChannelTimeStatus, + value, type, err ); + } + + // Write KWlanMaxActiveChannelTime + if ( iReadSettings->maxActiveChannelTimePresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanMaxActiveChannelTime, temp ); + value.Num(temp); + type.Append( KNSmlWLanMaxActiveChannelTime ); + UpdateStatusAndResultL( iReadStatuses->maxActiveChannelTimeResult, iReadStatuses->maxActiveChannelTimeStatus, + value, type, err ); + } + + // Write KWlanMaxTxMSDULifeTime + if ( iReadSettings->maxTxMSDULifeTimePresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanMaxTxMSDULifeTime, temp ); + value.Num(temp); + type.Append( KNSmlWLanMaxTxMSDULifeTime ); + UpdateStatusAndResultL( iReadStatuses->maxTxMSDULifeTimeResult, iReadStatuses->maxTxMSDULifeTimeStatus, + value, type, err ); + } + + // Write KWlanScanExpirationTimer + if ( iReadSettings->scanExpirationTimerPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanScanExpirationTimer, temp ); + value.Num(temp); + type.Append( KNSmlWLanScanExpirationTimer ); + UpdateStatusAndResultL( iReadStatuses->scanExpirationTimerResult, iReadStatuses->scanExpirationTimerStatus, + value, type, err ); + } + + // Write KWlanUnloadDriverTimer + if ( iReadSettings->unloadDriverTimerPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanUnloadDriverTimer, temp ); + value.Num(temp); + type.Append( KNSmlWLanUnloadDriverTimer ); + UpdateStatusAndResultL( iReadStatuses->unloadDriverTimerResult, iReadStatuses->unloadDriverTimerStatus, + value, type, err ); + } + + // Write KWlanRoamTimer + if ( iReadSettings->roamTimerPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanRoamTimer, temp ); + value.Num(temp); + type.Append( KNSmlWLanRoamTimer ); + UpdateStatusAndResultL( iReadStatuses->roamTimerResult, iReadStatuses->roamTimerStatus, + value, type, err ); + } + + // Write KWlanRcpiDifference + if ( iReadSettings->RCPIDifferencePresent ) + { + value.Zero(); + type.Zero(); + type.Append( KNSmlWLanRCPIDifference ); + err = repository->Get( KWlanRcpiDifference, temp ); + value.Num(temp); + UpdateStatusAndResultL( iReadStatuses->RCPIDifferenceResult, iReadStatuses->RCPIDifferenceStatus, + value, type, err ); + } + + // Write KWlanConnRegainTimer + if ( iReadSettings->connRegainTimerPresent ) + { + value.Zero(); + type.Zero(); + type.Append( KNSmlWLanConnRegainTimer ); + err = repository->Get( KWlanConnRegainTimer, temp ); + value.Num(temp); + UpdateStatusAndResultL( iReadStatuses->connRegainTimerResult, iReadStatuses->connRegainTimerStatus, + value, type, err ); + } + + // Write KWlanMaxTriesToFindNw + if ( iReadSettings->maxTriesToFindNwPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanMaxTriesToFindNw, temp ); + value.Num(temp); + type.Append( KNSmlWLanMaxTriesToFindNw ); + UpdateStatusAndResultL( iReadStatuses->maxTriesToFindNwResult, iReadStatuses->maxTriesToFindNwStatus, + value, type, err ); + } + + // Write KWlanDelayBetweenFindNw + if ( iReadSettings->delayBetweenFindNwPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanDelayBetweenFindNw, temp ); + value.Num(temp); + type.Append( KNSmlWLanDelayBetweenFindNw ); + UpdateStatusAndResultL( iReadStatuses->delayBetweenFindNwResult, iReadStatuses->delayBetweenFindNwStatus, + value, type, err ); + } + + // Write KWlanMinPassiveChannelTime + if ( iReadSettings->minPassiveChannelTimePresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanMinPassiveChannelTime, temp ); + value.Num(temp); + type.Append( KNSmlWLanRCPITrigger ); + UpdateStatusAndResultL( iReadStatuses->minPassiveChannelTimeResult, iReadStatuses->minPassiveChannelTimeStatus, + value, type, err ); + } + + // Write KWlanMaxPassiveChannelTime + if ( iReadSettings->maxPassiveChannelTimePresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanMaxPassiveChannelTime, temp ); + value.Num(temp); + type.Append( KNSmlWLanMinPassiveChannelTime ); + UpdateStatusAndResultL( iReadStatuses->maxPassiveChannelTimeResult, iReadStatuses->maxPassiveChannelTimeStatus, + value, type, err ); + } + + // Write KWlanMaxApFailureCount + if ( iReadSettings->maxApFailureCountPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanMaxApFailureCount, temp ); + value.Num(temp); + type.Append( KNSmlWLanMaxApFailureCount ); + UpdateStatusAndResultL( iReadStatuses->maxApFailureCountResult, iReadStatuses->maxApFailureCountStatus, + value, type, err ); + } + + // Write KWlanLongBeaconFindCount + if ( iReadSettings->longBeaconFindCountPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanLongBeaconFindCount, temp ); + value.Num(temp); + type.Append( KNSmlWLanLongBeaconFindCount ); + UpdateStatusAndResultL( iReadStatuses->longBeaconFindCountResult, iReadStatuses->longBeaconFindCountStatus, + value, type, err ); + } + + // Write KWlanQosNullFrameInterval + if ( iReadSettings->qosNullFrameIntervalPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanQosNullFrameInterval, temp ); + value.Num(temp); + type.Append( KNSmlWLanQosNullFrameInterval ); + UpdateStatusAndResultL( iReadStatuses->qosNullFrameIntervalResult, iReadStatuses->qosNullFrameIntervalStatus, + value, type, err ); + } + + // Write KWlanQosNullFrameTimeout + if ( iReadSettings->qosNullFrameTimeoutPresent ) + { + value.Zero(); + type.Zero(); + err = repository->Get( KWlanQosNullFrameTimeout, temp ); + value.Num(temp); + type.Append( KNSmlWLanQosNullFrameTimeout ); + UpdateStatusAndResultL( iReadStatuses->qosNullFrameTimeoutResult, iReadStatuses->qosNullFrameTimeoutStatus, + value, type, err ); + } + + // Cleanup + CleanupStack::PopAndDestroy(repository); + _DBG_FILE("CGlobalWLANAdapter::ReadCenRepParams(): end"); + return; + + } + +// ------------------------------------------------------------------------------------------------ +// void CGlobalWLANAdapter::UpdateStatusAndResultL( ) +// Reads parameters from cenrep and updates result/status +// ------------------------------------------------------------------------------------------------ +void CGlobalWLANAdapter::UpdateStatusAndResultL( TInt aResult, TInt aStatus, TDesC8& aValue, TDesC8& aType, TInt aStoreErr ) + { + + _DBG_FILE("CGlobalWLANAdapter::UpdateStatusAndResultL(): begin"); + + CBufBase *lObject = CBufFlat::NewL(KInputMaxLength); + CleanupStack::PushL(lObject); + + // If reading went ok, then we can set the results and statuses + if ( aStoreErr == KErrNone ) + { + lObject->InsertL(0, aValue); + iCallBack->SetResultsL( aResult,*lObject,aType ); + iCallBack->SetStatusL( aStatus, CSmlDmAdapter::EOk); + } + else + { + iCallBack->SetStatusL( aStatus, CSmlDmAdapter::EError ); + } + + _DBG_FILE("CGlobalWLANAdapter::UpdateStatusAndResultL(): end"); + CleanupStack::PopAndDestroy(lObject); + return; + } + +// ------------------------------------------------------------------------------------------------ +// void CGlobalWLANAdapter::ReadCommsDBParams( ) +// Reads parameters from commsDB +// ------------------------------------------------------------------------------------------------ +void CGlobalWLANAdapter::ReadCommsDBParamsL() + { + _DBG_FILE("CGlobalWLANAdapter::ReadCommsDBParams() begin" ); + + CCommsDatabase* db = CCommsDatabase::NewL(); + CleanupStack::PushL(db); + + // User defined WLAN device settings table from Comms database + CCommsDbTableView* usrTable; + + // Open user settings. + usrTable = db->OpenViewMatchingUintLC( TPtrC(WLAN_DEVICE_SETTINGS), + TPtrC(WLAN_DEVICE_SETTINGS_TYPE), + KWlanUserSettings ); + + TUint32 intVal; + TBool boolVal = EFalse; + TBuf8 value; + TBuf8 type; + TInt err = KErrNone; + TInt readErr = KErrNone; + _LIT8(KTrue,"True"); + _LIT8(KFalse,"False"); + + // if record did not exist, then we don't do anything + if ( usrTable == NULL ) + readErr = KErrGeneral; + else + readErr = usrTable->GotoFirstRecord(); + + // Check whether parameter was requested to be fetched + if ( iReadSettings->backgroundScanIntervalPresent ) + { + // The reading is done if the commdb record was opened successfully, otherwise the err + // is updated so that the ReadAndSetStatus function can update thet status correctly + if ( readErr == KErrNone ) + { + TRAP( err, usrTable->ReadUintL( TPtrC(WLAN_BG_SCAN_INTERVAL), intVal )); + } + else + { + err=readErr; + } + + value.Zero(); + type.Zero(); + value.Num(intVal); + type.Append( KNSmlWLanBackgroundScanInterval ); + UpdateStatusAndResultL( iReadStatuses->backgroundScanIntervalResult, iReadStatuses->backgroundScanIntervalStatus, + value, type, err ); + } + + if ( iReadSettings->useDefaultSettingsPresent ) + { + if ( readErr == KErrNone ) + { + TRAP( err, usrTable->ReadBoolL( TPtrC(WLAN_USE_DEFAULT_SETTINGS), boolVal )); + } + else + { + err=readErr; + } + + value.Zero(); + type.Zero(); + if ( boolVal == 0 ) + value.Copy(KFalse); + else + value.Copy(KTrue); + + type.Append( KNSmlWLanUseDefaultSettings ); + _DBG_FILE("CGlobalWLANAdapter::ReadCommsDBParams() go set status" ); + UpdateStatusAndResultL( iReadStatuses->useDefaultSettingsResult, iReadStatuses->useDefaultSettingsStatus, + value, type, err ); + } + + if ( iReadSettings->longRetryLimitPresent ) + { + if ( readErr == KErrNone ) + { + TRAP( err, usrTable->ReadUintL( TPtrC(WLAN_LONG_RETRY), intVal )); + } + else + { + err = readErr; + } + + value.Zero(); + value.Num(intVal); + type.Zero(); + type.Append( KNSmlWLanLongRetryLimit ); + UpdateStatusAndResultL( iReadStatuses->longRetryLimitResult, iReadStatuses->longRetryLimitStatus, + value, type, err ); + } + + if ( iReadSettings->shortRetryLimitPresent ) + { + if ( readErr == KErrNone ) + { + TRAP( err, usrTable->ReadUintL( TPtrC(WLAN_SHORT_RETRY), intVal )); + } + else + { + err = readErr; + } + + value.Zero(); + type.Zero(); + value.Num(intVal); + type.Append( KNSmlWLanShortRetryLimit ); + UpdateStatusAndResultL( iReadStatuses->shortRetryLimitResult, iReadStatuses->shortRetryLimitStatus, + value, type, err ); + } + + if ( iReadSettings->RTSThresholdPresent ) + { + if ( readErr == KErrNone ) + { + TRAP( err, usrTable->ReadUintL( TPtrC(WLAN_RTS_THRESHOLD), intVal )); + } + else + { + err = readErr; + } + + value.Zero(); + type.Zero(); + value.Num(intVal); + type.Append( KNSmlWLanRTSThreshold ); + UpdateStatusAndResultL( iReadStatuses->RTSThresholdResult, iReadStatuses->RTSThresholdStatus, + value, type, err ); + } + + if ( iReadSettings->TXPowerLevelPresent ) + { + if ( readErr == KErrNone ) + { + TRAP( err, usrTable->ReadUintL( TPtrC(NU_WLAN_TX_POWER_LEVEL), intVal )); + } + else + { + err = readErr; + } + + value.Zero(); + type.Zero(); + value.Num(intVal); + type.Append( KNSmlWLanTXPowerLevel ); + UpdateStatusAndResultL( iReadStatuses->TXPowerLevelResult, iReadStatuses->TXPowerLevelStatus, + value, type, err ); + } + + if ( iReadSettings->allowRadioMeasurementsPresent ) + { + if ( readErr == KErrNone ) + { + TRAP( err, usrTable->ReadBoolL( TPtrC(WLAN_ALLOW_RADIO_MEASUREMENTS), boolVal )); + } + else + { + err = readErr; + } + + value.Zero(); + type.Zero(); + if ( boolVal ) + value.Copy(_L8("True")); + else + value.Copy(_L8("False")); + + type.Append( KNSmlWLanAllowRadioMeasurements ); + UpdateStatusAndResultL( iReadStatuses->allowRadioMeasurementsResult, iReadStatuses->allowRadioMeasurementsStatus, + value, type, err ); + } + + if ( iReadSettings->powerSavingPresent ) + { + if ( readErr == KErrNone ) + { + TRAP( err, usrTable->ReadBoolL( TPtrC(WLAN_POWER_MODE), boolVal )); + } + else + { + err = readErr; + } + + value.Zero(); + type.Zero(); + if ( boolVal ) + value.Copy(_L8("True")); + else + value.Copy(_L8("False")); + + type.Append( KNSmlWLanPowerSaving ); + UpdateStatusAndResultL( iReadStatuses->powerSavingResult, iReadStatuses->powerSavingStatus, + value, type, err ); + } + + CleanupStack::PopAndDestroy( usrTable ); + CleanupStack::PopAndDestroy( db ); + _DBG_FILE("CGlobalWLANAdapter::ReadCommsDBParams() end" ); + return; + } + + + +// ------------------------------------------------------------------------------------------------ +// TInt CGlobalWLANAdapter::NumOfUriSegs( const TDesC8& aUri ) +// Return count of URI segments of aUri +// ------------------------------------------------------------------------------------------------ +TInt CGlobalWLANAdapter::NumOfUriSegs( const TDesC8& aUri ) + { + _DBG_FILE("CGlobalWLANAdapter::NumOfUriSegs(): begin"); + + TInt count = 1; + for( TInt i=0; i= 0; i-- ) + { + if( aURI[i] == '/' ) + { + break; + } + } + + if( i == 0 ) + { + _DBG_FILE("CGlobalWLANAdapter::GetLastUriSeg(): end"); + return aURI; + } + else + { + _DBG_FILE("CGlobalWLANAdapter::GetLastUriSeg(): end"); + return aURI.Mid( i + 1 ); + } + } + + +// ------------------------------------------------------------------------------------------------ +// TInt CNSmlWLanAdapter::DesToInt( const TDesC8& aNumber ) +// Returns aLuid as integer value +// ------------------------------------------------------------------------------------------------ +TInt CGlobalWLANAdapter::DesToInt( const TDesC8& aNumber ) + { + _DBG_FILE("CGlobalWLANAdapter::DesToInt(): begin"); + + TInt err = KErrNone; + TLex8 lex(aNumber); + TInt value = 0; + err = lex.Val( value ); + + DBG_ARGS8(_S8("CGlobalWLANAdapter::DesToInt() - Des: <%S> Int: <%D>"), &aNumber, value ); + _DBG_FILE("CGlobalWLANAdapter::DesToInt(): end"); + + // the input might have been illegal. Return error code if conversion failed. + if ( err == KErrNone ) + return value; + else + return err; + } + + +// ------------------------------------------------------------------------------------------------ +// TInt CNSmlWLanAdapter::InitMemberVariables +// Inits the member variable structures +// ------------------------------------------------------------------------------------------------ +void CGlobalWLANAdapter::InitMemberVariables() + { + _DBG_FILE("CGlobalWLANAdapter::InitMemberVariables(): begin"); + + iWriteSettings->RCPITriggerPresent=EFalse; + iWriteSettings->internetConnectivityTestPresent=EFalse; + iWriteSettings->useDefaultSettingsPresent=EFalse; + iWriteSettings->longRetryLimitPresent=EFalse; + iWriteSettings->shortRetryLimitPresent=EFalse; + iWriteSettings->RTSThresholdPresent=EFalse; + iWriteSettings->TXPowerLevelPresent=EFalse; + iWriteSettings->powerSavingPresent=EFalse; + iWriteSettings->backgroundScanIntervalPresent=EFalse; + iWriteSettings->scanRatePresent=EFalse; + iWriteSettings->RCPITriggerPresent=EFalse; + iWriteSettings->minActiveChannelTimePresent=EFalse; + iWriteSettings->maxActiveChannelTimePresent=EFalse; + iWriteSettings->maxTxMSDULifeTimePresent=EFalse; + iWriteSettings->scanExpirationTimerPresent=EFalse; + iWriteSettings->unloadDriverTimerPresent=EFalse; + iWriteSettings->roamTimerPresent=EFalse; + iWriteSettings->RCPIDifferencePresent=EFalse; + iWriteSettings->connRegainTimerPresent=EFalse; + iWriteSettings->maxTriesToFindNwPresent=EFalse; + iWriteSettings->delayBetweenFindNwPresent=EFalse; + iWriteSettings->allowRadioMeasurementsPresent=EFalse; + iWriteSettings->minPassiveChannelTimePresent=EFalse; + iWriteSettings->maxPassiveChannelTimePresent=EFalse; + iWriteSettings->maxApFailureCountPresent=EFalse; + iWriteSettings->longBeaconFindCountPresent=EFalse; + iWriteSettings->qosNullFrameIntervalPresent=EFalse; + iWriteSettings->qosNullFrameTimeoutPresent=EFalse; + iWriteSettings->MTUPresent=EFalse; + + iReadSettings->RCPITriggerPresent=EFalse; + iReadSettings->internetConnectivityTestPresent=EFalse; + iReadSettings->useDefaultSettingsPresent=EFalse; + iReadSettings->longRetryLimitPresent=EFalse; + iReadSettings->shortRetryLimitPresent=EFalse; + iReadSettings->RTSThresholdPresent=EFalse; + iReadSettings->TXPowerLevelPresent=EFalse; + iReadSettings->powerSavingPresent=EFalse; + iReadSettings->backgroundScanIntervalPresent=EFalse; + iReadSettings->scanRatePresent=EFalse; + iReadSettings->RCPITriggerPresent=EFalse; + iReadSettings->minActiveChannelTimePresent=EFalse; + iReadSettings->maxActiveChannelTimePresent=EFalse; + iReadSettings->maxTxMSDULifeTimePresent=EFalse; + iReadSettings->scanExpirationTimerPresent=EFalse; + iReadSettings->unloadDriverTimerPresent=EFalse; + iReadSettings->roamTimerPresent=EFalse; + iReadSettings->RCPIDifferencePresent=EFalse; + iReadSettings->connRegainTimerPresent=EFalse; + iReadSettings->maxTriesToFindNwPresent=EFalse; + iReadSettings->delayBetweenFindNwPresent=EFalse; + iReadSettings->allowRadioMeasurementsPresent=EFalse; + iReadSettings->minPassiveChannelTimePresent=EFalse; + iReadSettings->maxPassiveChannelTimePresent=EFalse; + iReadSettings->maxApFailureCountPresent=EFalse; + iReadSettings->longBeaconFindCountPresent=EFalse; + iReadSettings->qosNullFrameIntervalPresent=EFalse; + iReadSettings->qosNullFrameTimeoutPresent=EFalse; + iReadSettings->MTUPresent=EFalse; + + _DBG_FILE("CGlobalWLANAdapter::InitMemberVariables(): begin"); + } + +// end of file