-
Bug
-
Resolution: Invalid
-
P2: Important
-
None
-
4.7.0
-
None
-
Qt 4.7 on Symbian 3 platform.
Findings from startup of QtWrt widgets.
RCmManager::ConnectionMethodL() is called multiple times. Each call
executes for ~20ms and generates IPC calls to centralrepositoysrv.exe).
1) Does SymbianEngine need a reference to comms database?
CommsDb? object creation is expensive(27ms) as central repository
server needs to load settings from file system. Can we remove the explicit
call to CCommsDatabase?::NewL() for devices that have SNAP
functionality?
RCmManager does not provide callback/notification interface to indicate
connection method changes (additions or removals of IAPs/SNAPs). The
only way I'm aware is to listen for commsdatabse notifications. (The
interface used in the bearer backend uses deprecated code but I gave a try
for the recommended non-deprecated way but that behaves exactly the
same, and by looking at the code it gets obvious because the deprecated
interface has been changed to be a wrapper of the 'new').
2) Detecting and configuring access points is slow. Can we avoid the
RCmManager and open the CommsDb? tables directly and read all the
metadata about IAP/SNAPs? This is the solution for S60 3.x devices?
It's likely possible but I would say no. The CommDb interface has actually
been deprecated since Symbian OS 9.1, and the reason why it is used is
because it was not marked properly as deprecated. In any case based on
my experiments migrating to the new API would not impact the
performance. On Symbian timebox 10.1 the RCmManager caches the data,
which quite well should alleviate the issue. With 3.2...9.2 branches I would
preferably look at refactoring the code such that excessive looping could be
reduced.
3) I would also look at client side if there is a way to reduce potentially
excessive "QNetworkConfigurationManagar::updateConfigurations() <-->
configurationUpdateComplete()" -sequences.