memspy/MemSpyClient/inc/memspysession.h
changeset 30 86a2e675b80a
parent 20 a71a3e32a2ae
equal deleted inserted replaced
26:4fde310f06fe 30:86a2e675b80a
    23 // System includes
    23 // System includes
    24 #include <e32base.h>
    24 #include <e32base.h>
    25 #include <u32std.h>
    25 #include <u32std.h>
    26 
    26 
    27 //user includes
    27 //user includes
    28 #include <memspy/engine/memspyprocessdata.h> //for Processes
       
    29 #include <memspy/api/memspyapiprocess.h>
    28 #include <memspy/api/memspyapiprocess.h>
    30 
    29 
    31 #include <memspy/engine/memspythreaddata.h> //for Threads
       
    32 #include <memspy/api/memspyapithread.h>
    30 #include <memspy/api/memspyapithread.h>
    33 #include <memspy/api/memspyapithreadinfoitem.h>
    31 #include <memspy/api/memspyapithreadinfoitem.h>
    34 #include <memspy/engine/memspythreadinfoitemdata.h>
    32 #include <memspy/engine/memspythreadinfoitemdata.h>
    35 #include <memspy/engine/memspyengineobjectthreadinfoobjects.h>
    33 #include <memspy/engine/memspyengineobjectthreadinfoobjects.h>
    36 
    34 #include <memspy/engine/memspydevicewideoperations.h>
    37 #include <memspy/engine/memspykernelobjectdata.h> //for KernelObjects
    35 
    38 #include <memspy/api/memspyapikernelobject.h>
    36 #include <memspy/api/memspyapikernelobject.h>
    39 
    37 
    40 #include <memspy/api/memspyapikernelobjectitem.h> //for KernelObjectItems
    38 #include <memspy/api/memspyapikernelobjectitem.h> //for KernelObjectItems
    41 
    39 
    42 #include <memspy/engine/memspyheapdata.h> //for Heap
       
    43 #include <memspy/api/memspyapiheap.h>
    40 #include <memspy/api/memspyapiheap.h>
    44 
    41 
       
    42 #include <memspy/api/memspyapimemorytrackingcycle.h>
       
    43 
    45 #include <memspyengineclientinterface.h>
    44 #include <memspyengineclientinterface.h>
       
    45 #include <memspy/engine/memspyengineoutputsinktype.h>
       
    46 
       
    47 #include <memspy/engine/memspyenginehelpersysmemtrackerconfig.h>
    46 
    48 
    47 // Constants
    49 // Constants
    48 const TInt KMemSpyVersion           = 2;
    50 const TInt KMemSpyVersion           = 2;
    49 
    51 
    50 enum TSortType
    52 enum TSortType
    61     {
    63     {
    62     EOutputTypeDebug = 0,
    64     EOutputTypeDebug = 0,
    63     EOutputTypeFile
    65     EOutputTypeFile
    64     };
    66     };
    65 
    67 
       
    68 class TMemSpyDeviceWideOperationProgress 
       
    69 	{
       
    70 public:
       
    71 	IMPORT_C TInt Progress() const;
       
    72 	IMPORT_C const TDesC& Description() const;
       
    73 	
       
    74 private:
       
    75 	TPckgBuf<TInt> iProgress;
       
    76 	TFullName iDescription;
       
    77 	
       
    78 friend class RMemSpySession;
       
    79 	};
       
    80 
    66 
    81 
    67 NONSHARABLE_CLASS( RMemSpySession ) : public RSessionBase
    82 NONSHARABLE_CLASS( RMemSpySession ) : public RSessionBase
    68     {
    83     {
    69 public:
    84 public:
    70     IMPORT_C RMemSpySession();
    85     IMPORT_C RMemSpySession();
    71     IMPORT_C TInt Connect();
    86     IMPORT_C TInt Connect();
    72     
    87     
    73 public:	//API
    88 public:	//API
    74     IMPORT_C void OutputKernelHeapDataL(TMemSpyOutputType aOutputType); //EMemSpyClientServerOpHeapData
    89     //Thread speciifc operations
    75     IMPORT_C void OutputThreadHeapDataL(TMemSpyOutputType aOutputType, TThreadId aThreadId); //EMemSpyClientServerOpHeapData
    90     IMPORT_C void OutputKernelHeapDataL(); //EMemSpyClientServerOpHeapData
    76     IMPORT_C void OutputThreadCellListL(TMemSpyOutputType aOutputType, TThreadId aThreadId);//EMemSpyClientServerOpHeapCellListing
    91     
    77     IMPORT_C void OutputKernelObjectsL(TMemSpyOutputType aOutputType);// EMemSpyClientServerOpEnumerateKernelContainerAll
    92     IMPORT_C void OutputKernelHeapData(TRequestStatus& aStatus); //EMemSpyClientServerOpHeapData
    78     IMPORT_C void OutputCompactStackInfoL(TMemSpyOutputType aOutputType);// EMemSpyClientServerOpStackInfoCompact
    93     
    79     IMPORT_C void OutputCompactHeapInfoL(TMemSpyOutputType aOutputType);// EMemSpyClientServerOpHeapInfoCompact
    94     IMPORT_C void OutputThreadHeapDataL(TThreadId aThreadId); //EMemSpyClientServerOpHeapData
       
    95     
       
    96     IMPORT_C void OutputThreadHeapDataL(const TDesC& aThreadName); //EMemSpyClientServerOpHeapData
       
    97     
       
    98     IMPORT_C void OutputThreadCellListL(TThreadId aThreadId);//EMemSpyClientServerOpHeapCellListing    
       
    99     
       
   100     IMPORT_C void OutputHeapInfoUserL(TThreadId aThreadId);	//EMemSpyClientServerOpHeapInfo
       
   101     
       
   102     IMPORT_C void SwitchOutputSinkL( TMemSpySinkType aType); //EMemSpyClientServerOpSwitchOutputSinkFile / EMemSpyClientServerOpSwitchOutputSinkTrace
       
   103     
       
   104     IMPORT_C void SwitchOutputToTraceL(); // EMemSpyClientServerOpSwitchOutputSinkTrace
       
   105     
       
   106     IMPORT_C void SwitchOutputToFileL(const TDesC& aRootFolder); // EMemSpyClientServerOpSwitchOutputSinkFile
       
   107     
       
   108     IMPORT_C void OutputStackInfoL(TThreadId aThreadId); //EMemSpyClientServerOpStackInfo
       
   109     
       
   110     IMPORT_C void OutputStackDataL(TThreadId aThreadId, TMemSpyDriverDomainType aType ); //EMemSpyClientServerOpStackDataUser / EMemSpyClientServerOpStackDataKernel    
       
   111     
       
   112     IMPORT_C void OutputThreadInfoHandlesL(TThreadId aThreadId); //EMemSpyClientServerOpOutputInfoHandles
       
   113     
       
   114     IMPORT_C void OutputAOListL(TThreadId aId, TMemSpyThreadInfoItemType aType);	//EMemSpyClientServerOpOutputAOList    
       
   115     
       
   116     IMPORT_C void OutputKernelObjectsL();// EMemSpyClientServerOpEnumerateKernelContainerAll
       
   117     
       
   118     IMPORT_C void OutputCompactStackInfoL();// EMemSpyClientServerOpStackInfoCompact
       
   119     
       
   120     IMPORT_C void OutputCompactHeapInfoL();// EMemSpyClientServerOpHeapInfoCompact
       
   121     
       
   122     // Device Wide Operations
       
   123     // Synchronous operations - for CLI
       
   124     IMPORT_C void OutputHeapData();
       
   125     
       
   126     // Asynchronous operations
       
   127     IMPORT_C void OutputPhoneInfo(TRequestStatus& aStatus);
       
   128     
       
   129     IMPORT_C void OutputDetailedPhoneInfo(TRequestStatus& aStatus);
       
   130     
       
   131     IMPORT_C void OutputHeapInfo(TRequestStatus& aStatus);
       
   132     
       
   133     IMPORT_C void OutputCompactHeapInfo(TRequestStatus &aStatus);
       
   134     
       
   135     IMPORT_C void OutputHeapCellListing(TRequestStatus& aStatus);
       
   136     
       
   137     IMPORT_C void OutputHeapData(TRequestStatus& aStatus);
       
   138     
       
   139     IMPORT_C void OutputStackInfo(TRequestStatus& aStatus);
       
   140     
       
   141     IMPORT_C void OutputCompactStackInfo(TRequestStatus &aStatus);
       
   142     
       
   143     IMPORT_C void OutputUserStackData(TRequestStatus& aStatus);
       
   144     
       
   145     IMPORT_C void OutputKernelStackData(TRequestStatus& aStatus);
       
   146     
       
   147     IMPORT_C void NotifyDeviceWideOperationProgress(TMemSpyDeviceWideOperationProgress &aProgress, TRequestStatus &aStatus);
       
   148     
       
   149     IMPORT_C void CancelDeviceWideOperationL();
       
   150     
       
   151     // Synchronous operations for MemSpyLauncher
       
   152     IMPORT_C void OutputPhoneInfo();
       
   153     
       
   154     // "Ui" operations 
    80     
   155     
    81     IMPORT_C void GetProcessesL(RArray<CMemSpyApiProcess*> &aProcesses, TSortType aSortType = ESortProcById);
   156     IMPORT_C void GetProcessesL(RArray<CMemSpyApiProcess*> &aProcesses, TSortType aSortType = ESortProcById);
    82     
   157     
    83     IMPORT_C TProcessId GetProcessIdByNameL(const TDesC& aProcessName);
   158     IMPORT_C TProcessId GetProcessIdByNameL(const TDesC& aProcessName);
    84     
   159     
    85     IMPORT_C void GetThreadsL(TProcessId aProcessId, RArray<CMemSpyApiThread*> &aThreads, TSortType aSortType = ESortProcById);
   160     IMPORT_C void GetThreadsL(TProcessId aProcessId, RArray<CMemSpyApiThread*> &aThreads, TSortType aSortType = ESortProcById);
    86     
   161     
    87     IMPORT_C TInt ProcessSystemPermanentOrCritical( TProcessId aId, TBool aValue ); //aValue -> return value
   162     IMPORT_C TInt ProcessSystemPermanentOrCritical( TProcessId aId, TBool aValue ); //aValue -> return value
    88     
   163     
    89     IMPORT_C void SetThreadPriorityL(TThreadId aId, TInt aPriority);
   164     IMPORT_C void SetThreadPriorityL(TThreadId aId, TInt aPriority);
       
   165     
    90     IMPORT_C TInt EndProcess( TProcessId aId, TMemSpyEndType aType );
   166     IMPORT_C TInt EndProcess( TProcessId aId, TMemSpyEndType aType );
    91     
   167     
    92     IMPORT_C TInt SwitchToProcess( TProcessId aId, TBool aBrought  );
   168     IMPORT_C TInt SwitchToProcess( TProcessId aId, TBool aBrought  );
    93     
   169     
       
   170     //SWMT operations
       
   171     
       
   172     IMPORT_C void GetMemoryTrackingCyclesL(RArray<CMemSpyApiMemoryTrackingCycle*>& aCycles);
       
   173     
       
   174     IMPORT_C void SetSwmtConfig( TMemSpyEngineHelperSysMemTrackerConfig aConfig );    
       
   175     
       
   176     IMPORT_C void SetSwmtAutoStartProcessList( CArrayFixFlat<TUid>* aList );
       
   177     
       
   178     IMPORT_C void SetSwmtFilter( const TDesC& aFilter );            
       
   179     
       
   180     IMPORT_C void SetSwmtCategoriesL(TInt aCategories);
       
   181 
       
   182     IMPORT_C void SetSwmtHeapDumpsEnabledL(TBool aEnabled);
       
   183     
       
   184     IMPORT_C void SwmtResetTracking();
       
   185     
       
   186     IMPORT_C void GetOutputSink( TMemSpySinkType aType );
       
   187            
       
   188     IMPORT_C TBool IsSwmtRunningL();
       
   189     
       
   190     IMPORT_C void StartSwmtTimerL(TInt aPeriod);
       
   191     
       
   192     IMPORT_C void StartSwmtTimerL(); // for CLI
       
   193     
       
   194     IMPORT_C void SetSwmtTimerIntervalL(TInt aPeriod); //for CLI
       
   195     
       
   196     IMPORT_C void StopSwmtTimerL();
       
   197     
       
   198     IMPORT_C void ForceSwmtUpdateL();
       
   199     
       
   200     IMPORT_C void ForceSwmtUpdate(TRequestStatus& aStatus);
    94     
   201     
    95     //Threads operations
   202     //Threads operations
    96     /**
   203     /**
    97      * 
   204      * 
    98      */
   205      */
   104     
   211     
   105     IMPORT_C TInt SwitchToThread( TThreadId aId, TBool aBrought );
   212     IMPORT_C TInt SwitchToThread( TThreadId aId, TBool aBrought );
   106     
   213     
   107     IMPORT_C TInt GetInfoItemType( TInt aIndex, TThreadId aId, TMemSpyThreadInfoItemType &aType );
   214     IMPORT_C TInt GetInfoItemType( TInt aIndex, TThreadId aId, TMemSpyThreadInfoItemType &aType );
   108     
   215     
   109     IMPORT_C void GetThreadInfoItems( RArray<CMemSpyApiThreadInfoItem*> &aInfoItems, TThreadId aId, TMemSpyThreadInfoItemType aType );
   216     IMPORT_C TInt GetThreadInfoItems( RArray<CMemSpyApiThreadInfoItem*> &aInfoItems, TThreadId aId, TMemSpyThreadInfoItemType aType );
   110     
   217     
   111     //KernelObjects operations    
   218     IMPORT_C void GetThreadInfoItemsL( RArray<CMemSpyApiThreadInfoItem*> &aInfoItems, TThreadId aId, TMemSpyThreadInfoItemType aType );
   112     /**
   219         
   113      * 
   220     
   114      */
   221     //KernelObjects operations
       
   222     
       
   223     IMPORT_C void GetKernelObjectsL( RArray<CMemSpyApiKernelObject*> &aKernelObjects );
       
   224     
   115     IMPORT_C TInt GetKernelObjects( RArray<CMemSpyApiKernelObject*> &aKernelObjects );
   225     IMPORT_C TInt GetKernelObjects( RArray<CMemSpyApiKernelObject*> &aKernelObjects );
   116     
   226     
       
   227     IMPORT_C void GetKernelObjectItemsL( RArray<CMemSpyApiKernelObjectItem*> &aKernelObjectItems, TMemSpyDriverContainerType aForContainer );
       
   228     
   117     IMPORT_C TInt GetKernelObjectItems( RArray<CMemSpyApiKernelObjectItem*> &aKernelObjectItems, TMemSpyDriverContainerType aForContainer );
   229     IMPORT_C TInt GetKernelObjectItems( RArray<CMemSpyApiKernelObjectItem*> &aKernelObjectItems, TMemSpyDriverContainerType aForContainer );
   118     
   230     
   119     IMPORT_C void OutputAllContainerContents();
   231     IMPORT_C void OutputAllContainerContents();
   120     
   232     
   121     /**
   233     // Heap 
   122      * 
   234     
   123      */    
   235     IMPORT_C CMemSpyApiHeap* GetHeapL();
       
   236     
   124 	IMPORT_C CMemSpyApiHeap* GetHeap();
   237 	IMPORT_C CMemSpyApiHeap* GetHeap();
   125 	
   238 	
   126 	IMPORT_C void DumpKernelHeap();
   239 	IMPORT_C void DumpKernelHeap();	
   127     
   240 	
   128 private:
   241 private:
   129     TInt StartServer();
   242     TInt StartServer();       
   130     
   243     
   131     void SetOutputTypeL(TMemSpyOutputType aOutputType);
   244     void SetOutputTypeL(TMemSpyOutputType aOutputType);
       
   245     
   132     };
   246     };
   133 
   247 
   134 #endif // MEMSPYSESSION_H
   248 #endif // MEMSPYSESSION_H