mtpfws/mtpfw/inc/rmtpframework.h
changeset 0 d0791faffa3f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpfws/mtpfw/inc/rmtpframework.h	Tue Feb 02 01:11:40 2010 +0200
@@ -0,0 +1,160 @@
+// Copyright (c) 2006-2009 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:
+//
+
+/**
+ @file
+ @internalComponent
+*/
+#ifndef RMTPFRAMEWORK_H
+#define RMTPFRAMEWORK_H
+
+#include <e32base.h>
+#include <f32file.h>
+
+#include "mtpdebug.h"
+
+class CMTPConnectionMgr;
+class CMTPDataProviderController;
+class CMTPFrameworkConfig;
+class CMTPObjectMgr;
+class CMTPParserRouter;
+class CMTPReferenceMgr;
+class CMTPStorageMgr;
+class RFs;
+class CMTPDataCodeGenerator;
+class CMTPServiceMgr;
+
+/** 
+Implements the MTP framework singletons manager.
+@internalComponent
+*/
+class RMTPFramework
+	{
+public:	
+
+    IMPORT_C RMTPFramework();
+
+    IMPORT_C void OpenL();
+    IMPORT_C void OpenLC();
+    IMPORT_C void Close();
+    
+	IMPORT_C CMTPConnectionMgr& ConnectionMgr() const;
+	IMPORT_C CMTPDataProviderController& DpController() const;
+	IMPORT_C CMTPFrameworkConfig& FrameworkConfig() const;
+	IMPORT_C RFs& Fs() const;
+	IMPORT_C CMTPObjectMgr& ObjectMgr() const;
+	IMPORT_C CMTPReferenceMgr& ReferenceMgr() const;
+	IMPORT_C CMTPParserRouter& Router() const;
+	IMPORT_C CMTPStorageMgr& StorageMgr() const;
+	IMPORT_C CMTPDataCodeGenerator& DataCodeGenerator() const;	
+	IMPORT_C CMTPServiceMgr& ServiceMgr() const;
+    
+private: // Owned
+	
+    class CSingletons : public CObject
+        {
+    public: 
+
+        static CSingletons& OpenL();
+        
+    public: // From CObject
+        
+        void Close();
+
+    private:
+
+        virtual ~CSingletons();
+        void ConstructL();
+
+    public: // Owned
+
+        /**
+        FLOGGER debug trace member variable.
+        */
+        __FLOG_DECLARATION_MEMBER_MUTABLE;
+        
+        /**
+        The construction in-progress flag, which is used to manage nested 
+        (recursive) opens.
+        */
+        TBool                       iConstructing;
+
+        /**
+        The connection manager singleton.
+        */
+        CMTPConnectionMgr*          iSingletonConnectionMgr;	
+
+        /**
+        The data provider controller singleton.
+        */
+        CMTPDataProviderController* iSingletonDpController;
+        
+        /**
+        The configurability parameter data singleton.
+        */
+        CMTPFrameworkConfig*        iSingletonFrameworkConfig;	
+
+        /**
+        The file server session singleton
+        */
+        RFs                         iSingletonFs;   
+
+        /**
+        The object manager singleton.
+        */
+        CMTPObjectMgr*              iSingletonObjectMgr;
+
+        /**
+        The request and event parser/router singleton.
+        */
+        CMTPParserRouter*           iSingletonRouter;
+        
+        /** 
+        The storage manager singleton.
+        */
+        CMTPStorageMgr*             iSingletonStorageMgr;
+        
+        /** 
+        The data code manager singleton.
+        */
+        CMTPDataCodeGenerator*      iSingleDataCodeGenerator;
+        
+        /** 
+        The device service manager singleton.
+        */
+        CMTPServiceMgr*           iSingleServiceMgr;
+        
+        };
+
+private: // Owned
+
+    /**
+    FLOGGER debug trace member variable.
+    */
+    __FLOG_DECLARATION_MEMBER_MUTABLE;
+    
+    /**
+    The nested flag which indicates if the singletons manager reference was 
+    recursively opened.
+    */
+    TBool           iNested;
+
+    /**
+    The singletons reference block.
+    */
+    CSingletons*    iSingletons;
+	};
+	
+#endif // RMTPFRAMEWORK_H