|         |      1 /* | 
|         |      2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).  | 
|         |      3 * All rights reserved. | 
|         |      4 * This component and the accompanying materials are made available | 
|         |      5 * under the terms of "Eclipse Public License v1.0" | 
|         |      6 * which accompanies this distribution, and is available | 
|         |      7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
|         |      8 * | 
|         |      9 * Initial Contributors: | 
|         |     10 * Nokia Corporation - initial contribution. | 
|         |     11 * | 
|         |     12 * Contributors: | 
|         |     13 * | 
|         |     14 * Description: | 
|         |     15 * | 
|         |     16 */ | 
|         |     17  | 
|         |     18 #ifndef MEMSPYENGINEHELPERSYSMEMTRACKERENTRYHANDLEGENERIC_H | 
|         |     19 #define MEMSPYENGINEHELPERSYSMEMTRACKERENTRYHANDLEGENERIC_H | 
|         |     20  | 
|         |     21 // System includes | 
|         |     22 #include <e32base.h> | 
|         |     23 #include <badesca.h> | 
|         |     24  | 
|         |     25 // Driver includes | 
|         |     26 #include <memspy/driver/memspydriverobjectsshared.h> | 
|         |     27  | 
|         |     28 // User includes | 
|         |     29 #include "MemSpyEngineHelperSysMemTrackerEntries.h" | 
|         |     30 #include <memspy/engine/memspyenginehelpersysmemtrackercyclechange.h>  | 
|         |     31  | 
|         |     32 // Classes referenced | 
|         |     33 class CMemSpyEngine; | 
|         |     34 class CMemSpyThread; | 
|         |     35 class CMemSpyProcess; | 
|         |     36 class CMemSpyEngineCodeSegEntry; | 
|         |     37 class CMemSpyEngineOutputSink; | 
|         |     38 class CMemSpyEngineHelperSysMemTrackerImp; | 
|         |     39 class CMemSpyEngineHelperSysMemTrackerCycle; | 
|         |     40 class TMemSpyEngineHelperSysMemTrackerConfig; | 
|         |     41  | 
|         |     42  | 
|         |     43  | 
|         |     44 class CMemSpyEngineHelperSysMemTrackerEntryHandleGeneric : public CMemSpyEngineHelperSysMemTrackerEntry | 
|         |     45     { | 
|         |     46 public: | 
|         |     47     static CMemSpyEngineHelperSysMemTrackerEntryHandleGeneric* NewLC( CMemSpyEngineHelperSysMemTrackerImp& aTracker, TAny* aHandle, TMemSpyDriverContainerType aType ); | 
|         |     48     ~CMemSpyEngineHelperSysMemTrackerEntryHandleGeneric(); | 
|         |     49  | 
|         |     50 private: | 
|         |     51     CMemSpyEngineHelperSysMemTrackerEntryHandleGeneric( CMemSpyEngineHelperSysMemTrackerImp& aTracker, TMemSpyDriverContainerType aType ); | 
|         |     52     void ConstructL( TAny* aHandle ); | 
|         |     53  | 
|         |     54 public: // From CMemSpyEngineHelperSysMemTrackerEntry | 
|         |     55     TUint64 Key() const; | 
|         |     56     void CreateChangeDescriptorL( CMemSpyEngineHelperSysMemTrackerCycle& aCycle ); | 
|         |     57  | 
|         |     58 private: // Data members | 
|         |     59     HBufC* iName; | 
|         |     60     TMemSpyDriverContainerType iHandleType; | 
|         |     61     }; | 
|         |     62  | 
|         |     63  | 
|         |     64  | 
|         |     65  | 
|         |     66  | 
|         |     67 /** | 
|         |     68  * Change descriptor associated with handle-related changes | 
|         |     69  */ | 
|         |     70 NONSHARABLE_CLASS( CMemSpyEngineHelperSysMemTrackerCycleChangeHandleGeneric ) : public CMemSpyEngineHelperSysMemTrackerCycleChange | 
|         |     71     { | 
|         |     72 public: | 
|         |     73     static CMemSpyEngineHelperSysMemTrackerCycleChangeHandleGeneric* NewLC( TUint8 aAttribs, const TDesC& aName, TUint32 aHandle, TMemSpyDriverContainerType aType ); | 
|         |     74     ~CMemSpyEngineHelperSysMemTrackerCycleChangeHandleGeneric(); | 
|         |     75  | 
|         |     76 private: | 
|         |     77     CMemSpyEngineHelperSysMemTrackerCycleChangeHandleGeneric( TUint8 aAttribs, TUint32 aHandle, TMemSpyDriverContainerType aType ); | 
|         |     78     void ConstructL( const TDesC& aName ); | 
|         |     79  | 
|         |     80 public: // From CMemSpyEngineHelperSysMemTrackerCycleChange | 
|         |     81     TMemSpyEngineSysMemTrackerType Type() const; | 
|         |     82     void OutputHeaderL( CMemSpyEngineOutputSink& aSink, CMemSpyEngineHelperSysMemTrackerCycle& aCycle ); | 
|         |     83     void OutputContentL( CMemSpyEngineOutputSink& aSink, CMemSpyEngineHelperSysMemTrackerCycle& aCycle ); | 
|         |     84  | 
|         |     85 private: // Data members | 
|         |     86     HBufC* iName; | 
|         |     87     TUint32 iHandle; | 
|         |     88     TMemSpyDriverContainerType iType; | 
|         |     89     }; | 
|         |     90  | 
|         |     91  | 
|         |     92  | 
|         |     93 #endif |