diff -r 3ab5c078b490 -r c63ee96dbe5f taskswitcher/server/src/hsdataprovidertask.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/server/src/hsdataprovidertask.cpp Thu Sep 16 12:11:40 2010 +0100 @@ -0,0 +1,40 @@ +/* +* 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: +* +*/ +#include "hsdataprovidertask.h" +#include "tstaskmonitorglobals.h" + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void HsDataProviderTask::ExecuteL(const MTsDataProvider& provider, const RMessage2& msg) +{ + switch (msg.Function()) { + case GetRunningAppInfo: + msg.WriteL(KRequestDataSizeOffset, TPckgBuf(provider.Data().Length())); + msg.Complete(KErrNone); + break; + + case FlushData: + if (provider.Data().Length() > msg.GetDesMaxLengthL(KRequestDataBufferOffset)) { + User::Leave(KErrCorrupt); + } + msg.WriteL(KRequestDataBufferOffset, provider.Data()); + msg.Complete(KErrNone); + break; + } +}