diff -r 000000000000 -r af10295192d8 networkcontrol/commsuserpromptmgr/utils/src/netupstls.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkcontrol/commsuserpromptmgr/utils/src/netupstls.cpp Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,236 @@ +// Copyright (c) 2007-2009 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: +// This file provides the implementation of the methods for NetUps Tls +// @internalAll +// @prototype +// +// + +#include // Included here, since removal of Platform headers from public headers[f32file.h] for TB92SDK +#include "netupstls.h" + +#include // defines TInt + +#ifdef __WINS__ +#include +#endif + +#include "e32std.h" // defines TLS, User +#include "es_ini.h" // defines CESockIniData. + +#include "netupsimpl.h" // is this needed here, should relevant definitions be ported + +#include "netupsconst.h" +#include "netupsassert.h" + +namespace NetUps +{ +__FLOG_STMT(_LIT8(KNetUpsSubsys, "esock");) +__FLOG_STMT(_LIT8(KNetUpsComponent, "NetUps");) /*esockloader*/ + +class CNetUpsImpl; + +CNetUpsTls* CNetUpsTls::NewL(TInt32 aServiceId) + { + CNetUpsTls* self = new (ELeave) CNetUpsTls(); + + CleanupStack::PushL(self); + self->ConstructL(aServiceId); + CleanupStack::Pop(self); + + return self; + } + +void CNetUpsTls::ConstructL(TInt32 aServiceId) + { + (void) aServiceId; + +#ifdef __WINS__ + + // for the emulator allow the constant to be patched via epoc.ini + TUint32 value; + + TInt ret = UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalIntProperty, (TAny*)"NETWORKING_UPS_DISABLE", &value); + + if (ret == KErrNone) + { + if ((value == ENetUpsEnabled) || (value == ENetUpsDisabled)) + // i.e. Net Ups Enabled. + { + iUpsIpActive = static_cast(value); + if (iUpsIpActive==ENetUpsDisabled) + { + User::Leave(KErrNotSupported); + } + } + else if (value == EReadStatusFromFile) + { + ReadConfigurableSettingsL(EEnabledStatus); + } + else + { + User::Leave(KErrCorrupt); + } + } + else + { + iUpsIpActive = ENetUpsEnabled; + } + + ret = UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalIntProperty, (TAny*) "NETWORKING_UPS_SESSION", &value); + + if (ret == KErrNone) + { + if ((value == EProcessLifeTime) || (value == ENetworkLifeTime)) + { + iUpsSessionType = static_cast(value); + } + else if (value == EReadStatusFromFile) + { + ReadConfigurableSettingsL(ESessionMode); + } + else + { + User::Leave(KErrCorrupt); + } + } + else + { + iUpsSessionType = EProcessLifeTime; + } + +#else // NOT WINSCW + + iUpsIpActive = static_cast(KUpsIpDisabled); + iUpsSessionType = static_cast(KUpsSessionType); // validate input ? + if (iUpsIpActive == EReadStatusFromFile) + { +#ifdef _DEBUG + ReadConfigurableSettingsL(EEnabledStatus); +#else // _DEBUG + User::Leave(KErrNotSupported); +#endif // _DEBUG + } + else if (iUpsIpActive != ENetUpsEnabled) + { + User::Leave(KErrNotSupported); + } + + if (iUpsSessionType == EReadSessionDefFromFile) + { +#ifdef _DEBUG + ReadConfigurableSettingsL(ESessionMode); +#endif // _DEBUG + } + +#endif // __WINS__ + + iNetUpsImpl = CNetUpsImpl::NewL(); + + if (iUpsSessionType == EProcessLifeTime) + { + iNetUpsImpl->SetLifeTimeMode(CNetUpsImpl::EProcessLifeTimeMode); + } + else + { + iNetUpsImpl->SetLifeTimeMode(CNetUpsImpl::ENetworkLifeTimeMode); + } + + __FLOG_OPEN(KNetUpsSubsys, KNetUpsComponent); + __FLOG_3(_L("CNetUpsTls %08x:\tConstructL(), aServiceId = %d, iLifeTimeMode = %d"), this, aServiceId, iUpsSessionType); + } + +void CNetUpsTls::ReadConfigurableSettingsL(TConfigurableSetting aConfigurableSetting) + { + __FLOG_1(_L("CNetUpsTls %08x:\tReadConfigurableSettingsL()"), this); + + CESockIniData* ini = NULL; + ini=CESockIniData::NewL(_L("netups.ini")); + CleanupStack::PushL(ini); + TInt value(0); + + switch(aConfigurableSetting) + { + case EEnabledStatus: + if(ini->FindVar(_L("upsIpMode"),_L("NETWORKING_UPS_DISABLE"), value)) + { + if (value==ENetUpsEnabled) + { + iUpsIpActive = static_cast(value); + __FLOG_2(_L("CNetUpsTls %08x:\tReadConfigurableSettingsL(), iUpsIpActive = %d"), this, iUpsIpActive); + } + else if (value==ENetUpsDisabled) + { + User::Leave(KErrNotSupported); + } + else + { + User::Leave(KErrCorrupt); + } + } + break; + case ESessionMode: + if(ini->FindVar(_L("upsIpMode"),_L("NETWORKING_UPS_SESSION"), value)) + { + if ((value >= EProcessLifeTime) && (value <= ENetworkLifeTime)) + { + iUpsSessionType = static_cast(value); + __FLOG_2(_L("CNetUpsTls %08x:\tReadConfigurableSettingsL(), iUpsSessionType = %d"), this, iUpsSessionType); + } + else + { + User::Leave(KErrCorrupt); + } + } + break; + default: + User::Panic(KNetUpsPanic, KPanicInvalidLogic); + break; + } + + CleanupStack::PopAndDestroy(ini); + } + +CNetUpsTls::CNetUpsTls() + : iUpsIpActive(ENetUpsEnabled), iUpsSessionType(EProcessLifeTime) + { + } + +CNetUpsTls::~CNetUpsTls() + { + __FLOG_1(_L("CNetUpsTls %08x:\t~CNetUpsTls"), this); + delete iNetUpsImpl; + __FLOG_CLOSE; + } + +CNetUpsImpl* CNetUpsTls::GetNetUpsImpl() + { + __FLOG_2(_L("CNetUpsTls %08x:\tGetNetUpsImpl(), iNetUpsImpl = %08x"), this, iNetUpsImpl); + return iNetUpsImpl; + } + +TUint32 CNetUpsTls::GetUpsIpDisabled() + { + __FLOG_2(_L("CNetUpsTls %08x:\tGetUpsIpDisabled(), iUpsIpActive = %d"), this, iUpsIpActive); + return iUpsIpActive; + } + +TUint32 CNetUpsTls::GetUpsSessionType() + { + __FLOG_2(_L("CNetUpsTls %08x:\tGetUpsSessionType(), iUpsSessionType = %d"), this, iUpsSessionType); + return iUpsSessionType; + } + +} // end of namespace +