--- a/remotestoragefw/remotefileengine/src/rsfwmkdirstatemachine.cpp Wed Jun 09 10:37:35 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
-* 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: State machine for creating directories
-*
-*/
-
-
-#include "rsfwmkdirstatemachine.h"
-#include "rsfwfileentry.h"
-#include "rsfwfiletable.h"
-#include "rsfwinterface.h"
-#include "rsfwfileengine.h"
-#include "mdebug.h"
-#include "rsfwdirentattr.h"
-#include "rsfwvolumetable.h"
-
-// Make dir
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::CRsfwMkDirStateMachine
-// ----------------------------------------------------------------------------
-//
-CRsfwMkDirStateMachine::CRsfwMkDirStateMachine()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::~CRsfwMkDirStateMachine
-// ----------------------------------------------------------------------------
-//
-CRsfwMkDirStateMachine::~CRsfwMkDirStateMachine()
- {
- delete iDirEntAttr;
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::CompleteRequestL
-// ----------------------------------------------------------------------------
-//
-CRsfwRfeStateMachine::TState* CRsfwMkDirStateMachine::CompleteRequestL(TInt aError)
- {
- if (iKidCreated && aError)
- {
- if ( aError == KErrNotFound )
- {
- User::Leave( KErrNotFound );
- }
- delete iKidFep;
- iKidFep = NULL;
- }
-
- // it may happen by chance that the new name is equal to iLastFailedLookup value
- FileEngine()->ResetFailedLookup();
-
- CompleteAndDestroyState()->SetErrorCode(aError);
- return CompleteAndDestroyState();
- }
-
-
-
-// Check if exists
-
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::TCheckIfExistsState::TCheckIfExistsState
-// ----------------------------------------------------------------------------
-//
-CRsfwMkDirStateMachine::
-TCheckIfExistsState::TCheckIfExistsState(CRsfwMkDirStateMachine* aParent)
- : iOperation(aParent)
- {
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::TCheckIfExistsState::EnterL
-// ----------------------------------------------------------------------------
-//
-void CRsfwMkDirStateMachine::TCheckIfExistsState::EnterL()
- {
- TRfeMkdirInArgs* inArgs =
- static_cast<TRfeMkdirInArgs*>(iOperation->iInArgs);
- TPtrC kidName(inArgs->iEntry.iName);
-
- iOperation->iKidFep = NULL;
- iOperation->iKidCreated = EFalse;
-
- // the parent to which we are making
- if (!iOperation->Node())
- {
- User::Leave(KErrNotFound);
- }
-
- DEBUGSTRING16(("making directory '%S' in fid %d",
- &kidName,
- iOperation->Node()->Fid().iNodeId));
-
- // Do we know about the kid yet?
- iOperation->iKidFep = iOperation->Node()->FindKidByName(kidName);
- if (!iOperation->iKidFep)
- {
- // This is either a completely new directory,
- // or a directory that we have not yet created a file entry for.
- // (should always happen)
- if (!iOperation->Volumes()->EnsureMetadataCanBeAddedL(iOperation->Node()))
- {
- User::Leave(KErrNoMemory);
- }
- iOperation->iKidFep = CRsfwFileEntry::NewL(kidName, iOperation->Node());
- iOperation->iKidCreated = ETrue;
- }
-
- iOperation->FileEngine()->GetAttributesL(*iOperation->iKidFep,
- iOperation->iDirEntAttr,
- KNodeTypeDir,
- iOperation);
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::TCheckIfExistsState::CompleteL
-// ----------------------------------------------------------------------------
-//
-CRsfwMkDirStateMachine::TState*
-CRsfwMkDirStateMachine::TCheckIfExistsState::CompleteL()
- {
- // GetAttributes returned KErrNone
- // directory exist and we return KErrAlreadyExitsts
- return iOperation->CompleteRequestL(KErrAlreadyExists);
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::TCheckIfExistsState::ErrorL
-// ----------------------------------------------------------------------------
-//
-CRsfwMkDirStateMachine::TState*
-CRsfwMkDirStateMachine::TCheckIfExistsState::ErrorL(TInt /*aCode*/)
- {
- // GetAttributes returned error -
- // directory does not exists, let's create it
-
- return new CRsfwMkDirStateMachine::TMakeDirectoryState(iOperation);
- }
-
-
-
-// Make directory
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::TMakeDirectoryState::TMakeDirectoryState
-// ----------------------------------------------------------------------------
-//
-CRsfwMkDirStateMachine::
-TMakeDirectoryState::TMakeDirectoryState(CRsfwMkDirStateMachine* aParent)
- : iOperation(aParent)
- {
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::TMakeDirectoryState::EnterL
-// ----------------------------------------------------------------------------
-//
-void CRsfwMkDirStateMachine::TMakeDirectoryState::EnterL()
- {
- // Make the directory
- if (!iOperation->FileEngine()->Disconnected())
- {
- HBufC* kidPath =
- iOperation->FileEngine()->FullNameLC(*iOperation->iKidFep);
- iOperation->FileEngine()->RemoteAccessL()->MakeDirectoryL(*kidPath,
- iOperation);
- CleanupStack::PopAndDestroy(kidPath);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::TMakeDirectoryState::CompleteL
-// ----------------------------------------------------------------------------
-//
-CRsfwMkDirStateMachine::TState*
-CRsfwMkDirStateMachine::TMakeDirectoryState::CompleteL()
- {
- iOperation->iKidFep->SetType(KNodeTypeDir);
- iOperation->FileEngine()->SetupAttributes(*iOperation->iKidFep);
-
- // Attach the kid
- if (iOperation->iKidCreated)
- {
- iOperation->FileEngine()->iFileTable->AddL(iOperation->iKidFep);
- iOperation->Node()->AddKid(*iOperation->iKidFep);
- }
-
- // Create an empty container file locally
- iOperation->FileEngine()->CreateContainerFileL(*iOperation->iKidFep);
- iOperation->iKidFep->SetCached(ETrue);
- iOperation->iKidFep->SetAttribValidationTime();
-
- // Refresh parent directory next time it is accessed
- iOperation->Node()->SetLocallyDirty();
-
- return iOperation->CompleteRequestL(KErrNone);
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwMkDirStateMachine::TMakeDirectoryState::ErrorL
-// ----------------------------------------------------------------------------
-//
-CRsfwMkDirStateMachine::TState*
-CRsfwMkDirStateMachine::TMakeDirectoryState::ErrorL(TInt aCode)
- {
- DEBUGSTRING(("remote mkdir failed!"));
- return iOperation->CompleteRequestL(aCode);
- }
-