diff -r 000000000000 -r 094583676ce7 PECengine/TransferAdapter2/Src/CPEngTransAdapFactory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PECengine/TransferAdapter2/Src/CPEngTransAdapFactory.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,131 @@ +/* +* Copyright (c) 2004 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: Access handler of the network session +* +*/ + +#ifndef __CPENGTRANSADAPFACTORY_H__ +#define __CPENGTRANSADAPFACTORY_H__ + +// INCLUDES +#include +#include "MPEngTransAdapFactory.h" + + +// FORWARD DECLARATIONS +class MPEngAccessHandler; +class MPEngPureDataHandler; +class CPEngSessionSlotId; +class CPEngSessionManager; + +/** + * NWSessionSlotID implementation. + * + * @since 3.0 + */ +NONSHARABLE_CLASS( CPEngTransAdapFactory ) : + public CObject, + public MPEngTransAdapFactory + { +public: /* Construction */ + + /** + * Tryes to get instance from the Thread local storage + * if it does not exists there, it is constructed and stored + * there + * + * @since 3.0 + * @return CPEngTransAdapFactory instance + */ + static CPEngTransAdapFactory* InstanceLC(); + + /** + * Destructor. + */ + ~CPEngTransAdapFactory(); + + //----------------------------------------------------------------------- +public: //new functions of the MPEngTransAdapFactory + + /** + * Add session reference + * + * @since 3.0 + */ + void OpenSessionCount(); + + /** + * Close session manager + * + * @since 3.0 + * @param aSessManager session manager + */ + void CloseSession( CPEngSessionManager* aSessManager ); + + //----------------------------------------------------------------------- +public: // + + /** + * Get Access handler for defined session + * + * @since 3.0 + * @param aSessionId + * @return access handler + */ + MPEngAccessHandler* AccessHandlerL( + const CPEngSessionSlotId& aSessionId ); + + /** + * Get Pure data handler for defined session Id + * + * @since 3.0 + * @param + * @return + */ + MPEngPureDataHandler* PureDataHandlerL( + const CPEngSessionSlotId& aSessionId ); + +private: // + + /** + * Get Session manager + * + * @since 3.0 + * @param aSessionId session id to find + * @return session manager + */ + CPEngSessionManager& SessionManagerLC( + const CPEngSessionSlotId& aSessionId ); + +protected: // construction + + /** + * C++ constructor. protected + */ + CPEngTransAdapFactory(); + +private: //Data + + /// OWN: Access count + TInt iAccessCount; + + /// OWN: Active managers, + /// elements OWNED + RPointerArray iSessManagers; + + }; + +#endif //__CPENGTRANSADAPFACTORY_H__ + +// End of File