contentstorage/casrv/cawidgetscanner/src/cawidgetscannerplugin.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:48:45 +0300
changeset 66 32469d7d46ff
parent 60 f62f87b200ec
child 103 b99b84bcd2d1
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
* 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:
 *
*/

// INCLUDE FILES

#include <ecom/implementationproxy.h>
#include <sacls.h>

#include "cawidgetscannerplugin.h"
#include "cawidgetscannerparser.h"
#include "cawidgetstoragehandler.h"
#include "cawidgetscannerinstallnotifier.h"


// Function used to return an instance of the proxy table.
const TImplementationProxy ImplementationTable[] =
    {
    IMPLEMENTATION_PROXY_ENTRY(0x20028707, CCaWidgetScannerPlugin::NewL)
    };

// ----------------------------------------------------------------------------
// ImplementationGroupProxy
// Exported proxy for instantiation method resolution
// ----------------------------------------------------------------------------
//
EXPORT_C const TImplementationProxy*
ImplementationGroupProxy( TInt& aTableCount )
    {
    aTableCount = sizeof( ImplementationTable ) /
    sizeof( TImplementationProxy );
    return ImplementationTable;
    }

// ============================ MEMBER FUNCTIONS ===============================

// -----------------------------------------------------------------------------
// CCaWidgetScannerPlugin ::CCaWidgetScannerPlugin
// C++ default constructor can NOT contain any code, that
// might leave.
// -----------------------------------------------------------------------------
//
CCaWidgetScannerPlugin::CCaWidgetScannerPlugin()
    {
    }

// -----------------------------------------------------------------------------
// CCaWidgetScannerPlugin ::ConstructL
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CCaWidgetScannerPlugin::ConstructL( TPluginParams* aPluginParams )
    {
    User::LeaveIfError( iFs.Connect() );
    iMmcWatcher = CCaMmcWatcher::NewL( iFs, this );
    iInstallNotifier = CCaWidgetScannerInstallNotifier::NewL( this,
        KUidSystemCategory, KSAUidSoftwareInstallKeyValue );
    iParser = CCaWidgetScannerParser::NewL( iFs );
    iStorageHandler = CCaWidgetStorageHandler::NewL(
            aPluginParams->storageProxy, iFs );
    SynchronizeL();
    }

// -----------------------------------------------------------------------------
// CCaWidgetScannerPlugin ::NewL
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CCaWidgetScannerPlugin * CCaWidgetScannerPlugin::NewL(
        TPluginParams* aPluginParams )
    {
    CCaWidgetScannerPlugin * self = NewLC( aPluginParams );
    CleanupStack::Pop( self );
    return self;
    }

// -----------------------------------------------------------------------------
// CCaWidgetScannerPlugin ::NewLC
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CCaWidgetScannerPlugin * CCaWidgetScannerPlugin::NewLC(
        TPluginParams* aPluginParams )
    {
    CCaWidgetScannerPlugin * self = new( ELeave ) CCaWidgetScannerPlugin ( );
    CleanupStack::PushL( self );
    self->ConstructL( aPluginParams );
    return self;
    }

// -----------------------------------------------------------------------------
// Destructor
// -----------------------------------------------------------------------------
//
CCaWidgetScannerPlugin::~CCaWidgetScannerPlugin ()
    {
    delete iMmcWatcher;
    delete iInstallNotifier;
    delete iParser;
    delete iStorageHandler;
    iFs.Close();
    }

// ----------------------------------------------------------------------------
//
// ----------------------------------------------------------------------------
//
void CCaWidgetScannerPlugin::SynchronizeL()
    {
    iStorageHandler->SynchronizeL( iParser->WidgetsScanL() );
    }

// ----------------------------------------------------------------------------
//
// ----------------------------------------------------------------------------
//
void CCaWidgetScannerPlugin::MmcChangeL()
    {
    SynchronizeL();
    }

// end of file