// -----------------------------------------------------------------------------
// CSipClientResolverConfig::GetUIDsForUserNameL
// -----------------------------------------------------------------------------
//
void CSipClientResolverConfig::GetUIDsForUserNameL(
    const TDesC8& aUserName,
    RArray<TUid>& aUids)
{
    RArray<TUint32> keys;
    CleanupClosePushL(keys);
    TInt err = iCenRep->FindEqL(KSIPClientResolverUserNameMask,
                                KSIPClientResolverFieldTypeMask,
                                aUserName,
                                keys);

    for (TInt i=0; !err && i < keys.Count(); i++)
    {
        TUint32 key = (KSIPClientResolverUserNameMask^(keys[i]));
        // Read the related plug-in UID
        TUint32 uidKey = KSIPClientResolverPluginUIDMask|key;
        TInt uidValue(0);
        User::LeaveIfError(iCenRep->Get(uidKey,uidValue));
        TUid uid;
        uid.iUid = uidValue;
        // Duplicate plug-in UIDs not added, but are allowed
        err = aUids.InsertInUnsignedKeyOrder(uid);
        if (err != KErrNone && err != KErrAlreadyExists)
        {
            User::Leave(err);
        }
        err = KErrNone;
    }

    CleanupStack::PopAndDestroy(&keys);
}