diff -r 0ff24a8f6ca2 -r 98307c651589 memspy/Driver/Kernel/Include/MemSpyDriverUserEventMonitor.h --- a/memspy/Driver/Kernel/Include/MemSpyDriverUserEventMonitor.h Fri Aug 27 11:37:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +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 MEMSPYDRIVERUSEREVENTMONITOR_H -#define MEMSPYDRIVERUSEREVENTMONITOR_H - -// System includes -#include -#include -#ifdef __MARM__ -#include -#endif - -// User includes -#include "MemSpyDriverEventMonitor.h" - -// Classes referenced -class DMemSpyDriverDevice; -class DMemSpyDriverClientEM; - - -class DMemSpyDriverClientEMManager : public DBase - { -public: - DMemSpyDriverClientEMManager( DMemSpyDriverDevice& aDevice ); - ~DMemSpyDriverClientEMManager(); - TInt Create(); - -public: // API - DMemSpyDriverClientEM* EMOpen(); - TInt EMClose( TUint aHandle ); - DMemSpyDriverClientEM* EMInstance( TUint aHandle ); - -private: // Internal methods - void FreeAllInstances(); - -private: - DMemSpyDriverDevice& iDevice; - TUint iNextHandle; - SDblQue iEMInstances; - }; - - -/** - * This class represents a client-originated Event Monitor request - */ -class DMemSpyDriverClientEM : public DBase, public MMemSpyEventMonitorObserver - { -public: - DMemSpyDriverClientEM( DMemSpyDriverDevice& aDevice, TUint aHandle ); - ~DMemSpyDriverClientEM(); - TInt Create(); - -public: // API - inline TUint Handle() const { return iHandle; } - // - TInt NotifyChanges( DThread* aClientThread, TRequestStatus* aClientRS, TAny* aClientContext ); - TInt NotifyChangesCancel(); - -public: // From MMemSpyEventMonitorObserver - TUint EMTypeMask() const; - void EMHandleProcessAdd( DProcess& aProcess ); - void EMHandleProcessRemoved( DProcess& aProcess ); - void EMHandleThreadAdd( DThread& aThread ); - void EMHandleThreadKilled( DThread& aThread ); - void EMHandleChunkAdd( DChunk& aChunk ); - void EMHandleChunkDeleted( DChunk& aChunk ); - -private: // Internal methods - void ResetPendingChanges(); - void CompleteClientsRequest( TInt aCompletionCode, TUint aContext = 0 ); - -private: // Internal objects - - class TChange - { - public: - inline TChange( TInt aCompletionCode, TUint aContext ) - : iCompletionCode( aCompletionCode ), iContext( aContext ) - { - } - - public: // Data members - TInt iCompletionCode; - TUint iContext; - SDblQueLink iLink; - }; - -private: - DMemSpyDriverDevice& iDevice; - DMutex* iLock; - const TUint iHandle; - SDblQue iPendingChanges; - - // Transient: client-originated - DThread* iClientThread; - TRequestStatus* iClientRS; - TAny* iClientContext; - -public: - SDblQueLink iLink; - }; - - -#endif