diff -r 000000000000 -r 164170e6151a wim/Scard/src/ScardConnectionRequirement.cpp --- /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