sl@0: /* sl@0: * Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: Custom Interface CustomCommand Parser sl@0: * sl@0: */ sl@0: sl@0: sl@0: #include sl@0: #include sl@0: #include "CustomInterfaceBuilderTypes.h" sl@0: sl@0: sl@0: EXPORT_C CCustomInterfaceCustomCommandParser* CCustomInterfaceCustomCommandParser::NewL(MCustomInterfaceCustomCommandImplementor& aImplementor) sl@0: { sl@0: CCustomInterfaceCustomCommandParser* self = new(ELeave) CCustomInterfaceCustomCommandParser(aImplementor); sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: CCustomInterfaceCustomCommandParser::CCustomInterfaceCustomCommandParser(MCustomInterfaceCustomCommandImplementor& aImplementor) : sl@0: CMMFCustomCommandParserBase(KUidCustomInterfaceBuilder), sl@0: iImplementor(aImplementor) sl@0: { sl@0: } sl@0: sl@0: void CCustomInterfaceCustomCommandParser::ConstructL() sl@0: { sl@0: } sl@0: sl@0: CCustomInterfaceCustomCommandParser::~CCustomInterfaceCustomCommandParser() sl@0: { sl@0: } sl@0: sl@0: void CCustomInterfaceCustomCommandParser::HandleRequest(TMMFMessage& aMessage) sl@0: { sl@0: ASSERT(aMessage.Destination().InterfaceId() == KUidCustomInterfaceBuilder); sl@0: TRAPD(error, DoHandleRequestL(aMessage)); sl@0: if ( error ) sl@0: { sl@0: aMessage.Complete(error); sl@0: } sl@0: } sl@0: sl@0: void CCustomInterfaceCustomCommandParser::DoHandleRequestL(TMMFMessage& aMessage) sl@0: { sl@0: // call required function to do the requested operation sl@0: switch( aMessage.Function() ) sl@0: { sl@0: case ECibGetBuilder: sl@0: DoGetBuilderL(aMessage); sl@0: break; sl@0: sl@0: default: sl@0: User::Leave(KErrNotSupported); sl@0: sl@0: } sl@0: aMessage.Complete(KErrNone); sl@0: } sl@0: sl@0: void CCustomInterfaceCustomCommandParser::DoGetBuilderL(TMMFMessage& aMessage) sl@0: { sl@0: TMMFMessageDestinationPckg handlePckg(iImplementor.GetCustomInterfaceBuilderL()); sl@0: TInt error = aMessage.WriteDataToClient(handlePckg); sl@0: User::LeaveIfError(error); sl@0: } sl@0: sl@0: sl@0: // ========================== OTHER EXPORTED FUNCTIONS ========================= sl@0: sl@0: sl@0: sl@0: // End of File