diff -r 88ee4cf65e19 -r 1aa8c82cb4cb remotestoragefw/remotefileengine/src/rsfwrfesyncoperation.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotestoragefw/remotefileengine/src/rsfwrfesyncoperation.cpp Wed Sep 01 12:15:08 2010 +0100 @@ -0,0 +1,99 @@ +/* +* Copyright (c) 2005-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: Encapsulates synchronous operation +* +*/ + + +#include "rsfwrfesyncoperation.h" +#include "rsfwsyncoperations.h" +#include "rsfwvolume.h" +#include "rsfwcommon.h" +#include "rsfwrfeserver.h" +#include "mdebug.h" + + +// ---------------------------------------------------------------------------- +// CRsfwRfeSyncOperation::DoRequestL +// ---------------------------------------------------------------------------- +// +void CRsfwRfeSyncOperation::DoRequestL(CRsfwRfeRequest* aRequest) + { + __ASSERT_ALWAYS(iDoRequestL, User::Panic(KRfeServer, ENullRequestHandler)); + (*iDoRequestL)(aRequest); + } + +// ---------------------------------------------------------------------------- +// CRsfwRfeSyncOperation::Set +// ---------------------------------------------------------------------------- +// +void CRsfwRfeSyncOperation::Set(CRsfwRfeRequest* aRequest, TInt aOpCode) + { + if (aRequest->iVolume) + { + DEBUGSTRING(("<<< Dispatch enter (volume=%d)", + aRequest->iVolume->iMountInfo.iMountStatus.iVolumeId)); + } + else + { + DEBUGSTRING(("<<< Dispatch enter")); + } + + switch (aOpCode) + { + case EDismountByVolumeId: + DEBUGSTRING(("DISMOUNTBYVOLUMEID (operation %d)", aOpCode)); + iDoRequestL = &TRFeDismountVolumeId::DoRequestL; + break; + + case EDismountByDriveLetter: + DEBUGSTRING(("DISMOUNTBYDRIVELETTER (operation %d)", aOpCode)); + iDoRequestL = &TRFeDismountByDriveLetter::DoRequestL; + break; + + case EGetMountList: + DEBUGSTRING(("GETMOUNTLIST (operation %d)", aOpCode)); + iDoRequestL = &TRFeGetMountList::DoRequestL; + break; + + case EGetMountInfo: + DEBUGSTRING(("GETMOUNTINFO (operation %d)", aOpCode)); + iDoRequestL = &TRFeGetMountInfo::DoRequestL; + break; + + case EFsRoot: + case ESetAttr: + case EFsIoctl: + DEBUGSTRING(("ROOT (operation %d)", aOpCode)); + iDoRequestL = &TRFeSynCRsfwRfeRequest::DoRequestL; + break; + + case EOkToWrite: + DEBUGSTRING(("WRITEDATA (operation %d)", aOpCode)); + iDoRequestL = &TRFeWriteData::DoRequestL; + break; + case EDirRefresh: + DEBUGSTRING(("REFRESHDIR (operation %d)", aOpCode)); + iDoRequestL = &TRFeDirectoryRefresh::DoRequestL; + break; + case ECancelAll: + DEBUGSTRING(("CANCEL TRANSFER (operation %d)", aOpCode)); + iDoRequestL = &TRFeCancelAll::DoRequestL; + break; + } + + iIsSync = ETrue; + CRsfwRfeOperation::Set(aOpCode); + } +