--- /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 <mctauthobject.h>
+
+// 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<MCTAuthenticationObject>& 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<MCTAuthenticationObject>& 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<CWimPin>* iPinNRs;
+
+ // An internal array of listed authentication objects.
+ RPointerArray<CWimAuthenticationObject> iAuthObjects;
+
+ //Used to handle Authobj interface making
+ TAuthObjPhase iPhase;
+ //Client status is stored here
+ TRequestStatus* iClientStatus;
+
+ //Not Owned
+ RMPointerArray<MCTAuthenticationObject>* iClientAuthObjects;
+ };
+
+
+#endif // CWIMAUTHENTICATIONOBJECTLIST_H
+
+// End of File