diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/repositoryhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/plugins/alftranseffect/alftranseffectplugin/src/repositoryhandler.cpp Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,119 @@ +/* +* Copyright (c) 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: Transition server repository handler. +* +*/ + + +#include "repositoryhandler.h" +#include +#include + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +CRepositoryHandler::CRepositoryHandler(TInt aPriority, const TUid& aRepository, TInt aKey) : + CActive(aPriority), + iRepository(aRepository), + iKey(aKey) + { + } + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void CRepositoryHandler::ConstructL() + { + iCrep = CRepository::NewL(iRepository); + __ALFFXLOGSTRING("CRepositoryHandler: Starting"); + CActiveScheduler::Add(this); + RunL(); + } + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +CRepositoryHandler* CRepositoryHandler::NewL(TInt aPriority, const TUid& aRepository, TUint32 aKey) + { + CRepositoryHandler* self = new (ELeave) CRepositoryHandler(aPriority, aRepository, aKey); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +CRepositoryHandler::~CRepositoryHandler() + { + Cancel(); + delete iCrep; + } + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void CRepositoryHandler::RunL() + { + iError = iCrep->NotifyRequest(iKey, iStatus); + TInt value; + TInt err = iCrep->Get(iKey, value); + if( err == KErrNone ) + { + iValue = value; + } + + if(iError == KErrNone) + { + SetActive(); + iError = err; + } + } + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +TInt CRepositoryHandler::GetValue(TInt& aValue) + { + if(iError != KErrNone) //if we had an error eariler + { + TInt value; + iError = iCrep->Get(iKey, value); //try to get the value + if(iError == KErrNone) + { + iValue = value; + if (!IsActive()) + { + iError = iCrep->NotifyRequest(iKey, iStatus); //try to start request + if(iError == KErrNone) + { + SetActive(); + } + } + } + } + aValue = iValue; + return iError; + } + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void CRepositoryHandler::DoCancel() + { + __ALFFXLOGSTRING("CRepositoryHandler: Canceled"); + iCrep->NotifyCancel(iKey); + }