memspy/Driver/Kernel/Include/SubChannels/MemSpyDriverLogChanHeapInfo.h
changeset 30 86a2e675b80a
parent 0 a03f92240627
child 44 52e343bb8f80
--- a/memspy/Driver/Kernel/Include/SubChannels/MemSpyDriverLogChanHeapInfo.h	Mon Jun 14 11:37:33 2010 +0300
+++ b/memspy/Driver/Kernel/Include/SubChannels/MemSpyDriverLogChanHeapInfo.h	Mon Jun 28 15:36:07 2010 +0300
@@ -53,13 +53,22 @@
 private: // Channel operation handlers
     TInt GetHeapInfoUser( TMemSpyDriverInternalHeapRequestParameters* aParams );
     TInt GetHeapInfoKernel( TMemSpyDriverInternalHeapRequestParameters* aParams, TDes8* aTransferBuffer );
-    TInt GetIsDebugKernel( TBool* aIsDebugKernel );
+    TInt GetIsDebugKernel(TAny* aIsDebugKernel);
+
+private: // From MHeapWalkerObserver
+    void HandleHeapWalkInit();
+    TBool HandleHeapCell( TMemSpyDriverCellType aCellType, TAny* aCellAddress, TInt aLength, TInt aNestingLevel, TInt aAllocNumber );
 
 private: // Internal methods
-    TUint32 CalculateFreeCellBufferSize() const;
+	void ReleaseCellList();
+    TInt PrepareCellListTransferBuffer();
+	TInt FetchCellList(TDes8* aBufferSink);
+    TInt CalculateCellListBufferSize() const;
 
 private: // Data members
     TMemSpyDriverInternalHeapRequestParameters iHeapInfoParams;
+	RArray<TMemSpyDriverCell> iCellList;
+    RMemSpyMemStreamWriter* iHeapStream;
 	};