contentstorage/casrv/casrvmgr/inc/casrvmanager.h
branchRCL_3
changeset 113 0efa10d348c0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contentstorage/casrv/casrvmgr/inc/casrvmanager.h	Tue Aug 31 15:30:51 2010 +0300
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 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: casrvmanager.h
+ *
+ */
+
+#ifndef CA_SRV_MANAGER_H
+#define CA_SRV_MANAGER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <e32hashtab.h>
+#include "casrvplugin.h"
+
+
+class CCaSrvEngUtils;
+namespace Usif{
+    class RSoftwareComponentRegistry;
+}
+
+/**
+ *
+ * @since S60 5.0
+ * @ingroup group_mmextensions
+ */
+NONSHARABLE_CLASS( CCaSrvManager ): public CBase
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Standard C++ Destructor.
+     */
+    ~CCaSrvManager();
+
+    /**
+     * Two-phased constructor.
+     * @return Instance of the CCaSrvManager class.
+     * @param aCaStorageProxy storage.
+     * @param aUtils storage utils.
+     */
+    IMPORT_C static CCaSrvManager* NewL( CCaStorageProxy& aCaStorageProxy,
+            Usif::RSoftwareComponentRegistry* aSoftwareRegistry,
+            CCaSrvEngUtils* aUtils = NULL );
+
+    /**
+     * Two-phased constructor.
+     * @return Instance of the CCaSrvManager class.
+     * @param aCaStorageProxy storage.
+     * @param aUtils storage utils.
+     */
+    static CCaSrvManager* NewLC( CCaStorageProxy& aCaStorageProxy,
+            Usif::RSoftwareComponentRegistry* aSoftwareRegistry,
+            CCaSrvEngUtils* aUtils = NULL );
+
+    /**
+     * Load operation error code
+     * @return error code for load plugins operation
+     */
+    IMPORT_C TInt LoadOperationErrorCodeL();
+    
+private:
+
+    /**
+     * Constructor for performing 1st stage construction.
+     * @param aCaStorageProxy Interface enabling to issues request to App UI.
+     */
+    CCaSrvManager();
+
+    /**
+     * EPOC default constructor for performing 2nd stage construction.
+     * @param aCaStorageProxy storage.
+     * @param aUtils storage utils.
+     */
+    void ConstructL( CCaStorageProxy& aCaStorageProxy,
+            Usif::RSoftwareComponentRegistry* aSoftwareRegistry,
+            CCaSrvEngUtils* aUtils = NULL );
+
+    /**
+     * Loads MultimediaMenu plugins implementations.
+     */
+    void LoadPluginsL();
+
+private:
+
+    /**
+     * Pointer to plugin map.
+     * Own.
+     */
+    RHashMap<TInt32, CCaSrvPlugin*> iPluginMap;
+
+    /**
+     * Not Own.
+     * Reference to the Storage Proxy, Storage Utils.
+     */
+    TPluginParams* iPluginParams;
+    
+    /**
+     * Error code for load plugins operation
+     */
+    TInt iErrorCode;
+    };
+
+#endif // C_MM_EXTENSION_MANAGER_H
+// End of file