|
1 // Copyright (c) 2007-2009 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 "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 // |
|
15 |
|
16 #if !defined(__PROCROOT_H__) |
|
17 #define __PROCROOT_H__ |
|
18 |
|
19 /** |
|
20 @file |
|
21 |
|
22 @internalTechnology |
|
23 @released |
|
24 */ |
|
25 |
|
26 #include <rscommon.h> |
|
27 |
|
28 class RProcessRoot : public RSessionBase |
|
29 /** The client interface to the Process Rootserver. Allows e.g. the Process Reference Configurator |
|
30 application to configure the Process with desired modules, bindings and |
|
31 later resources (memory,cpu,...). |
|
32 @internalTechnology |
|
33 @released |
|
34 */ |
|
35 { |
|
36 friend class RProcessRootDbg; |
|
37 |
|
38 public: |
|
39 IMPORT_C TInt Connect(const TDesC& aServerName); |
|
40 |
|
41 IMPORT_C TVersion Version() const; |
|
42 |
|
43 IMPORT_C void LoadModule(TRequestStatus& aStatus, const RootServer::TRSStartModuleParams& aParams, const TDesC8& aIniData); |
|
44 IMPORT_C void UnloadModule(TRequestStatus& aStatus, const CommsFW::TCFModuleName& aName, RootServer::TRSUnLoadType aType); |
|
45 IMPORT_C void Bind(TRequestStatus& aStatus, RootServer::TRSBindingInfo& aBindInfo); |
|
46 IMPORT_C void Unbind(TRequestStatus& aStatus, RootServer::TRSUnBindingInfo& aUnBindInfo); |
|
47 |
|
48 IMPORT_C TInt GetModuleInfo(const CommsFW::TCFModuleName& aName, RootServer::TRSModuleInfo& aModuleInfo); |
|
49 IMPORT_C TInt EnumerateModules(RootServer::TRSIter &aPosition, CommsFW::TCFModuleName& aModuleName); |
|
50 IMPORT_C TInt EnumerateSubModules(const CommsFW::TCFModuleName& aModuleName, RootServer::TRSIter &aPosition, CommsFW::TCFSubModuleName& aSubModuleName); |
|
51 IMPORT_C TInt EnumerateBindings(const CommsFW::TCFSubModuleAddress& aSubModuleAddr, RootServer::TRSIter &aPosition, RootServer::TRSBindingInfo& aBinding); |
|
52 |
|
53 IMPORT_C void CancelLoadModule(const CommsFW::TCFModuleName& aName); |
|
54 IMPORT_C void CancelUnloadModule(const CommsFW::TCFModuleName& aName); |
|
55 IMPORT_C void CancelBind(RootServer::TRSSubModuleAddress& aName1, RootServer::TRSSubModuleAddress& aName2); |
|
56 IMPORT_C void CancelUnbind(RootServer::TRSSubModuleAddress& aName1, RootServer::TRSSubModuleAddress& aName2); |
|
57 |
|
58 IMPORT_C void SendMessage(TRequestStatus& aStatus, const CommsFW::TCFModuleName& aName, TInt aType, TDes8& aData); |
|
59 IMPORT_C TInt SendMessage(const CommsFW::TCFModuleName& aName, TInt aType, TDes8& aData); |
|
60 |
|
61 IMPORT_C TInt Shutdown(); |
|
62 |
|
63 IMPORT_C void Close(); |
|
64 |
|
65 private: |
|
66 inline TInt SendReceive(TInt aFunction,const TIpcArgs& aArgs) const |
|
67 { return RSessionBase::SendReceive( aFunction, aArgs );} |
|
68 |
|
69 }; |
|
70 |
|
71 class RProcessRootDbg |
|
72 { |
|
73 /** Process root debugging capabilities. |
|
74 @internalTechnology |
|
75 @released |
|
76 */ |
|
77 IMPORT_C void Open(RProcessRoot& aProcessRoot); |
|
78 |
|
79 IMPORT_C TInt __DbgMarkHeap(); |
|
80 IMPORT_C TInt __DbgCheckHeap(TInt aCount); |
|
81 IMPORT_C TInt __DbgMarkEnd(TInt aCount); |
|
82 IMPORT_C TInt __DbgFailNext(TInt aCount); |
|
83 |
|
84 IMPORT_C void Close(); |
|
85 |
|
86 private: |
|
87 RProcessRoot& iProcessRoot; |
|
88 }; |
|
89 |
|
90 #endif // __PROCROOT_H__ |
|
91 |