wlanutilities/wlanwizard/tsrc/stubs/eapqtcertificateinfo_stub.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 16:18:40 +0300
branchRCL_3
changeset 24 63be7eb3fc78
permissions -rw-r--r--
Revision: 201029 Kit: 201035

/*
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description: 
 *   Certificate information data structure for EAP QT configuration interface
 *
 */

/*
 * %version: 3 %
 */

#include "eapqtcertificateinfo.h"
#include <QDebug>
class EapQtCertificateInfoPrivate
{
    friend class EapQtCertificateInfo; 
public:

    EapQtCertificateInfoPrivate() {};
    ~EapQtCertificateInfoPrivate() {};
    
    // copy constructor
    EapQtCertificateInfoPrivate(const EapQtCertificateInfoPrivate &certInfo)
    {
        mCerts = certInfo.mCerts;
    }

    QVariant value(int id);
    void setValue(int id, QVariant newValue);

private:
    // disable assignment
    EapQtCertificateInfoPrivate &operator=(const EapQtCertificateInfoPrivate&);
    QHash<int, QVariant> mCerts;

};


//----------------------------------------------------------------------------
//              EapQtCertificateInfo                
//----------------------------------------------------------------------------


EapQtCertificateInfo::EapQtCertificateInfo() :
    d_ptr(new EapQtCertificateInfoPrivate)
{
}

EapQtCertificateInfo::~EapQtCertificateInfo()
{
    // scoped pointer deleted automatically
}

EapQtCertificateInfo::EapQtCertificateInfo(const EapQtCertificateInfo &certInfo) :
    d_ptr(new EapQtCertificateInfoPrivate(*(certInfo.d_ptr)))
{
}

EapQtCertificateInfo& EapQtCertificateInfo::operator=(const EapQtCertificateInfo &certInfo)
{
    // check if assigning to myself
    if (this != &certInfo) {
        d_ptr.reset(new EapQtCertificateInfoPrivate(*(certInfo.d_ptr)));
    }
    return *this;
}

QVariant EapQtCertificateInfo::value(const ItemId id) const
{
    // check for valid range, otherwise memory is consumed for no reason
    if(id >= ItemIdLast) {
        qDebug("ERROR: EapQtCertificateInfo::value - invalid id!");
        return QVariant::Invalid;
    }
    return d_ptr->mCerts[id];
}

void EapQtCertificateInfo::setValue(const ItemId id, const QVariant &newValue)
{
    // check for valid range, otherwise memory is consumed for no reason
    if(id < ItemIdLast) {
        d_ptr->mCerts[id] = newValue;
    } else {
        qDebug("ERROR: EapQtCertificateInfo::setValue - invalid id!");
    }
    return;
}

bool EapQtCertificateInfo::operator==(const EapQtCertificateInfo & rhs ) const
{
    bool ret = true;
    if (d_ptr->mCerts.size() != rhs.d_ptr->mCerts.size()) {
        qWarning("EapQtCertificateInfo::operator==(): size: expect %d, actual %d ",
            d_ptr->mCerts.size(),
            rhs.d_ptr->mCerts.size() );
        ret = false;
    }
    QHashIterator<int, QVariant> i(d_ptr->mCerts);
    
    while (i.hasNext()) {
        i.next();
        if (!rhs.d_ptr->mCerts.contains(i.key())){
            qWarning("EapQtCertificateInfo::operator==(): key not found: %d", i.key());
            ret = false;
            
        }
        if (i.value() != rhs.d_ptr->mCerts[i.key()]){
            qWarning("EapQtCertificateInfo::operator==(): values not match");
            qDebug() << "Expect: " << i.value();
            qDebug() << "Actual: " << i.value();
            ret = false;
        }
    }
    return ret;
}