memspy/MemSpyClient/inc/memspysession.h
changeset 22 a009639409f5
parent 17 67c6ff54ec25
child 34 7259cf1302ad
--- a/memspy/MemSpyClient/inc/memspysession.h	Fri May 14 17:25:03 2010 +0300
+++ b/memspy/MemSpyClient/inc/memspysession.h	Thu May 27 14:26:55 2010 +0300
@@ -27,61 +27,26 @@
 //user includes
 #include <memspy/engine/memspyprocessdata.h> //for Processes
 #include <memspy/api/memspyapiprocess.h>
+
 #include <memspy/engine/memspythreaddata.h> //for Threads
 #include <memspy/api/memspyapithread.h>
+#include <memspy/api/memspyapithreadinfoitem.h>
+#include <memspy/engine/memspythreadinfoitemdata.h>
+#include <memspy/engine/memspyengineobjectthreadinfoobjects.h>
+
 #include <memspy/engine/memspykernelobjectdata.h> //for KernelObjects
 #include <memspy/api/memspyapikernelobject.h>
+
 #include <memspy/api/memspyapikernelobjectitem.h> //for KernelObjectItems
+
 #include <memspy/engine/memspyheapdata.h> //for Heap
 #include <memspy/api/memspyapiheap.h>
 
+#include <memspyengineclientinterface.h>
+
 // Constants
 const TInt KMemSpyVersion           = 2;
 
-// Literal constants 
-_LIT( KMemSpyServer2, "MemSpyServer.exe" );
-
-
-//
-enum TMemSpyOperations
-    {
-	//Output operations
-	
-//	EGetSinkType,
-//	EOutputToDebug,
-//	EOutputToFile,
-//	EOutputKernelObjects,
-//	ESetServerTimeOutStatus,
-//	EOutputProcessInfo,
-	
-	//Processes operations
-	
-	EGetProcessCount,
-	EGetProcesses,
-	EGetThreadCount,
-	EGetThreads,
-	ESetThreadPriority,
-	EProcessSystemPermanentOrCritical,
-	EEndProcess,
-	ESwitchToProcess,
-//	EOpenCloseCurrentProcess
-	
-	//Threads operations
-	EThreadSystemPermanentOrCritical,	
-	EEndThread,
-	ESwitchToThread,
-	
-	//Kernel Objects operations
-	EGetKernelObjectTypeCount,
-	EGetKernelObjects,
-	EGetKernelObjectItemsCount,
-	EGetKernelObjectItems,
-	//EOutputKernelObjects
-	
-	//Heap operations
-	EGetHeap
-    };
-
 enum TSortType
 	{
 	ESortProcById,
@@ -92,12 +57,12 @@
 	ESortProcByStackUsage
 	};
 
-enum TEndType
-	{
-	ETerminate,
-	EKill,
-	EPanic
-};
+enum TMemSpyOutputType
+    {
+    EOutputTypeDebug = 0,
+    EOutputTypeFile
+    };
+
 
 NONSHARABLE_CLASS( RMemSpySession ) : public RSessionBase
     {
@@ -106,29 +71,26 @@
     IMPORT_C TInt Connect();
     
 public:	//API
-    //Output operations
-    //inline TMemSpySinkType GetSinkType();    
-    //inline void OutputToDebug();
-    //inline void OutputToFile();    
-    //inline void OutputKernelObjects();    
-    //inline void SetServerTimeOutStatus( TUint32 aValue, TBool aEnabled );
-    //inline void OutputProcessInfo( TMemSpyProcess aProcess );
+    IMPORT_C void OutputKernelHeapDataL(TMemSpyOutputType aOutputType); //EMemSpyClientServerOpHeapData
+    IMPORT_C void OutputThreadHeapDataL(TMemSpyOutputType aOutputType, TThreadId aThreadId); //EMemSpyClientServerOpHeapData
+    IMPORT_C void OutputThreadCellListL(TMemSpyOutputType aOutputType, TThreadId aThreadId);//EMemSpyClientServerOpHeapCellListing
+    IMPORT_C void OutputKernelObjectsL(TMemSpyOutputType aOutputType);// EMemSpyClientServerOpEnumerateKernelContainerAll
+    IMPORT_C void OutputCompactStackInfoL(TMemSpyOutputType aOutputType);// EMemSpyClientServerOpStackInfoCompact
+    IMPORT_C void OutputCompactHeapInfoL(TMemSpyOutputType aOutputType);// EMemSpyClientServerOpHeapInfoCompact
     
-    //Processes operations    
-    /**
-     * 
-     */
-    IMPORT_C void GetProcessesL(RArray<CMemSpyApiProcess*> &aProcesses, TSortType aSortType = ESortProcById);        
+    IMPORT_C void GetProcessesL(RArray<CMemSpyApiProcess*> &aProcesses, TSortType aSortType = ESortProcById);
+    
+    IMPORT_C TProcessId GetProcessIdByNameL(const TDesC& aProcessName);
     
     IMPORT_C void GetThreadsL(TProcessId aProcessId, RArray<CMemSpyApiThread*> &aThreads, TSortType aSortType = ESortProcById);
+    
     IMPORT_C TInt ProcessSystemPermanentOrCritical( TProcessId aId, TBool aValue ); //aValue -> return value
     
     IMPORT_C void SetThreadPriorityL(TThreadId aId, TInt aPriority);
-    IMPORT_C TInt EndProcess( TProcessId aId, TEndType aType );
+    IMPORT_C TInt EndProcess( TProcessId aId, TMemSpyEndType aType );
     
     IMPORT_C TInt SwitchToProcess( TProcessId aId, TBool aBrought  );
     
-    //inline void OpenCloseCurrentProcess( TProcessId aId, TBool aOpen );
     
     //Threads operations
     /**
@@ -138,10 +100,14 @@
     
     IMPORT_C TInt ThreadSystemPermanentOrCritical( TThreadId aId, TBool aValue );
         
-    IMPORT_C TInt EndThread( TThreadId aId, TEndType aType );
+    IMPORT_C TInt EndThread( TThreadId aId, TMemSpyEndType aType );
     
     IMPORT_C TInt SwitchToThread( TThreadId aId, TBool aBrought );
     
+    IMPORT_C TInt GetInfoItemType( TInt aIndex, TThreadId aId, TMemSpyThreadInfoItemType &aType );
+    
+    IMPORT_C void GetThreadInfoItems( RArray<CMemSpyApiThreadInfoItem*> &aInfoItems, TThreadId aId, TMemSpyThreadInfoItemType aType );
+    
     //KernelObjects operations    
     /**
      * 
@@ -150,15 +116,19 @@
     
     IMPORT_C TInt GetKernelObjectItems( RArray<CMemSpyApiKernelObjectItem*> &aKernelObjectItems, TMemSpyDriverContainerType aForContainer );
     
+    IMPORT_C void OutputAllContainerContents();
+    
     /**
      * 
-     */
-    //IMPORT_C TInt GetHeap( RArray<CMemSpyApiHeap*> &aHeap );
-	//IMPORT_C TInt GetHeap( CMemSpyApiHeap* aHeap );
+     */    
 	IMPORT_C CMemSpyApiHeap* GetHeap();
+	
+	IMPORT_C void DumpKernelHeap();
     
 private:
     TInt StartServer();
+    
+    void SetOutputTypeL(TMemSpyOutputType aOutputType);
     };
 
 #endif // MEMSPYSESSION_H