--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/authenticationservices/authenticationserver/source/common/plugindesc.cpp Tue Aug 31 17:00:08 2010 +0300
@@ -0,0 +1,251 @@
+/*
+* Copyright (c) 2005-2009 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"
+* 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:
+* CPluginDesc class definition
+*
+*/
+
+
+/**
+ @file
+*/
+
+#include "authcommon_impl.h"
+
+using namespace AuthServer;
+
+
+// -------- factory functions --------
+
+
+/**
+ Factory function allocates a new instance of CPluginDesc
+ from the supplied arguments.
+
+ The supplied values are arbitrary and need not correlate with
+ the actual plugins on the device.
+
+ @param aId The plugin's ID. This value is used
+ to specify the plugin in an authentication
+ expression.
+ actually available on the system.
+ @param aName The plugin's name. The newly-created
+ description object allocates its own copy
+ of this name, so aName does not have to remain
+ in scope after the object has been created.
+ @param aType The plugin's type.
+ @param aTrainingStatus The plugin's training status.
+ @param aMinEntropy The plugin's minimum entropy as a percentage.
+ @param aFalsePositiveRate The plugin's false positive rate as a
+ percentage.
+ @param aFalseNegativeRate The plugin's false negative rate as a
+ percentage.
+ */
+EXPORT_C CPluginDesc* CPluginDesc::NewL(
+ TPluginId aId, const TDesC& aName,
+ TAuthPluginType aType, TAuthTrainingStatus aTrainingStatus,
+ TEntropy aMinEntropy, TPercentage aFalsePositiveRate,
+ TPercentage aFalseNegativeRate)
+
+ {
+ CPluginDesc* self = new(ELeave) CPluginDesc(
+ aId, aType, aTrainingStatus, aMinEntropy,
+ aFalsePositiveRate, aFalseNegativeRate);
+
+ CleanupStack::PushL(self);
+ self->ConstructL(aName);
+ CleanupStack::Pop(self);
+
+ return self;
+ }
+
+/**
+ Record supplied information in this new object,
+ See NewL for argument descriptions.
+
+ @see NewL
+ */
+CPluginDesc::CPluginDesc(
+ TPluginId aId, TAuthPluginType aType,
+ TAuthTrainingStatus aTrainingStatus, TEntropy aMinEntropy,
+ TPercentage aFalsePositiveRate, TPercentage aFalseNegativeRate)
+: iId(aId),
+ iType(aType),
+ iTrainingStatus(aTrainingStatus),
+ iMinEntropy(aMinEntropy),
+ iFalsePositiveRate(aFalsePositiveRate),
+ iFalseNegativeRate(aFalseNegativeRate)
+ {
+ // empty.
+ }
+
+
+/**
+ Allocate a copy of the supplied name. The
+ copy is freed in the destructor.
+
+ @param aName This plugin's name.
+ */
+void CPluginDesc::ConstructL(const TDesC& aName)
+ {
+ iName = aName.AllocL();
+ }
+
+
+/**
+ Free resources allocated in ConstructL.
+
+ @see ConstructL
+ */
+CPluginDesc::~CPluginDesc()
+ {
+ delete iName;
+ }
+
+
+// -------- persistence --------
+
+/**
+ Recreate an instance of CPluginDesc from the supplied
+ stream. On success the object is placed on the cleanup stack.
+
+ @param aIn Stream containing persisted plugin
+ description.
+ @return New instance of CPluginDesc, created
+ from information in the supplied stream.
+ */
+EXPORT_C CPluginDesc* CPluginDesc::NewLC(RReadStream& aIn)
+ {
+ CPluginDesc* self = new(ELeave) CPluginDesc;
+ CleanupStack::PushL(self);
+ self->InternalizeL(aIn);
+ return self;
+ }
+
+/**
+ Initialize this object from the supplied stream.
+ This function is used to copy plugin descriptions
+ across IPC boundaries.
+
+ @param aIn Stream which contains externalized
+ plugin descriptor.
+ @see ExternalizeL
+ */
+void CPluginDesc::InternalizeL(RReadStream& aIn)
+ {
+ iId = aIn.ReadUint32L();
+ iName = HBufC::NewL(aIn, KMaxNameLength);
+ iType = static_cast<TAuthPluginType>(aIn.ReadUint32L());
+ iTrainingStatus = static_cast<TAuthTrainingStatus>(aIn.ReadUint32L());
+ iMinEntropy = aIn.ReadUint32L();
+ iFalsePositiveRate = aIn.ReadUint32L();
+ iFalseNegativeRate = aIn.ReadUint32L();
+ }
+
+
+/**
+ Write information about this object to the supplied stream
+ so it can be reconstructed later.
+
+ This function is used to copy plugin descriptions
+ across IPC boundaries.
+
+ @see InternalizeL
+ */
+EXPORT_C void CPluginDesc::ExternalizeL(RWriteStream& aOut) const
+ {
+ aOut << iId;
+ aOut << *iName;
+ aOut.WriteInt32L(iType);
+ aOut.WriteInt32L(iTrainingStatus);
+ aOut << iMinEntropy;
+ aOut << iFalsePositiveRate;
+ aOut << iFalseNegativeRate;
+ }
+
+
+// -------- accessors --------
+
+
+/**
+ * The plugin id.
+ * @return The plugin id
+ **/
+EXPORT_C TPluginId CPluginDesc::Id() const
+ {
+ return iId;
+ }
+
+/**
+ * The plugin name.
+ *
+ * @return The plugin name, ownership of the returned pointer remains the
+ * plugin description
+ **/
+EXPORT_C const TDesC* CPluginDesc::Name() const
+ {
+ return iName;
+ }
+
+/**
+ * The plugin type.
+ * @return the plugin type
+ **/
+EXPORT_C TAuthPluginType CPluginDesc::Type() const
+ {
+ return iType;
+ }
+
+/**
+ * Indicates whether the plugin is trained for none, some or all known
+ * identities.
+ *
+ * @return the training status
+ **/
+EXPORT_C TAuthTrainingStatus CPluginDesc::TrainingStatus() const
+ {
+ return iTrainingStatus;
+ }
+
+/**
+ * How many unique identities the plugin supports.
+ * @return The minumum entropy provided by the plugin.
+ **/
+EXPORT_C TEntropy CPluginDesc::MinEntropy() const
+ {
+ return iMinEntropy;
+ }
+
+/**
+ * The percentage of times an device holder is falsely identified as an
+ * known identity.
+ *
+ * @return The false positive rate of the plugin
+ **/
+EXPORT_C TPercentage CPluginDesc::FalsePositiveRate() const
+ {
+ return iFalsePositiveRate;
+ }
+
+/**
+ * The percentage of times a known identity is not identified.
+ *
+ * @return The false negative rate of the plugin.
+ **/
+EXPORT_C TPercentage CPluginDesc::FalseNegativeRate() const
+ {
+ return iFalseNegativeRate;
+ }
+
+