diff -r 000000000000 -r 164170e6151a wim/WimPlugin/inc/WimAuthenticationObjectList.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wim/WimPlugin/inc/WimAuthenticationObjectList.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,204 @@ +/* +* Copyright (c) 2002 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: Authentication objects can be listed through this interface +* +*/ + + +#ifndef CWIMAUTHENTICATIONOBJECTLIST_H +#define CWIMAUTHENTICATIONOBJECTLIST_H + +// INCLUDES + +#include + +// FORWARD DECLARATIONS + +class CWimToken; +class CWimPin; +class CWimAuthenticationObject; + +// CLASS DECLARATION + +/** +* Represents an interface to authentication objects +* +* +* @lib WimPlugin +* @since Series 60 2.1 +*/ + +class CWimAuthenticationObjectList : public CActive, + public MCTAuthenticationObjectList + { + public: + + /** + * Default constructor + * @param aToken A reference to current token + * @return A pointer to this class + */ + static CWimAuthenticationObjectList* NewL( CWimToken& aToken ); + + /** + * Destructor + */ + virtual ~CWimAuthenticationObjectList(); + + public: // From base class MCTTokenInterface + + /** + * Returns a reference to current token. + * @return A reference to current token. + */ + MCTToken& Token(); + + public: // From base class MCTAuthenticationObjectList + + /** + * Lists authentication objects. + * The caller of this function owns all parameters. + * Altought asynchronous look and behaviour this call is + * synchronous. + * @param aAuthObjects (OUT) The returned authentication objects + * will be appended to this array. + * @param aStatus (IN/OUT) This will be completed with the final + * status code. + * KErrNone, if no errors detected. Note: thought none + * authentication objects are found, it is also KErrNone + * KErrHardwareNotAvailable, if Wim card suddenly removed + * Any other system wide error code (e.g. KErrNoMemory) + * @return void + */ + void List( RMPointerArray& aAuthObjects, + TRequestStatus& aStatus ); + + /** + * Cancels an ongoing List operation. Because List is synchronous, + * there is nothing to do here. + * @return void + */ + void CancelList(); + + protected: // From base class MCTTokenInterface + + virtual void DoRelease(); + + private: // Constructors + + /** + * Default constructor + * @param aToken (IN) A reference to current token + */ + CWimAuthenticationObjectList( CWimToken& aToken ); + + // Second phase constructor + void ConstructL(); + + private: //from CActive + + /** + * Different phases are handled here. + * @return void + */ + void RunL(); + + /** + * Cancellation function + * @return void + */ + void DoCancel(); + + /** + * The active scheduler calls this function if this active + * object's RunL() function leaves. + * @param aError -Error code which caused this event + * @return TInt -Error code to active scheduler, is always KErrNone. + */ + TInt RunError( TInt aError ); + + private: + + /** + * Leavable authentication objects list function. + * @return void + */ + void CreateListL( TRequestStatus& aStatus ); + + /** + * Leavable authentication objects creation function. + * @param aToken (IN) Current token + * @param aPinModule (IN) Pin manager module + * @param aLabel (IN) A label for authentication object. + * @param aType (IN) Type of this authenticaion object. + * @param aHandle (IN) A handle of this authentication object. + * @param aStatus (IN) The status of this authentication object. + * @return Pointer to CWimAuthenticationObject + */ + CWimAuthenticationObject* MakeAuthObjectL( CWimToken& aToken, + CWimPin& aPinModule, + const TDesC& aLabel, + TUid aType, + TUint32 aHandle, + TUint32 aStatus ); + /** + * Leavable authentication objects list function. + * The caller of this function owns all parameters. + * @param aAuthObjects (OUT) The returned authentication objects + * will be appended to this array. + * @return void + */ + void DoListL( RMPointerArray& aAuthObjects ); + + /** + * Returns true or false indicating if token is removed or not + * @return Boolean true or false + */ + TBool TokenRemoved(); + + + private: + + enum TAuthObjPhase + { + ECreateList, + ECreateListDone, + EDoList + }; + + + private: // Data + + // A reference to current token. + CWimToken& iToken; + + // Array of pointers to PIN modules. Not owned. + const CArrayPtrFlat* iPinNRs; + + // An internal array of listed authentication objects. + RPointerArray iAuthObjects; + + //Used to handle Authobj interface making + TAuthObjPhase iPhase; + //Client status is stored here + TRequestStatus* iClientStatus; + + //Not Owned + RMPointerArray* iClientAuthObjects; + }; + + +#endif // CWIMAUTHENTICATIONOBJECTLIST_H + +// End of File