diff -r 000000000000 -r 164170e6151a pkiutilities/DeviceToken/Inc/DevCertKeyStoreSession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkiutilities/DeviceToken/Inc/DevCertKeyStoreSession.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,86 @@ +/* +* Copyright (c) 2006 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: The header file of DevCertKeyStoreSession +* +*/ + + + +#ifndef __DEVTOKENKEYSTORESESSION_H__ +#define __DEVTOKENKEYSTORESESSION_H__ + +#include "DevTokenServer.h" + +class CDevCertKeyStoreConduit; +class CDevCertOpenedKeySrv; + +/** + * Encapsulates an opened key object and its handle. + */ +struct TObjectIndex + { + TInt iHandle; + CDevCertOpenedKeySrv* iObject; + }; + +/** + * A keystore session. + * Handles client requests by passing them to the keystore conduit. Keeps track + * of uids/passphrases for the session. + * + * @lib + * @since S60 v3.2 + */ +class CDevCertKeyStoreSession : public CDevTokenServerSession + { + public: + + /** + * Create a new session object. + * + * @param aConduit The keystore conduit used to service user requests. + * @return + */ + static CDevCertKeyStoreSession* NewL(CDevCertKeyStoreServer& aServer ); + + virtual ~CDevCertKeyStoreSession(); + + TInt AddOpenedKeyL(CDevCertOpenedKeySrv& aObject); + + void RemoveOpenedKeyL(TInt aHandle); + + CDevCertOpenedKeySrv* OpenedKey(TInt aHandle); + + /** + * Determine if this session has a key open. + * + * @param aHandle The key data handle - not the session's open key handle! + * @return ETrue if has open key + */ + TBool HasOpenKey(TInt aHandle); + + CDevCertKeyStoreSession(CDevCertKeyStoreServer& aServer ); + + private: + + virtual void DoServiceL(const RMessage2& aMessage); + + private: + + CDevCertKeyStoreServer& iServer; + TInt iLastHandle; + RArray iOpenedKeys; + }; + +#endif