diff -r 000000000000 -r 4e1aa6a622a0 accessoryservices/remotecontrolfw/client/inner/src/bulksession.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/accessoryservices/remotecontrolfw/client/inner/src/bulksession.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,173 @@ +// Copyright (c) 2004-2009 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: +// + + + +/** + @file + @internalComponent +*/ + +#include +#include + +#include "remconbulkclient.h" + +#ifdef __FLOG_ACTIVE +_LIT8(KLogComponent, LOG_COMPONENT_REMCON_INNER); +#endif + +EXPORT_C RRemConBulk::RRemConBulk() +: iUidPckg(0), + iOpIdPckg(0) + { + LOG_FUNC + } + +EXPORT_C TVersion RRemConBulk::Version() const + { + LOG_FUNC + return(TVersion( KRemConBulkSrvMajorVersionNumber, + KRemConBulkSrvMinorVersionNumber, + KRemConBulkSrvBuildNumber + ) + ); + } + +EXPORT_C TInt RRemConBulk::Connect() + { + LOG_FUNC + const TInt KNumberOfBulkSessionAsyncApis = 2; + return CreateSession(KRemConBulkServerName, Version(), KNumberOfBulkSessionAsyncApis); + } + +EXPORT_C TInt RRemConBulk::SendUnreliable(TUid aInterfaceUid, + TUint aOperationId, + const TDesC8& aData) + { + LOG_FUNC + TIpcArgs args; + + args.Set(0, aInterfaceUid.iUid); + args.Set(1, aOperationId); + args.Set(2, &aData); + TInt err = SendReceive(ERemConBulkSendUnreliable, args); + return err; + } + + +EXPORT_C void RRemConBulk::Send(TRequestStatus& aStatus, + TUid aInterfaceUid, + TUint aOperationId, + const TDesC8& aData) + { + LOG_FUNC + + TIpcArgs args; + args.Set(0, aInterfaceUid.iUid); + args.Set(1, aOperationId); + args.Set(2, &aData); + + SendReceive(ERemConBulkSend, + args, + aStatus + ); + } + +EXPORT_C TInt RRemConBulk::SendCancel() + { + LOG_FUNC + + //Ignore Return code because + // a) It'll mostly be other than KErrNone because the server has terminated, in which + // case the original async request will have completed with the error anyway! + // b) It's meaningless to the client whatever the return code is. + (void)SendReceive(ERemConBulkSendCancel); + + return KErrNone; + } + +EXPORT_C void RRemConBulk::Receive(TRequestStatus& aStatus, + TUid& aInterfaceUid, + TUint& aOperationId, + TDes8& aData) + { + LOG_FUNC + + TIpcArgs args; + iUidPckg.Set((TUint8*)&aInterfaceUid.iUid, sizeof(TUint), sizeof(TUint)); + args.Set(0, &iUidPckg); + iOpIdPckg.Set((TUint8*)&aOperationId, sizeof(TUint), sizeof(TUint)); + args.Set(1, &iOpIdPckg); + args.Set(2, &aData); + + SendReceive(ERemConBulkReceive, + args, + aStatus); + } + +EXPORT_C TInt RRemConBulk::ReceiveCancel() + { + LOG_FUNC + + // See RRemConBulk::SendCancel() for comment + (void)SendReceive(ERemConBulkReceiveCancel); + + return KErrNone; + } + +EXPORT_C TInt RRemConBulk::__DbgMarkHeap() + { + LOG_FUNC +#ifdef _DEBUG + return SendReceive(ERemConBulkDbgMarkHeap); +#else + return KErrNone; +#endif + } + +EXPORT_C TInt RRemConBulk::__DbgCheckHeap(TInt aCount) + { + LOG_FUNC +#ifdef _DEBUG + return SendReceive(ERemConBulkDbgCheckHeap, TIpcArgs(aCount)); +#else + (void)aCount; + return KErrNone; +#endif + } + +EXPORT_C TInt RRemConBulk::__DbgMarkEnd(TInt aCount) + { + LOG_FUNC +#ifdef _DEBUG + return SendReceive(ERemConBulkDbgMarkEnd, TIpcArgs(aCount)); +#else + (void)aCount; + return KErrNone; +#endif + } + +EXPORT_C TInt RRemConBulk::__DbgFailNext(TInt aCount) + { + LOG_FUNC +#ifdef _DEBUG + return SendReceive(ERemConBulkDbgFailNext, TIpcArgs(aCount)); +#else + (void)aCount; + return KErrNone; +#endif + } +