diff -r e5b3a2155e1a -r d2c4c66342f3 messagingfw/senduiservices/launcher/src/senduiservice.cpp --- a/messagingfw/senduiservices/launcher/src/senduiservice.cpp Thu Aug 19 10:24:00 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,193 +0,0 @@ -/* -* 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: SendUi service class. Receives message data from the -* SendUi host. -* -*/ - - - - -#include -#include - -#include -#include -#include - -#include "senduiservice.h" -#include "senduilauncherappui.h" -#include "senduiserviceslog.h" -#include "SendUiPrivateCRKeys.h" -#include "senduiservicecommands.h" -#include "senduilauncher.h" -#include - -typedef TBuf8 TTransferBuf; -// --------------------------------------------------------------------------- -// ConstructL -// --------------------------------------------------------------------------- -// -void CSendUiService::ConstructL() - { - iAppUi = (CSendUiLauncherAppUi*)CEikonEnv::Static()->EikAppUi(); - } - -// --------------------------------------------------------------------------- -// NewLC -// --------------------------------------------------------------------------- -// -CSendUiService* CSendUiService::NewL() - { - CSendUiService* self = new( ELeave ) CSendUiService; - CleanupStack::PushL( self ); - self->ConstructL(); - - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CSendUiService::~CSendUiService() - { - LOGTEXT(_L("CSendUiService->~ >>")); - delete iMessageData; - delete iTransferBuffer; - delete iReadStream; - LOGTEXT(_L("CSendUiService->~ <<")); - } - -// --------------------------------------------------------------------------- -// ServiceL -// Receives message from SendUi and passes data to AppUi -// --------------------------------------------------------------------------- -// -void CSendUiService::ServiceL( const RMessage2& aMessage ) - { - LOGTEXT(_L("CSendUiService->ServiceL >>")); - - TTransferBuf transferBuffer; - - switch (aMessage.Function()) - { - case ESendUiDataBlock: // receive main message data in blocks - { - TPckgBuf bufPckg; - TPckgBuf blockSizePckg; - TPckgBuf totalSizePckg; - - aMessage.ReadL( ESlot1, bufPckg ); - aMessage.ReadL( ESlot2, blockSizePckg ); - aMessage.ReadL( ESlot3, totalSizePckg ); - - TInt blockSize = blockSizePckg(); - TInt totalSize = totalSizePckg(); - - transferBuffer = bufPckg(); - - if (!iTransferBuffer) - { - iTransferredBytes = 0; - iTransferBuffer = HBufC8::NewL( totalSize ); - } - TPtr8 bufferPtr8( iTransferBuffer->Des() ); - bufferPtr8.Insert( iTransferredBytes, transferBuffer ); - - iTransferredBytes += blockSize; - break; - } - case EDataSent: // this is the last data block, start reading - { - - iReadStream = new(ELeave)RDesReadStream( *iTransferBuffer ); - TUid serviceProviderUid(KNullUid); - TUid dataTypeUid(KNullUid); - - if ( iTransferBuffer ) - { - LOGTEXT(_L("CSendUiService->ServiceL: ELaunchSendUi: openstream")); - - TUint32 tmpVal = iReadStream->ReadUint32L(); - serviceProviderUid = TUid::Uid( tmpVal ); - - tmpVal = iReadStream->ReadUint32L(); - dataTypeUid = TUid::Uid( tmpVal ); - } - iMessageData = CMessageData::NewL(); - break; - } - case ECopyFileHandle: // receive file handles - { - LOGTEXT(_L("CSendUiService->ServiceL: ECopyFileHandle")); - - // open source file handle - RFile sourceFile; - User::LeaveIfError(sourceFile.AdoptFromClient(aMessage, 0, 1)); - CleanupClosePushL(sourceFile); - iMessageData->AppendAttachmentHandleL( sourceFile ); - CleanupStack::Pop(&sourceFile); - - LOGTEXT(_L("CSendUiService->ServiceL: ECopyFileHandle done")); - break; - } - case ELaunchSendUi: // construct message data and invoke sendui - { - LOGTEXT(_L("CSendUiService->ServiceL: ELaunchSendUi>>")); - - if ( iReadStream ) - { - LOGTEXT(_L("CSendUiService->ServiceL: ELaunchSendUi: openstream")); - - - TUint32 tmpVal = iReadStream->ReadUint32L(); - TUid serviceUid( TUid::Uid( tmpVal )); - - tmpVal = iReadStream->ReadUint32L(); - TBool launchEmbedded( tmpVal ); - - tmpVal = iReadStream->ReadUint32L(); - - if (tmpVal ) - { - iMessageData->InternalizeL( *iReadStream ); - } - - iReadStream->Release(); - iReadStream->Close(); - - iAppUi->CreateAndSendMessageL( - serviceUid, - iMessageData, - launchEmbedded ); - } - iAppUi->DoDelayedExitL( 0 ); - - LOGTEXT(_L("CSendUiService->ServiceL: complete message")); - - break; - } - default: - // No other commands exist. - LOGTEXT(_L("CSendUiService->ServiceL: ERROR! Unknown command")); - } - aMessage.Complete( KErrNone ); - -}; - -// End of File -