|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-2EE70A59-7EF0-5A1B-986B-00ED5ACD8BD4" xml:lang="en"><title>Patchable |
|
13 Constants: KListImplBufferSize</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <codeblock id="GUID-A819292B-1CC3-5378-82E8-01ECBCA1EF1C" xml:space="preserve"># define ECOM_PATCHDATA_KLISTIMPLBUFFERSIZE 2048</codeblock> |
|
15 <table id="GUID-5C9F05F1-89BD-5AE1-9C12-217EE4AE91A6"> |
|
16 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/> |
|
17 <tbody> |
|
18 <row> |
|
19 <entry><p>Exported from: </p> </entry> |
|
20 <entry><p> <filepath>ECOMPATCHDATA.DLL</filepath> </p> </entry> |
|
21 </row> |
|
22 <row> |
|
23 <entry><p>Defined in: </p> </entry> |
|
24 <entry><p> <filepath> .../os/ossrv/lowlevellibsandfws/pluginfw/framework/frame/ecompatchdataconstant.cpp</filepath> </p> </entry> |
|
25 </row> |
|
26 <row> |
|
27 <entry><p>Purpose: </p> </entry> |
|
28 <entry><p>This constant is used to define the size of the buffer that is pre-allocated |
|
29 on the ECOM client side to hold the list of Implementation Information records. |
|
30 The records are copied from the server as a result of a call to one of the <xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita#GUID-1344F049-81C4-3D17-AF46-8B5584680ADB/GUID-AE9D4F24-8554-3151-AAF3-D63F400821C4"><apiname>REComSession::ListImplementationsL()</apiname></xref> functions. </p> <p>If the result of a call to <codeph>ListImplementationsL()</codeph> does |
|
31 not fit into the initial buffer, the server stores the result and tells the |
|
32 client the required size. <codeph>ListImplementationsL()</codeph> then reallocates |
|
33 the buffer and makes a second call to the server to retrieve the results. </p> <p>This |
|
34 value can be adjusted during ROM build time to suit a particular device. In |
|
35 general, a smaller value results in more client-server requests, while a larger |
|
36 value results in fewer client-server requests. Care must be taken when choosing |
|
37 the value. A large value, increases the temporary heap consumption by ECOM |
|
38 client processes, but results in faster completion of the call to <codeph>ListImplementationsL()</codeph> because |
|
39 of fewer client-server calls. System start-up can benefit from fine-tuning |
|
40 this value. </p> <p>The default size is 2048 bytes. This value optimises performance |
|
41 on the Symbian test UI platform. Larger values do not result in any significant |
|
42 gain in performance; smaller values reduce performance. </p> <p>To work out |
|
43 the optimum value for this constant, you need to discover the typical size |
|
44 of the buffer required for each call to <codeph>ListImplementationsL()</codeph>. |
|
45 To get such values, you need to enable the <codeph>ECOM_TRACE</codeph> macro |
|
46 and rebuild <codeph>ECOM</codeph>. After booting up the device, you will see |
|
47 output in the following format from the serial port: </p> <codeblock id="GUID-13659F9E-02AC-5752-BE1B-DC08E351A8BC" xml:space="preserve">ECOM ListImplementations request buffer size required=88</codeblock> <codeblock id="GUID-28532E84-E2BA-59F8-9E9A-7B144FD2BF90" xml:space="preserve">ECOM ListImplementations request buffer size required=1562</codeblock> <p> </p> <p>You |
|
48 can use this information to calculate mean and median values, which will help |
|
49 you to choose the optimum value for your platform. </p> </entry> |
|
50 </row> |
|
51 </tbody> |
|
52 </tgroup> |
|
53 </table> |
|
54 <p>ECom uses a customized scheme to handle patchable constants. Device creators |
|
55 should follow the scheme described below to set patch values: </p> |
|
56 <ul> |
|
57 <li id="GUID-E3EFD7AA-7B91-5CF9-8E9E-F027C35C167D"><p>Each patchable constant |
|
58 is represented by a macro listed in <filepath>\epoc32\rom\include\ecompatchconstants.hby</filepath>. |
|
59 The macros in the HBY file are all commented out. </p> </li> |
|
60 <li id="GUID-51E1005E-60FF-55CF-8D51-BEAE67E38D7A"><p>To activate a patch |
|
61 macro, uncomment the line and change the example value in the line to your |
|
62 custom value. </p> </li> |
|
63 </ul> |
|
64 </conbody></concept> |