| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Fri, 12 Mar 2010 15:43:05 +0200 | |
| branch | RCL_3 | 
| changeset 45 | dbd79466b1ed | 
| parent 32 | 92a061761a7b | 
| child 63 | 4baee4f15982 | 
| permissions | -rw-r--r-- | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 1 | /* | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 2 | * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 3 | * All rights reserved. | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 4 | * This component and the accompanying materials are made available | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 5 | * under the terms of the License "Eclipse Public License v1.0" | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 6 | * which accompanies this distribution, and is available | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 7 | * at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 8 | * | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 9 | * Initial Contributors: | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 10 | * Nokia Corporation - initial contribution. | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 11 | * | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 12 | * Contributors: | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 13 | * | 
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 14 | * Description: | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 15 | * Browser App Entry point | 
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 16 | * | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 17 | * | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 18 | */ | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 19 | |
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 20 | |
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 21 | #include "BrowserApplication.h" | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 22 | #include <e32std.h> | 
| 22 
d6f226a5ad2c
Revision: 200941
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
0diff
changeset | 23 | #include <u32std.h> | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 24 | #include <eikapp.h> | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 25 | #include <eikstart.h> | 
| 32 
92a061761a7b
Revision: 200951
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
31diff
changeset | 26 | #include <MemoryManager.h> | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 27 | #include <OOMMonitorSession.h> | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 28 | |
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 29 | const int KFreeMemoryTarget = 6000000; | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 30 | |
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 31 | LOCAL_C CApaApplication* NewApplication( ) | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 32 |     {
 | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 33 | return new CBrowserApplication; | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 34 | } | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 35 | |
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 36 | // ----------------------------------------------------------------------------- | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 37 | // SetupThreadHeap - Called for heap creation of thread in this process. | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 38 | // This approach used to keep correct heap for pointers held in static data objects | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 39 | // when they are destructed after E32Main() by OS. | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 40 | // ----------------------------------------------------------------------------- | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 41 | EXPORT_C TInt UserHeap::SetupThreadHeap(TBool aSubThread, SStdEpocThreadCreateInfo& aInfo) | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 42 |     {
 | 
| 22 
d6f226a5ad2c
Revision: 200941
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
0diff
changeset | 43 | TInt r = KErrNone; | 
| 
d6f226a5ad2c
Revision: 200941
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
0diff
changeset | 44 | if (!aInfo.iAllocator && aInfo.iHeapInitialSize>0) | 
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 45 |         {
 | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 46 | // new heap required | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 47 | RHeap* pH = NULL; | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 48 | r = CreateThreadHeap(aInfo, pH); | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 49 | if (r == KErrNone && !aSubThread) | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 50 |             {
 | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 51 | // main thread - new allocator created and set as default heap | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 52 | MemoryManager::CreateFastAllocator(); | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 53 | } | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 54 | } | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 55 | else if (aInfo.iAllocator) | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 56 |         {
 | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 57 | // sharing a heap | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 58 | RAllocator* pA = aInfo.iAllocator; | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 59 | pA->Open(); | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 60 | User::SwitchAllocator(pA); | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 61 | } | 
| 22 
d6f226a5ad2c
Revision: 200941
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
0diff
changeset | 62 | |
| 
d6f226a5ad2c
Revision: 200941
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
0diff
changeset | 63 | return r; | 
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 64 | } | 
| 22 
d6f226a5ad2c
Revision: 200941
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
0diff
changeset | 65 | |
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 66 | // ----------------------------------------------------------------------------- | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 67 | // E32Main | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 68 | // ----------------------------------------------------------------------------- | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 69 | GLDEF_C TInt E32Main() | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 70 |     {
 | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 71 | ROomMonitorSession oomMs; | 
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 72 | TInt result = oomMs.Connect(); | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 73 | if ( result == KErrNone ) | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 74 |         {
 | 
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 75 | result = oomMs.RequestFreeMemory( KFreeMemoryTarget ); | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 76 | oomMs.Close(); | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 77 | } | 
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 78 | |
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 79 | // initialize MemmoryManager | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 80 | MemoryManager::InitFastAllocator(); | 
| 22 
d6f226a5ad2c
Revision: 200941
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
0diff
changeset | 81 | |
| 31 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 82 | // run application event loop | 
| 
868cceedabd3
Revision: 200948
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: 
22diff
changeset | 83 | return EikStart::RunApplication(NewApplication); | 
| 0 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 84 | } | 
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 85 | |
| 
84ad3b177aa3
Revision: 200911
 Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com> parents: diff
changeset | 86 | // End of File |