--- a/remotestoragefw/remotefileengine/src/rsfwgetattributesstatemachine.cpp Mon Jan 18 21:00:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +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 getting attributes of a file
-*
-*/
-
-
-#include "rsfwgetattributesstatemachine.h"
-#include "rsfwopenbypathstatemachine.h"
-#include "rsfwinterface.h"
-#include "rsfwrferequest.h"
-#include "rsfwrfeoperation.h"
-#include "rsfwfileentry.h"
-#include "rsfwfileengine.h"
-#include "mdebug.h"
-#include "rsfwdirentattr.h"
-#include "rsfwvolumetable.h"
-
-// ----------------------------------------------------------------------------
-// CRsfwGetAttributesStateMachine::CRsfwGetAttributesStateMachine
-// ----------------------------------------------------------------------------
-//
-CRsfwGetAttributesStateMachine::CRsfwGetAttributesStateMachine()
- {
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwGetAttributesStateMachine::CompleteRequestL
-// ----------------------------------------------------------------------------
-//
-CRsfwRfeStateMachine::TState* CRsfwGetAttributesStateMachine::CompleteRequestL(TInt aError)
- {
- TRfeGetAttrOutArgs* outArgs = static_cast<TRfeGetAttrOutArgs*>(iOutArgs);
-
- if (!aError)
- {
- outArgs->iAttr.iAtt = Node()->Att();
- outArgs->iAttr.iSize = Node()->Size();
- outArgs->iAttr.iModified = Node()->Modified();
- }
-
- CompleteAndDestroyState()->SetErrorCode(aError);
- return CompleteAndDestroyState();
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwGetAttributesStateMachine::TRefreshAttributesState::TRefreshAttributesState
-// ----------------------------------------------------------------------------
-//
-CRsfwGetAttributesStateMachine::
-TRefreshAttributesState::
-TRefreshAttributesState(CRsfwAttributeRefreshingStateMachine* aParent)
- : iOperation(aParent)
- {
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwGetAttributesStateMachine::TRefreshAttributesState::EnterL
-// ----------------------------------------------------------------------------
-//
-void CRsfwGetAttributesStateMachine::TRefreshAttributesState::EnterL()
- {
- DEBUGSTRING(("CRsfwGetAttributesStateMachine::TRefreshAttributesState::EnterL"));
- TInt err = KErrNone;
-
- if (iOperation->Node())
- {
- DEBUGSTRING(("getting attributes of fid %d",
- iOperation->Node()->Fid().iNodeId));
-
- // as the entry is "needed" move it to the back of metadata LRU list
- iOperation->Volumes()->MoveToTheBackOfMetadataLRUPriorityListL(iOperation->Node());
-
- if (!(iOperation->FileEngine()->UseCachedAttributes(*iOperation->Node())))
- {
- // If we find the file entry and
- // the time window to use cached attributes has passed.
- // Store the old attributes
- delete iOperation->iDirEntAttrOld;
- iOperation->iDirEntAttrOld = NULL;
- iOperation->iDirEntAttrOld = CRsfwDirEntAttr::NewL();
- iOperation->Node()->GetAttributesL(*iOperation->iDirEntAttrOld);
- if (!iOperation->FileEngine()->WriteDisconnected())
- {
- iOperation->FileEngine()->GetAttributesL(
- *(iOperation->Node()),
- iOperation->iDirEntAttr,
- iOperation->Node()->Type(),
- iOperation);
- }
- else
- {
- iOperation->HandleRemoteAccessResponse(0, KUpdateNotRequired);
- }
- if (err)
- {
- User::Leave(err);
- }
- }
- else
- {
- // use cached attributes
- iOperation->HandleRemoteAccessResponse(0, KUpdateNotRequired);
- }
- }
- else
- {
- User::Leave(KErrPathNotFound);
- }
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwGetAttributesStateMachine::TRefreshAttributesState::CompleteL
-// ----------------------------------------------------------------------------
-//
-CRsfwGetAttributesStateMachine::TState*
-CRsfwGetAttributesStateMachine::TRefreshAttributesState::CompleteL()
- {
-
- DEBUGSTRING(("TRefreshAttributesState::CompleteL for fid %d",
- iOperation->Node()->Fid().iNodeId));
-
- // from CRsfwFileEngine::UpdateAttributes()
- iOperation->Node()->SetAttributesL(*iOperation->iDirEntAttr, ETrue);
-
- if (iOperation->Node()->IsOpenedForWriting())
- {
- iOperation->Node()->iUseCachedData = ETrue;
- }
- else if (iOperation->FileEngine()->DataChanged(*iOperation->iDirEntAttrOld,
- *iOperation->iDirEntAttr))
- {
- // discard the old cache file
- // this will also call SetCached(EFalse) etc...
- iOperation->Node()->RemoveCacheFile();
- }
-
- DEBUGSTRING(("Attributes: attr=0x%x, size=%d, time=",
- iOperation->Node()->Att(),
- iOperation->Node()->Size()));
- DEBUGTIME((iOperation->Node()->Modified()));
-
- // from CRsfwFileEngine::UpdateFileAttributes/UpdateDirAttributes
- return CompleteOurRequestL(KErrNone);
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwGetAttributesStateMachine::TRefreshAttributesState::ErrorL
-// ----------------------------------------------------------------------------
-//
-CRsfwGetAttributesStateMachine::TState*
-CRsfwGetAttributesStateMachine::TRefreshAttributesState::ErrorL(TInt aCode)
- {
- DEBUGSTRING(("CRsfwGetAttributesStateMachine::TRefreshAttributesState::ErrorL %d", aCode));
- if (aCode == KUpdateNotRequired)
- {
- // note that we should NOT set iUseCachedData to ETrue here
- // (if it is false, only after fetch it should be set to true
- // , or openbypath if we are writing to the file)
- aCode = KErrNone;
-
- DEBUGSTRING(("update was not required"));
-
- DEBUGSTRING(("Attributes: attr=0x%x, size=%d, time=",
- iOperation->Node()->Att(),
- iOperation->Node()->Size()));
- DEBUGTIME((iOperation->Node()->Modified()));
-
- }
- else
- {
- // from CRsfwFileEngine::UpdateAttributes()
- if (!(iOperation->Node()->IsOpenedForWriting()))
- {
- // "iOperation->Node()" has been removed from the server??
- // : remove FEP here
- iOperation->Node()->RemoveCacheFile();
- }
- }
- return CompleteOurRequestL(aCode);
- }
-
-// ----------------------------------------------------------------------------
-// CRsfwGetAttributesStateMachine::TRefreshAttributesState::CompleteOurRequestL
-// ----------------------------------------------------------------------------
-//
-CRsfwGetAttributesStateMachine::TState*
-CRsfwGetAttributesStateMachine::TRefreshAttributesState::CompleteOurRequestL(TInt aCode)
- {
- if (iOperation->Request()->Operation()->Function() == EGetAttr)
- {
- // we are running in GetAttr()
- return iOperation->CompleteRequestL(aCode);
- }
- else if (iOperation->Request()->Operation()->Function() == EOpenByPath)
- {
- // we are running in OpenByPath()
- if (aCode == KErrNone)
- {
- return new (ELeave) CRsfwOpenByPathStateMachine::TRequestOpenModeState(
- (CRsfwOpenByPathStateMachine *)iOperation);
- }
- else
- {
- // attributes expired, refrshing them failed, do not open the file
- return iOperation->CompleteRequestL(aCode);
- }
- }
- else
- {
- return NULL;
- }
- }
-
-