diff -r 95243422089a -r 491b3ed49290 filemanager/src/filemanager/src/operationservice/fmoperationthread.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/src/filemanager/src/operationservice/fmoperationthread.cpp Tue Aug 31 15:06:05 2010 +0300 @@ -0,0 +1,75 @@ +/* +* Copyright (c) 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: +* The source file of the operation thread of file manager +* +*/ + +#include "fmoperationthread.h" +#include "fmbackuprestorehandler.h" + +#include +#include + +/* + * Constructs the operation thread with \a parent. + */ +FmOperationThread::FmOperationThread( QObject *parent ) : QThread( parent ), + mStop( false), mOperationBase( 0 ) +{ + setPriority( LowestPriority ); +} + +/* + * Destructs the operation thread. + */ +FmOperationThread::~FmOperationThread() +{ +} + +/* + * Prepare some conditions before starts the operation. + * Returns the error id. + * \a operationBase the operation to be prepared. + */ +int FmOperationThread::prepareOperationAndStart( FmOperationBase* operationBase ) +{ + if ( isRunning() ) { + return FmErrAlreadyStarted; + } + mOperationBase = operationBase; + int ret = mOperationBase->prepare(); + if ( ret == FmErrNone ) { + mStop = false; + start(); + } + return ret; +} + +/* Stops the current thread. + * Caused by user interaction. + */ +void FmOperationThread::stop() +{ + mStop = true; +} + +/* + * reimp + */ +void FmOperationThread::run() +{ + mOperationBase->start( &mStop ); +} +