PECengine/TransferAdapter2/Src/CPEngTransAdapFactory.h
changeset 0 094583676ce7
--- /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 <E32Base.h>
+#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<CPEngSessionManager>      iSessManagers;
+
+    };
+
+#endif  //__CPENGTRANSADAPFACTORY_H__
+
+// End of File