memspyui/ui/hb/inc/enginewrapper.h
changeset 48 da3ec8478e66
parent 47 11fa016241a4
child 54 9347c563e054
--- a/memspyui/ui/hb/inc/enginewrapper.h	Thu Sep 02 20:27:24 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,529 +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:
-* 
-*/
-
-#ifndef ENGINEWRAPPER_H_
-#define ENGINEWRAPPER_H_
-
-#include <QObject>
-#include <QVariantList>
-#include <QSettings>
-
-#include <memspysession.h>
-
-typedef quint64 ProcessId;
-typedef quint64 ThreadId;
-
-enum ThreadPriority
-{
-	ThreadPriorityNull=(-30),
-	ThreadPriorityMuchLess=(-20),
-	ThreadPriorityLess=(-10),
-	ThreadPriorityNormal=0,
-	ThreadPriorityMore=10,
-	ThreadPriorityMuchMore=20,
-	ThreadPriorityRealTime=30,
-	ThreadPriorityAbsoluteVeryLow=100,
-	ThreadPriorityAbsoluteLowNormal=150,
-	ThreadPriorityAbsoluteLow=200,
-	ThreadPriorityAbsoluteBackgroundNormal=250,
-	ThreadPriorityAbsoluteBackground=300,
-	ThreadPriorityAbsoluteForegroundNormal=350,
-	ThreadPriorityAbsoluteForeground=400,
-	ThreadPriorityAbsoluteHighNormal=450,
-	ThreadPriorityAbsoluteHigh=500,
-	ThreadPriorityAbsoluteRealTime1=810,
-	ThreadPriorityAbsoluteRealTime2=820,
-	ThreadPriorityAbsoluteRealTime3=830,
-	ThreadPriorityAbsoluteRealTime4=840,
-	ThreadPriorityAbsoluteRealTime5=850,
-	ThreadPriorityAbsoluteRealTime6=860,
-	ThreadPriorityAbsoluteRealTime7=870, 
-	ThreadPriorityAbsoluteRealTime8=880
-};
-
-enum KernelObjectType
-{
-	KernelObjectTypeUnknown = -1,
-	KernelObjectTypeThread = 0,
-	KernelObjectTypeProcess,
-	KernelObjectTypeChunk,
-	KernelObjectTypeLibrary,
-	KernelObjectTypeSemaphore,
-	KernelObjectTypeMutex,
-	KernelObjectTypeTimer,
-	KernelObjectTypeServer,
-	KernelObjectTypeSession,
-	KernelObjectTypeLogicalDevice,
-	KernelObjectTypePhysicalDevice,
-	KernelObjectTypeLogicalChannel,
-	KernelObjectTypeChangeNotifier,
-	KernelObjectTypeUndertaker,
-	KernelObjectTypeMsgQueue,
-	KernelObjectTypePropertyRef,
-	KernelObjectTypeCondVar
-};
-
-enum ThreadInfoType
-{
-	ThreadInfoTypeGeneral = EMemSpyThreadInfoItemTypeGeneralInfo,
-	ThreadInfoTypeHeap = EMemSpyThreadInfoItemTypeHeap,
-	ThreadInfoTypeStack = EMemSpyThreadInfoItemTypeStack,
-	ThreadInfoTypeChunk = EMemSpyThreadInfoItemTypeChunk,
-	ThreadInfoTypeCodeSeg = EMemSpyThreadInfoItemTypeCodeSeg,
-	ThreadInfoTypeOpenFiles = EMemSpyThreadInfoItemTypeOpenFiles,
-	ThreadInfoTypeActiveObjects = EMemSpyThreadInfoItemTypeActiveObject,
-	ThreadInfoTypeOwnedThreadHandles = EMemSpyThreadInfoItemTypeOwnedThreadHandles,
-	ThreadInfoTypeOwnedProcessHandles = EMemSpyThreadInfoItemTypeOwnedProcessHandles,
-	ThreadInfoTypeServer = EMemSpyThreadInfoItemTypeServer,
-	ThreadInfoTypeSession = EMemSpyThreadInfoItemTypeSession,
-	ThreadInfoTypeSemaphore = EMemSpyThreadInfoItemTypeSemaphore,
-	ThreadInfoTypeOtherThreads = EMemSpyThreadInfoItemTypeOtherThreads,
-	ThreadInfoTypeOtherProcesses = EMemSpyThreadInfoItemTypeOtherProcesses,
-	ThreadInfoTypeMutex = EMemSpyThreadInfoItemTypeMutex,
-	ThreadInfoTypeTimer = EMemSpyThreadInfoItemTypeTimer,
-	ThreadInfoTypeChannel = EMemSpyThreadInfoItemTypeLogicalChannel,
-	ThreadInfoTypeChangeNotifier = EMemSpyThreadInfoItemTypeChangeNotifier,
-	ThreadInfoTypeUndertaker = EMemSpyThreadInfoItemTypeUndertaker,
-	ThreadInfoTypeMessageQueue = EMemSpyThreadInfoItemTypeMessageQueue,
-	ThreadInfoTypeConditionalVariable = EMemSpyThreadInfoItemTypeConditionalVariable,
-	ThreadInfoTypeLDD = EMemSpyThreadInfoItemTypeLDD,
-	ThreadInfoTypePDD = EMemSpyThreadInfoItemTypePDD,
-};
-
-enum DeviceWideOperation
-{
-	OutputPhoneInfo = 0,
-	    
-	OutputDetailedPhoneInfo,
-	    
-	OutputHeapInfo,
-	    
-	OutputCompactHeapInfo,
-	    
-	OutputHeapCellListing,
-	    
-	OutputHeapData,
-	    
-	OutputStackInfo,
-	    
-	OutputCompactStackInfo,
-	    
-	OutputUserStackData,
-	    
-	OutputKernelStackData
-};
-
-enum SwmtMode
-{
-	SwmtModeBasic = 0,
-	SwmtModeFull,
-	SwmtModeCustom
-};
-
-enum HeapDumpsMode
-{
-	HeapDumpsModeKernel = 0,
-	HeapDumpsModeUser,
-	HeapDumpsModeBoth
-};
-
-enum OutputMode
-{
-	OutputModeTrace = 0,
-	OutputModeFile
-};
-
-class MemSpyProcess
-{
-public:
-	MemSpyProcess(CMemSpyApiProcess* process)
-		: mProcess(process)
-	{}
-	
-	virtual  ~MemSpyProcess() { delete mProcess; }
-	
-	ProcessId id() const { return mProcess->Id(); }
-	
-	QString name() const { return QString((QChar*) mProcess->Name().Ptr(), mProcess->Name().Length()); }
-	
-	QString exitInfo() const;
-	
-	int priority() const { return mProcess->Priority(); }
-	
-	int threadCount() const { return mProcess->ThreadCount(); }
-	
-	int sid() const { return mProcess->SID(); }
-	
-	int vid() const { return mProcess->VID(); }
-	
-	bool isDead() const { return mProcess->IsDead(); }
-	
-private:
-	CMemSpyApiProcess *mProcess;
-};
-
-class MemSpyThread
-{
-public:
-	MemSpyThread(CMemSpyApiThread* thread)
-		: mThread(thread)
-	{}
-	
-	virtual ~MemSpyThread() { delete mThread;	}
-	
-	ThreadId id() const { return mThread->Id(); }
-	
-	QString name() const { return QString((QChar*) mThread->Name().Ptr(), mThread->Name().Length()); }
-	
-	int priority() const { return mThread->ThreadPriority(); }
-	
-	
-private:
-	CMemSpyApiThread *mThread;
-};
-
-class MemSpyKernelObjectType
-{
-public:
-	MemSpyKernelObjectType(CMemSpyApiKernelObject* type)
-		: mType(type)
-	{}
-	
-	virtual ~MemSpyKernelObjectType() { delete mType; }
-	
-	int id() const { return mType->Type(); }
-	
-	QString name() const { return QString((QChar*) mType->Name().Ptr(), mType->Name().Length()); }
-	
-	int count() const { return mType->Count(); }
-	
-	qint64 size() const { return mType->Size(); }
-	
-private:
-	CMemSpyApiKernelObject *mType;
-};
-
-class MemSpyKernelObject
-{
-public:
-	MemSpyKernelObject(CMemSpyApiKernelObjectItem* object)
-		: mObject(object)
-	{}
-	
-	virtual ~MemSpyKernelObject() { delete mObject; }
-	
-	int type() const { return mObject->Type(); }
-	
-	QString name() const { return QString::fromLatin1((char*)mObject->Name().Ptr(), mObject->Name().Length()); }
-	
-	QString nameDetail() const { return QString::fromLatin1((char*)mObject->NameDetail().Ptr(), mObject->NameDetail().Length()); }
-	
-	int accessCount() const { return mObject->AccessCount(); }
-	
-	int uniqueId() const { return mObject->UniqueID(); }
-	
-	unsigned int protection() const { return mObject->Protection(); }
-	
-	unsigned int addressOfKernelOwner() const { return reinterpret_cast<unsigned int>(mObject->AddressOfKernelOwner()); }
-	
-	unsigned int kernelAddress() const { return reinterpret_cast<unsigned int>(mObject->Handle()); }
-	
-	unsigned int addressOfOwningProcess() const { return reinterpret_cast<unsigned int>(mObject->AddressOfOwningProcess()); }
-	
-	int id() const { return mObject->Id(); }
-	
-	int priority() const { return mObject->Priority(); }
-	
-	QString nameOfOwner() const { return QString::fromLatin1((char*)mObject->NameOfOwner().Ptr(), mObject->NameOfOwner().Length()); }
-	
-	unsigned int creatorId() const { return mObject->CreatorId(); }
-	
-	int attributes() const { return mObject->Attributes(); }
-	
-	unsigned int addressOfDataBssStackChunk() const { return reinterpret_cast<unsigned int>(mObject->AddressOfDataBssStackChunk()); }
-	
-	unsigned int securityZone() const { return mObject->SecurityZone(); }
-	
-	unsigned int size() const { return mObject->Size(); }
-	
-	unsigned int maxSize() const { return mObject->MaxSize(); }
-	
-	unsigned int bottom() const { return mObject->Bottom(); }
-	
-	unsigned int top() const { return mObject->Top(); }
-	
-	unsigned int startPos() const { return mObject->StartPos(); }
-	
-	unsigned int controllingOwner() const { return mObject->ControllingOwner(); }
-	
-	unsigned int restrictions() const { return mObject->Restrictions(); }
-	
-	unsigned int mapAttr() const { return mObject->Restrictions(); }
-	
-	unsigned int chunkType() const { return mObject->ChunkType(); }
-	
-	int mapCount() const { return mObject->MapCount(); }
-	
-	unsigned int state() const { return mObject->State(); }
-	
-	unsigned int addressOfCodeSeg() const { return reinterpret_cast<unsigned int>(mObject->AddressOfCodeSeg()); }
-	
-	unsigned int resetting() const { return mObject->Resetting(); }
-	
-	unsigned int order() const { return mObject->Order(); }
-	
-	QString version() const { return QString((QChar*) mObject->Version().Name().Ptr(), mObject->Version().Name().Length()); }
-	
-	unsigned int parseMask() const { return mObject->ParseMask(); }
-	
-	unsigned int unitsMask() const { return mObject->UnitsMask(); }
-	
-	unsigned int changes() const { return mObject->Changes(); }
-	
-	int count() const { return mObject->Count(); }
-	
-	int waitCount() const { return mObject->WaitCount(); }
-
-	int sessionType() const { return mObject->SessionType(); }
-
-	int timerType() const { return mObject->TimerType(); }
-	
-	int timerState() const { return mObject->TimerState(); }
-	
-	unsigned int addressOfOwningThread() const { return reinterpret_cast<unsigned int>(mObject->AddressOfOwningThread()); }
-	
-	unsigned int addressOfServer() const { return reinterpret_cast<unsigned int>(mObject->AddressOfServer()); }
-	
-	unsigned int svrSessionType() const { return mObject->SvrSessionType(); }
-	
-	int msgCount() const { return mObject->MsgCount(); }
-	
-	int msgLimit() const { return mObject->MsgLimit(); }
-	
-	unsigned int totalAccessCount() const { return mObject->TotalAccessCount(); }
-	
-	int openChannels() const { return mObject->OpenChannels(); }
-	
-private:
-	CMemSpyApiKernelObjectItem *mObject;
-};
-
-class MemSpyThreadInfoItem 
-{
-public:
-	MemSpyThreadInfoItem(CMemSpyApiThreadInfoItem *item)
-		: mItem(item)
-	{}
-	
-	virtual  ~MemSpyThreadInfoItem() { delete mItem;	}
-	
-	QString caption() const { return QString((QChar*) mItem->Caption().Ptr(), mItem->Caption().Length()); }
-	
-	QString value() const { return QString((QChar*) mItem->Value().Ptr(), mItem->Value().Length()); }
-	
-private:
-	CMemSpyApiThreadInfoItem* mItem;
-};
-
-class MemSpyDwoProgressTracker : public QObject, public CActive
-{
-	Q_OBJECT
-
-public:
-	MemSpyDwoProgressTracker(RMemSpySession &session);
-	virtual ~MemSpyDwoProgressTracker();
-	
-public slots:
-
-	void start();
-
-	void cancel();
-	
-protected: // from CActive
-	
-	virtual void RunL();
-	 
-	virtual void DoCancel();
-	 
-	virtual TInt RunError(TInt aError);
-	
-signals:
-	void progress(int progress, const QString& processName);
-	
-private:
-	TMemSpyDeviceWideOperationProgress mProgress;
-	RMemSpySession mSession;
-};
-
-class MemSpyDwoTracker : public QObject, public CActive
-{
-	Q_OBJECT
-
-public:
-	MemSpyDwoTracker(RMemSpySession &session, DeviceWideOperation operation);
-	virtual ~MemSpyDwoTracker();
-	
-public slots:
-
-	void start();
-	
-	void cancel();
-	
-protected: // from CActive
-	
-	virtual void RunL();
-	 
-	virtual void DoCancel();
-	 
-	virtual TInt RunError(TInt aError);
-	
-signals:
-	void finished(int errorCode);
-	void progress(int progress, const QString& processName);
-	
-private:
-	RMemSpySession mSession;
-	MemSpyDwoProgressTracker *mProgressTracker;
-	DeviceWideOperation mOperation;
-};
-
-class MemSpyAsyncTracker : public QObject, public CActive
-{
-	Q_OBJECT
-	
-public:
-	
-	MemSpyAsyncTracker(RMemSpySession& session, void (RMemSpySession::*function)(TRequestStatus&));
-	
-	void start();
-	
-	virtual void RunL();
-	
-	virtual void DoCancel();
-	
-	virtual TInt RunError(TInt aError);
-	
-signals:
-	
-	void finished(int errorCode);
-	
-private:
-	void (RMemSpySession::*mFunction)(TRequestStatus&);
-	RMemSpySession& mSession;
-};
-
-class MemSpySwmtDumpTracker : public MemSpyAsyncTracker
-{
-public:
-	MemSpySwmtDumpTracker(RMemSpySession& session) : 
-		MemSpyAsyncTracker(session, &RMemSpySession::ForceSwmtUpdate)
-	{}
-};
-
-class MemSpyKernelHeapDumpTracker : public MemSpyAsyncTracker
-{
-public:
-	MemSpyKernelHeapDumpTracker(RMemSpySession& session) : 
-		MemSpyAsyncTracker(session, &RMemSpySession::OutputKernelHeapData)
-	{}
-};
-
-class MemSpySettings : private QSettings
-{
-public:
-	
-	MemSpySettings();
-	
-	OutputMode outputMode() const;
-	void setOutputMode(OutputMode mode);
-	
-	QString outputPath() const;
-	void setOutputPath(const QString& path);
-		
-	int swmtTimerPeriod() const;
-	void setSwmtTimerPeriod(int period);
-	
-	SwmtMode swmtMode() const;
-	void setSwmtMode(SwmtMode mode);
-	
-	QVariantList swmtCategories() const;
-	void setSwmtCategories(const QVariantList& categories);
-	
-	HeapDumpsMode heapDumpsMode() const;
-	void setHeapDumpsMode(HeapDumpsMode mode);
-};
-
-class EngineWrapper : public QObject
-{
-	Q_OBJECT
-	
-public:
-	EngineWrapper();
-	
-	virtual ~EngineWrapper();
-	
-	bool initialize();
-	
-	MemSpySettings& settings();
-	
-	const MemSpySettings& settings() const;
-	
-	
-	
-	QList<MemSpyProcess*> getProcesses();
-	
-	QList<MemSpyThread*> getThreads(ProcessId processId);
-	
-	QList<MemSpyThreadInfoItem*> getThreadInfo(ThreadId threadId, ThreadInfoType type);
-	
-	void setThreadPriority(ThreadId threadId, ThreadPriority priority);
-	
-	QList<MemSpyKernelObjectType*> getKernelObjectTypes();
-	
-	QList<MemSpyKernelObject*> getKernelObjects(int type);
-	
-	MemSpyDwoTracker* createDeviceWideOperation(DeviceWideOperation operation);
-	
-	MemSpyKernelHeapDumpTracker* createKernelHeapDumpTracker();
-	
-	MemSpySwmtDumpTracker* createSwmtDumpTracker();
-	
-	void setSwmtSettings(SwmtMode mode, const QVariantList& categories);
-	
-	bool isSwmtRunning();
-	
-	void startSwmt(int period);
-	
-	void stopSwmt();
-	
-	void forceSwmtDump();
-	
-	void outputKernelHeapData();
-	
-	int outputThreadHeapData(const QString& filter);
-	
-	void updateOutputSettings();
-	
-private:
-	RMemSpySession mSession;
-	
-	bool mSwmtRunning;
-	
-	MemSpySettings mSettings;
-};
-
-#endif /* ENGINEWRAPPER_H_ */