diff -r 30e048a7b597 -r bad0cc58d154 securitysettings/qtconfigutils/eapqtplugininfo/src/eapqtpluginhandle.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/securitysettings/qtconfigutils/eapqtplugininfo/src/eapqtpluginhandle.cpp Tue Aug 31 15:16:37 2010 +0300 @@ -0,0 +1,156 @@ +/* + * 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: + * Handle to EAP plugin information + * + */ + +/* + * %version: 16 % + */ + +// System includes +#include + +// User includes +#include "eapqtpluginhandle_p.h" + +/*! + * \class EapQtPluginHandle + * \brief Public implementation of handle to EAP plugin information + */ + +// External function prototypes + +// Local constants + +struct EapQtPluginHandleMapper +{ + EapQtExpandedEapType::Type mType; + int mUid; +}; + +// mapper from EapQtPluginHandle::Plugin to default +// EapQtExpandedEapType & protocol plugin implementation UID pair +static const EapQtPluginHandleMapper handleMapper[EapQtPluginHandle::PluginLast] = { + {EapQtExpandedEapType::TypeUndefined, 0x00000000}, + {EapQtExpandedEapType::TypeEapAka, 0x102073c2}, + {EapQtExpandedEapType::TypeEapFast, 0x2000BF12}, + {EapQtExpandedEapType::TypeEapGtc, 0x101f8e80}, + {EapQtExpandedEapType::TypeLeap, 0x101f8ea7}, + {EapQtExpandedEapType::TypeEapMschapv2, 0x101f8e67}, + {EapQtExpandedEapType::TypePeap, 0x101f8e4e}, + {EapQtExpandedEapType::TypeEapSim, 0x101f8e4b}, + {EapQtExpandedEapType::TypeEapTls, 0x101f8e4d}, + {EapQtExpandedEapType::TypeEapTtls, 0x101f8e4f}, + {EapQtExpandedEapType::TypePap, 0x2001B2F2}, + {EapQtExpandedEapType::TypePlainMschapv2, 0x101f8e7b} +}; + +// mapper from EapQtExpandedEapType::Type to EapQtPluginHandle::Plugin +static const EapQtPluginHandle::Plugin typeMapper[EapQtExpandedEapType::TypeLast] = { + EapQtPluginHandle::PluginUndefined, + EapQtPluginHandle::PluginEapAka, + EapQtPluginHandle::PluginEapFast, + EapQtPluginHandle::PluginEapGtc, + EapQtPluginHandle::PluginLeap, + EapQtPluginHandle::PluginEapMschapv2, + EapQtPluginHandle::PluginPeap, + EapQtPluginHandle::PluginEapSim, + EapQtPluginHandle::PluginEapTls, + EapQtPluginHandle::PluginEapTtls, + EapQtPluginHandle::PluginUndefined, /* wps does not have a plugin */ + EapQtPluginHandle::PluginPap, + EapQtPluginHandle::PluginPlainMschapv2 +}; + +// ======== LOCAL FUNCTIONS ======== + +// ======== MEMBER FUNCTIONS ======== + +EapQtPluginHandle::EapQtPluginHandle() : + d_ptr(new EapQtPluginHandlePrivate(handleMapper[PluginUndefined].mType, + handleMapper[PluginUndefined].mUid)) +{ +} + +EapQtPluginHandle::EapQtPluginHandle(const Plugin id) : + d_ptr(NULL) +{ + Plugin localId; + if (id < PluginLast) { + localId = id; + } + else { + localId = PluginUndefined; + } + d_ptr.reset(new EapQtPluginHandlePrivate(handleMapper[localId].mType, + handleMapper[localId].mUid)); +} + +EapQtPluginHandle::EapQtPluginHandle(const EapQtExpandedEapType& type, const int uid) : + d_ptr(new EapQtPluginHandlePrivate(type, uid)) +{ +} + +EapQtPluginHandle::EapQtPluginHandle(const EapQtExpandedEapType& type) : + d_ptr(new EapQtPluginHandlePrivate(type, handleMapper[typeMapper[type.type()]].mUid)) +{ +} + +EapQtPluginHandle::EapQtPluginHandle(const EapQtPluginHandle& handle) : + d_ptr(new EapQtPluginHandlePrivate(handle.type(), handle.protocolImplementationUid())) +{ +} + +EapQtPluginHandle::~EapQtPluginHandle() +{ + // scoped pointer delete +} + +EapQtExpandedEapType EapQtPluginHandle::type() const +{ + return d_ptr->mType; +} + +int EapQtPluginHandle::protocolImplementationUid() const +{ + return d_ptr->mProtocolImplementationUid; +} + +EapQtPluginHandle::Plugin EapQtPluginHandle::pluginId() const +{ + return typeMapper[d_ptr->mType.type()]; +} + +EapQtPluginHandle& EapQtPluginHandle::operator=(const EapQtPluginHandle &handle) +{ + // check if assigning to myself + if (this != &handle) { + d_ptr.reset(new EapQtPluginHandlePrivate(handle.type(), handle.protocolImplementationUid())); + } + return *this; +} + +bool EapQtPluginHandle::operator ==(const EapQtPluginHandle &right_type_value) const +{ + return (right_type_value.d_ptr->mProtocolImplementationUid == d_ptr->mProtocolImplementationUid) + && (right_type_value.d_ptr->mType == d_ptr->mType); +} + +bool EapQtPluginHandle::operator !=(const EapQtPluginHandle &right_type_value) const +{ + return (right_type_value.d_ptr->mProtocolImplementationUid != d_ptr->mProtocolImplementationUid) + || (right_type_value.d_ptr->mType != d_ptr->mType); +}