diff -r 77618ad58aba -r 60f08993dad0 securitysettings/qtconfigutils/eapqtplugininfo/src/eapqtpluginhandle.cpp --- a/securitysettings/qtconfigutils/eapqtplugininfo/src/eapqtpluginhandle.cpp Fri Jun 11 16:24:23 2010 +0100 +++ b/securitysettings/qtconfigutils/eapqtplugininfo/src/eapqtpluginhandle.cpp Thu Jul 22 16:34:37 2010 +0100 @@ -2,7 +2,7 @@ * 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 the License "Eclipse Public License v1.0" + * 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". * @@ -12,26 +12,145 @@ * Contributors: * * Description: - * Control Panel EAP plugin information + * Handle to EAP plugin information * */ /* - * %version: 1 % + * %version: 16 % + */ + +// System includes +#include + +// User includes +#include "eapqtpluginhandle_p.h" + +/*! + * \class EapQtPluginHandle + * \brief Public implementation of handle to EAP plugin information */ -#include "eapqtpluginhandle.h" +// 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} +}; -//---------------------------------------------------------------------------- -// EapQtPluginHandle -//---------------------------------------------------------------------------- +// 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)) +{ +} -// stub implementation for now +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() +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); +}