diff -r b183ec05bd8c -r 19bba8228ff0 fotaapplication/fotaserver/FotaRfsPlugin/src/RfsFotaPlugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fotaapplication/fotaserver/FotaRfsPlugin/src/RfsFotaPlugin.cpp Wed Sep 01 12:27:42 2010 +0100 @@ -0,0 +1,181 @@ +/* +* Copyright (c) 2005-2006 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: Implementation of fotaserver component +* This is part of fotaapplication. +* +*/ + + + +// INCLUDE FILES +#include "RfsFotaPlugin.h" +#include "fotadebug.h" + +_LIT(KScriptPath, ""); + +// ================= MEMBER FUNCTIONS ======================= + +// --------------------------------------------------------------------------- +// constructor +// --------------------------------------------------------------------------- +// +CRfsFotaPlugin::CRfsFotaPlugin() + { + FLOG(_L("CRfsFotaPlugin::CRfsFotaPlugin()")); + } + +// --------------------------------------------------------------------------- +// constructor +// --------------------------------------------------------------------------- +// +CRfsFotaPlugin::CRfsFotaPlugin(TAny* /*aInitParams*/) + { + } + +// --------------------------------------------------------------------------- +// destructor +// --------------------------------------------------------------------------- +// +CRfsFotaPlugin::~CRfsFotaPlugin() + { + } + +// --------------------------------------------------------------------------- +// CRfsFotaPlugin::NewL +// --------------------------------------------------------------------------- +// +CRfsFotaPlugin* CRfsFotaPlugin::NewL(TAny* aInitParams) + { + FLOG(_L("CRfsFotaPlugin::NewL()")); + CRfsFotaPlugin* self = new (ELeave) CRfsFotaPlugin(aInitParams); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); + return self; + } + + +// --------------------------------------------------------------------------- +// CRfsFotaPlugin::ConstructL +// --------------------------------------------------------------------------- +// +void CRfsFotaPlugin::ConstructL() + { + FLOG(_L("CRfsFotaPlugin::ConstructL()")); + } + + +// --------------------------------------------------------------------------- +// CRfsFotaPlugin::RestoreFactorySettingsL +// Handle rfs. Must reserve disk space to keep user from filling it. +// --------------------------------------------------------------------------- +// +void CRfsFotaPlugin::RestoreFactorySettingsL( const TRfsReason aType ) + { + FLOG(_L("CRfsFotaPlugin::RestoreFactorySettingsL(%d)"), aType); + + if ( aType == ENormalRfs ) + { + FLOG(_L(" ERROR - NORMAL RFS (Only FirstBoot RFS is ordered) ")); + } + if ( aType == EDeepRfs ) + { + FLOG(_L(" ERROR - DEEP RFS (Only FirstBoot RFS is ordered) ")); + } + + LoadStoragePluginL (); + iStorage->AdjustDummyStorageL () ; + + UnLoadStoragePluginL(); + } + + +// --------------------------------------------------------------------------- +// CRfsFotaPlugin::GetScriptL +// --------------------------------------------------------------------------- +// +void CRfsFotaPlugin::GetScriptL( const TRfsReason /*aType*/, TDes& aPath ) + { + FLOG(_L("CRfsFotaPlugin::GetScriptL")); + aPath.Copy( KScriptPath); + } + + +// --------------------------------------------------------------------------- +// CRfsFotaPlugin::ExecuteCustomCommandL +// --------------------------------------------------------------------------- +void CRfsFotaPlugin::ExecuteCustomCommandL( const TRfsReason /*aType*/, + TDesC& /*aCommand*/ ) + { + FLOG(_L("CRfsFotaPlugin::ExecuteCustomCommandL")); + } + + +// --------------------------------------------------------------------------- +// CRfsFotaPlugin::LoadStoragePluginL +// Load update storage plugin via ecom framework. +// --------------------------------------------------------------------------- +// +void CRfsFotaPlugin::LoadStoragePluginL () + { + FLOG(_L("CRfsFotaPlugin::LoadStoragePluginL")); + if(iStorage) + { + UnLoadStoragePluginL (); + } + TUid if_uid; + if_uid.iUid = (0x10207384); + RImplInfoPtrArray pluginArray; + REComSession::ListImplementationsL( if_uid, pluginArray ); + CleanupClosePushL (pluginArray); + + if( pluginArray.Count() ) + { + for( TInt i = 0; i < pluginArray.Count(); i++ ) + { + CImplementationInformation* info = pluginArray[ i ]; + TUid id = info->ImplementationUid(); + delete info; + info = NULL; + iStorage =(CFotaStorage*) REComSession::CreateImplementationL( + id , iStorageDtorKey); + } + } + else + { + FLOG(_L(" storage plugin not found, ERROR")); + User::Leave ( KErrNotFound ); + } + CleanupStack::PopAndDestroy(1); // array + } + + +// --------------------------------------------------------------------------- +// CRfsFotaPlugin::UnLoadStoragePluginL +// Unloads storage plugin +// --------------------------------------------------------------------------- +// +void CRfsFotaPlugin::UnLoadStoragePluginL () + { + FLOG(_L("CRfsFotaPlugin::UnLoadStoragePluginL")); + if(iStorage != NULL) + { + delete iStorage; + iStorage=0; + } + REComSession::DestroyedImplementation(iStorageDtorKey); // sets reference count of plugin to 0 + REComSession::FinalClose(); + } + +// End of file