diff -r 185201be11b0 -r 516af714ebb4 piprofiler/plugins/GeneralsPlugin/inc/MemoryEventHandler.h --- a/piprofiler/plugins/GeneralsPlugin/inc/MemoryEventHandler.h Thu Sep 02 22:05:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* 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 "MemSamplerImpl.h" - -#ifndef __PI_MEMORY_EVENT_HANDLER__ -#define __PI_MEMORY_EVENT_HANDLER__ - -#include - -// CONSTANTS -const TInt KEventBufferSize = 257; - -class DProfilerSampleBuffer; - -class DMemoryEventHandler : public DKernelEventHandler - { -public: - // constructor - DMemoryEventHandler(DProfilerSampleBuffer* aSampleBuffer); - TInt Create(); - ~DMemoryEventHandler(); - TInt Start(); - TInt Stop(); - TBool Tracking() {return iTracking;} - - TBool SampleNeeded(); - -private: - static TUint EventHandler(TKernelEvent aEvent, TAny* a1, TAny* a2, TAny* aThis); - TUint HandleEvent(TKernelEvent aType, TAny* a1, TAny* a2); - // handle chunk activity - TBool HandleAddChunk(DChunk* aChunk); - TBool HandleUpdateChunk(DChunk* aChunk); - TBool HandleDeleteChunk(DChunk* aChunk); - // handle chunk activity - TBool HandleAddThread(DThread* aThread); - TBool HandleUpdateThread(DThread* aThread); - TBool HandleDeleteThread(DThread* aThread); - // handle chunk activity - TBool HandleAddProcess(DProcess* aProcess); - TBool HandleUpdateProcess(DProcess* aProcess); - TBool HandleDeleteProcess(DProcess* aProcess); - // handle library activity - TBool HandleAddLibrary(DLibrary* aLibrary, DThread* aThread); - TBool HandleDeleteLibrary(DLibrary* aLibrary); - - // data handling - TInt AddHeader(); - TInt AddFooter(); - TInt EncodeTotalMemory(); - TInt EncodeNameCode(); - TInt EncodeNewCode(); - TInt EncodeUpdateCode(); - TInt EncodeRemoveCode(); - TInt EncodeChunkName(DThread& t); - TInt EncodeChunkName(DChunk& c); - TInt EncodeChunkName(DLibrary& l); - TInt EncodeChunkData(DThread& t); - TInt EncodeChunkData(DChunk& c); - TInt EncodeChunkData(DLibrary& l, DThread& t); -private: - /** Lock serialising calls to event handler */ - DMutex* iLock; - TBool iTracking; - - DProfilerSampleBuffer* iSampleBuffer; - TInt iCounters[EEventLimit]; - - TUint32 iCount; - - TUint8 iSample[KEventBufferSize]; - TPtr8 iSampleDescriptor; - - TUint32 iPreviousCount; - }; - -#endif