securitysettings/qtconfigutils/eapqtplugininfo/src/eapqtpluginhandle.cpp
branchGCC_SURGE
changeset 40 60f08993dad0
parent 39 fe6b6762fccd
child 52 c23bdf5a328a
--- 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 <eapqtpluginhandle.h>
+
+// 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);
+}