|
1 // Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of the License "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // Purpose: Kernel-side tracking of process state |
|
15 // |
|
16 // |
|
17 |
|
18 #ifndef D_TARGET_PROCESS_H |
|
19 #define D_TARGET_PROCESS_H |
|
20 |
|
21 #include "d_debug_agent.h" |
|
22 |
|
23 // Debug Process Tracker class |
|
24 class DTargetProcess : public DBase |
|
25 { |
|
26 public: |
|
27 DTargetProcess(); |
|
28 ~DTargetProcess(); |
|
29 |
|
30 static TInt Compare(const DTargetProcess& aFirst, const DTargetProcess& aSecond); |
|
31 |
|
32 TInt SetProcessName(const TDesC8& aProcessName); |
|
33 const TDesC8& ProcessName() const; |
|
34 |
|
35 TInt AddAgent(const TUint64 aAgentId); |
|
36 |
|
37 TInt RemoveAgent(TUint64 aAgentId); |
|
38 |
|
39 DDebugAgent* operator[](TInt aIndex); |
|
40 |
|
41 DDebugAgent* Agent(TUint64 aAgentId); |
|
42 |
|
43 TInt AgentCount() const; |
|
44 void NotifyEvent(const TDriverEventInfo& aEventInfo); |
|
45 |
|
46 private: |
|
47 HBuf8* iProcessName; |
|
48 RPointerArray<DDebugAgent> iAgentList; |
|
49 |
|
50 RArray<TUint64> iSuspendedThreads; |
|
51 |
|
52 RPointerArray<NFastSemaphore> iFrozenThreadSemaphores; |
|
53 |
|
54 }; |
|
55 |
|
56 #endif // D_TARGET_PROCESS_H |
|
57 |