wim/Scard/src/ScardConnectionRequirement.cpp
changeset 0 164170e6151a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wim/Scard/src/ScardConnectionRequirement.cpp	Tue Jan 26 15:20:08 2010 +0200
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2003 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:  For describing required Smart Card reader connections
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "ScardConnectionRequirement.h"
+#include    "ScardServerBase.h"
+#include    "ScardBase.h"
+#include    "WimTrace.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::TScardConnectionRequirement
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TScardConnectionRequirement::TScardConnectionRequirement()
+    : iExplicitReader( NULL ),
+      iExcludedReader( NULL ),
+      iATRBytes( NULL ),
+      iAIDBytes( NULL ),
+      iParameterCount( 0 ), 
+      iNewCards( EFalse ),
+      iNewReaders( EFalse )
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::TScardConnectionRequirement|Begin"));
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::SetExplicitL
+// Set explicit reader
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::SetExplicitL(
+    TScardReaderName& aExplicitName )
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::SetExplicitL|Begin"));
+    __ASSERT_ALWAYS( iParameterCount < 2, User::Leave( KScErrFull ) );
+    __ASSERT_ALWAYS( !iExcludedReader, User::Leave( KErrNotSupported ) );
+    iExplicitReader = &aExplicitName;
+    iParameterCount++;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::SetExcludedL
+// Set exluded reader
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::SetExcludedL(
+    TScardReaderName& aExcludedName )
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::SetExcludedL|Begin"));
+    __ASSERT_ALWAYS( iParameterCount < 2, User::Leave( KScErrFull ) );
+    __ASSERT_ALWAYS( !iExplicitReader, User::Leave( KErrNotSupported ) );
+    iExcludedReader = &aExcludedName;
+    iParameterCount++;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::SetATRL
+// Set ATR bytes
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::SetATRL( TScardATR& aATR )
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::SetATRL|Begin"));
+    __ASSERT_ALWAYS( iParameterCount < 2, User::Leave( KScErrFull ) );
+    __ASSERT_ALWAYS( !(iAIDBytes), User::Leave( KErrNotSupported ) );
+    iATRBytes = &aATR;
+    iParameterCount++;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::SetAIDBytesL
+// Set AID bytes
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::SetAIDBytesL( TDesC8& aAID )
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::SetAIDBytesL|Begin"));
+    __ASSERT_ALWAYS( iParameterCount < 2, User::Leave( KScErrFull ) );
+    __ASSERT_ALWAYS( !(iATRBytes), User::Leave( KErrNotSupported ) );
+    iAIDBytes = &aAID;
+    iParameterCount++;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::ClearExplicitL
+// Clear explicit requirement
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::ClearExplicitL()
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::ClearExplicitL|Begin"));
+    if ( !iExplicitReader )
+        {
+        User::Leave( KScErrEmpty );
+        }
+    if ( iParameterCount && iExplicitReader )
+        {
+        iParameterCount--;
+        }
+    iExplicitReader = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::ClearExcludedL
+// Clear exluded requirement
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::ClearExcludedL()
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::ClearExcludedL|Begin"));
+    if ( !iExcludedReader )
+        {
+        User::Leave( KScErrEmpty );
+        }
+
+    if ( iParameterCount && iExcludedReader )
+        {
+        iParameterCount--;
+        }
+
+    iExcludedReader = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::ClearATRL
+// Clear ATR
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::ClearATRL()
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::ClearATRL|Begin"));
+    if ( !iATRBytes )
+        {
+        User::Leave( KScErrEmpty );
+        }
+    if ( iParameterCount && iATRBytes )
+        {
+        iParameterCount--;
+        }
+    iATRBytes = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::ClearAIDBytesL
+// Clear AID bytes
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::ClearAIDBytesL()
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::ClearAIDBytesL|Begin"));
+    if ( !iAIDBytes )
+        {
+        User::Leave( KScErrEmpty );
+        }
+    if ( iParameterCount && iAIDBytes )
+        {
+        iParameterCount--;
+        }
+    iAIDBytes = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::NewCardsOnly
+// Set New cards only flag
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::NewCardsOnly( const TBool aNewOnly )
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::NewCardsOnly|Begin"));
+    iNewCards = aNewOnly;
+    }
+
+// -----------------------------------------------------------------------------
+// TScardConnectionRequirement::NewReadersOnly
+// Set new readers only flag
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TScardConnectionRequirement::NewReadersOnly( const TBool aNewOnly )
+    {
+    _WIMTRACE(_L("WIM|Scard|TScardConnectionRequirement::NewReadersOnly|Begin"));
+    iNewReaders = aNewOnly;
+    }
+
+//  End of File