// ---------------------------------------------------------
// CPosLmDatabaseManagerImpl::FillInDbInfoL
//
// (other items were commented in a header).
// ---------------------------------------------------------
//
void CPosLmDatabaseManagerImpl::FillInDbInfoL(
    HPosLmDatabaseInfo& aDatabaseInfo,
    CPosLmDatabaseManagerPluginBase* aPlugin,
    const TDesC& aDefaultDbUri)
    {
    TPtrC uri = aDatabaseInfo.DatabaseUri();
    PosLmDbInfoExtension::SetDatabaseDrive(aDatabaseInfo,
                                           aPlugin->DatabaseDrive(uri));
    PosLmDbInfoExtension::SetMediaType(aDatabaseInfo,
                                       aPlugin->DatabaseMedia(uri));

    if (aPlugin->Protocol() == KNullDesC ||
        aPlugin->Protocol() == KLocalProtocol)
        {
        // Create correct URIs (they may be missing protocol) so that
        // compareC will be correct
        HBufC* tmpUri = PosLmDatabaseUtility::CreateDatabaseUriL(uri);
        CleanupStack::PushL(tmpUri);
        HBufC* tmpDefaultUri = PosLmDatabaseUtility::CreateDatabaseUriL(aDefaultDbUri);
        CleanupStack::PushL(tmpDefaultUri);

        // check if default database
        if (tmpUri->CompareC(*tmpDefaultUri) == KErrNone)
            {
            PosLmDbInfoExtension::SetDefault(aDatabaseInfo, ETrue);
            // set default dispay name if no display name exists
            if (aDatabaseInfo.Settings().DatabaseName() == KNullDesC)
                {
                aDatabaseInfo.Settings().SetDatabaseName(
                    *iDefaultDatabaseDisplayName);
                }
            }
        CleanupStack::PopAndDestroy(tmpDefaultUri);
        CleanupStack::PopAndDestroy(tmpUri);
        }
    }