diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstcmdprocess/src/cvimpstcmdhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstcmdprocess/src/cvimpstcmdhandler.cpp Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,117 @@ +/* +* 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: implementation for CVIMPSTCmdHandler +* +*/ + + +// INCLUDE FILES +#include "cvimpstcmdhandler.h" +#include "cvimpstcmdfactory.h" + +#include "mvimpstcmd.h" +#include "mvimpstengine.h" + + +// -------------------------------------------------------------------------- +// CVIMPSTCmdHandler::CVIMPSTCmdHandler +// -------------------------------------------------------------------------- +// +CVIMPSTCmdHandler::CVIMPSTCmdHandler() + { + } + +// -------------------------------------------------------------------------- +// CVIMPSTCmdHandler::~CVIMPSTCmdHandler +// -------------------------------------------------------------------------- +// +CVIMPSTCmdHandler::~CVIMPSTCmdHandler() + { + delete iCommandFactory; + } + +// -------------------------------------------------------------------------- +// CVIMPSTCmdHandler::NewL +// -------------------------------------------------------------------------- +// +EXPORT_C CVIMPSTCmdHandler* CVIMPSTCmdHandler::NewL(MVIMPSTEngine& aEngine) + { + CVIMPSTCmdHandler* self = new(ELeave) CVIMPSTCmdHandler(); + CleanupStack::PushL(self); + self->ConstructL(aEngine); + CleanupStack::Pop(self); + return self; + } + +// -------------------------------------------------------------------------- +// CVIMPSTCmdHandler::ConstructL +// -------------------------------------------------------------------------- +// +inline void CVIMPSTCmdHandler::ConstructL(MVIMPSTEngine& aEngine) + { + iCommandFactory = CVIMPSTCmdFactory::NewL(aEngine); + } + +// -------------------------------------------------------------------------- +// CVIMPSTCmdHandler::HandleCommandL +// -------------------------------------------------------------------------- +// +TBool CVIMPSTCmdHandler::HandleCommandL + ( const TImCommandId aCommandId, MVIMPSTCmdObserver* aObserver, + TAny* aData ) + { + TBool ret = EFalse; + + //use the variable aData to set the command related data + MVIMPSTCmd* cmd = iCommandFactory->CreateCommandForIdL( + aCommandId,aData); + + if (cmd) + { + cmd->AddObserver(*aObserver); + TRAPD (err, cmd->ExecuteLD()); + User::LeaveIfError(err); + ret = ETrue; + } + + return ret; + } + // -------------------------------------------------------------------------- +// CVIMPSTCmdHandler::RegisterEventObserver +// -------------------------------------------------------------------------- +// +void CVIMPSTCmdHandler::RegisterEventObserverL( MVIMPSTCmdObserver* aObserver ) + { + iCommandFactory->AddObserverL(aObserver); + + } +// -------------------------------------------------------------------------- +// CVIMPSTCmdHandler::UnRegisterEventObserver +// -------------------------------------------------------------------------- +// +void CVIMPSTCmdHandler::UnRegisterEventObserver( MVIMPSTCmdObserver* aObserver ) + { + iCommandFactory->RemoveObserver(aObserver); + } +// -------------------------------------------------------------------------- +// CVIMPSTCmdHandler::GetProcessInterface +// -------------------------------------------------------------------------- +// +MVIMPSTProcessArray& CVIMPSTCmdHandler::GetProcessInterface() + { + return iCommandFactory->GetProcessInterface(); + } + + +// End of File