Ejemplo n.º 1
0
bool XQSettingsManagerPrivate::stopMonitoring(const XQSettingsKey& key)
{
    SettingsHandlerBase* handler = NULL;
    const long int uid = key.uid();
    switch (key.target())
    {
        case XQSettingsKey::TargetCentralRepository:
            if (m_centralRepositoryHandlers.contains(uid))
            {
                handler = m_centralRepositoryHandlers.value(uid);
            }
            break;
        case XQSettingsKey::TargetPublishAndSubscribe:
            if (m_publishAndSubscribeHandlers.contains(uid))
            {
                handler = m_publishAndSubscribeHandlers.value(uid);
            }
            break;
        default:
            break;
    }
    if (handler)
    {
        return handler->handleStopMonitoring(key, iError);
    }
    iError = KErrNotFound;
    return false;
}
/*!
    Compares the two given keys.

    \param settingsKey XQSettingsKey
    \param psSettingsKey XQPublishAndSubscribeSettingsKey

    \return <code>true</code> if the target, uid and key values match, otherwise
            returns <code>false</code>
*/
bool NmUiEventsNotifier::keysEqual(
    const XQSettingsKey& settingsKey,
    const XQPublishAndSubscribeSettingsKey& psSettingsKey) const
{
    return ((settingsKey.target() == psSettingsKey.target()) &&
            (settingsKey.uid() == psSettingsKey.uid()) &&
            (settingsKey.key() == psSettingsKey.key()));
}
/*!
* Reads the setting value for the given key from cenrep
*/
QVariant XQSettingsManager::readItemValue(const XQSettingsKey& settkey, XQSettingsManager::Type /*type*/)
{
    CX_DEBUG_ENTER_FUNCTION();
    mError = XQSettingsManager::NoError;
    if(mStore.contains(settkey.key())) {
        return mStore[settkey.key()];
    }
    return QVariant(1);
}
bool CPublishAndSubscribeHandler::handleStopMonitoring(const XQSettingsKey& key, TInt& error)
{
    if (!m_monitors.contains(key.key()))
    {
        error = KErrNotFound;
        return false;
    }
    const long int itemKey = key.key();
    CPubSubMonitor* monitor = m_monitors[itemKey];
    m_monitors.remove(itemKey);
    delete monitor;
    
    return error == KErrNone;
}
bool CPublishAndSubscribeHandler::handleStartMonitoring(const XQSettingsKey& key, XQSettingsManager::Type type, MSettingsHandlerObserver& observer, TInt& error)
{
    if (m_monitors.contains(key.key()))
    {
        error = KErrAlreadyExists;
        return false;
    }
    CPubSubMonitor* newMonitor = new CPubSubMonitor(key, type, observer);
    if (newMonitor)
    {
        m_monitors[key.key()] = newMonitor;
        error = newMonitor->StartMonitoring();
        return error == KErrNone;
    }
    error = KErrNoMemory;
    return false;
}
/*!
* write value to cenrep key
*/
bool XQSettingsManager::writeItemValue(const XQSettingsKey& key, const QVariant& value)
{
    CX_DEBUG_ENTER_FUNCTION();

    mError = XQSettingsManager::NoError;
    mStore[key.key()] = value;

    CX_DEBUG_EXIT_FUNCTION();
    return true;
}
Ejemplo n.º 7
0
QVariant SettingsHandlerBase::handleReadItemValue(const XQSettingsKey& key, XQSettingsManager::Type type, TInt& error)
{
    const TInt KRBufDefaultLength = 32;
    switch(type)
    {
        case XQSettingsManager::TypeVariant:
        {
            //Try to read TInt
            TInt intValue;
            error = getValue(key.key(), intValue);
            if (error == KErrNone)
            {
                return QVariant(intValue);
            }

            //Try to read TReal
            TReal realValue;
            error = getValue(key.key(), realValue);
            if (error == KErrNone)
            {
                return QVariant(realValue);
            }

            //Try to read RBuf8
            QVariant byteArrayVariant;
            TRAP(error,
                RBuf8 tdes8Value;
                tdes8Value.CreateL(KRBufDefaultLength);
                CleanupClosePushL(tdes8Value);
                getValueL(key.key(), tdes8Value);
                byteArrayVariant.setValue(QByteArray((const char*)tdes8Value.Ptr(), tdes8Value.Length()));
                CleanupStack::PopAndDestroy(&tdes8Value);
            )
            if (error == KErrNone)
            {
                return byteArrayVariant;
            }
            break;
        }
        case XQSettingsManager::TypeInt:
        {
            //Try to read TInt
            TInt intValue;
            error = getValue(key.key(), intValue);
            if (error == KErrNone)
            {
                return QVariant(intValue);
            }
            break;
        }
        case XQSettingsManager::TypeDouble:
        {
            //Try to read TReal
            TReal realValue;
            error = getValue(key.key(), realValue);
            if (error == KErrNone)
            {
                return QVariant(realValue);
            }
            break;
        }
        case XQSettingsManager::TypeString:
        {
            //Try to read RBuf8
            QVariant stringVariant;
            TRAP(error,
                RBuf16 tdes16Value;
                tdes16Value.CreateL(KRBufDefaultLength);
                CleanupClosePushL(tdes16Value);
                getValueL(key.key(), tdes16Value);
                stringVariant.setValue(QString::fromUtf16(tdes16Value.Ptr(), tdes16Value.Length()));
                CleanupStack::PopAndDestroy(&tdes16Value);
            )
            if (error == KErrNone)
            {
                return stringVariant;
            }
            break;
        }