ncdengine/inc/ncdinstalledcontent.h
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/inc/ncdinstalledcontent.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2006-2008 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:   Contains MNcdInstalledContent interface
+*
+*/
+
+
+#ifndef M_NCD_INSTALLED_CONTENT_H
+#define M_NCD_INSTALLED_CONTENT_H
+
+#include "catalogsbase.h"
+#include "ncdinterfaceids.h"
+
+
+/**
+ *  Interface for accessing installed content.
+ *
+ *  This interface provides methods for checking the status of the installed content. 
+ *  The actual content interfaces are queried by using QueryInterfaceL(). These interfaces
+ *  include MNcdInstalledApplication, MNcdInstalledTheme and MNcdInstalledFile.
+ *
+ *  @see MNcdNodeInstall 
+ *  @see MNcdInstalledApplication
+ *  @see MNcdInstalledTheme
+ *  @see MNcdInstalledFile
+ *
+ *  
+ */
+class MNcdInstalledContent : public virtual MCatalogsBase
+    {
+public:
+
+    /**
+     * Unique identifier for the interface, required for all MCatalogsBase interfaces.
+     *
+     * 
+     */
+    enum { KInterfaceUid = ENcdInstalledContentUid };
+
+
+    /**
+     * Types of installed content
+     * 
+     * 
+     */
+    enum TInstalledContentType 
+        {
+        /**
+         * Normal content
+         */
+        EInstalledContent,
+        
+        /**
+         * Required dependency
+         */
+        EInstalledDependency,
+        
+        /**
+         * Application that should be launched
+         */
+        EInstalledLauncher
+        };
+        
+    /**
+     * Checks if the item content has already been installed and is currently present in the
+     * device.
+     *
+     * 
+     * @return ETrue if the item content has been installed and is present, EFalse otherwise.
+     * @exception Leave System wide error code.    
+     * @note This is always ETrue for content that is of EInstalledLauncher type 
+     */
+    virtual TBool IsInstalledL() const = 0;
+
+    
+    /**
+     * Checks if the content is allowed to be launched. 
+     *
+     * If this returns EFalse, the content should not be launched even if it has been
+     * successfully installed.
+     *
+     * 
+     * @return ETrue if the content can be launched.
+     * @note This method does not check if the content has been installed or if it's
+     * currently present.
+     * @note For EInstalledLauncher content this is both launchable 
+     * and installed status
+     */
+    virtual TBool IsLaunchable() const = 0;
+    
+    
+    /**
+     * Content type getter
+     *
+     * 
+     * @return Type of the content
+     */
+    virtual TInstalledContentType ContentType() const = 0;
+
+protected:
+
+    /**
+     * Destructor.
+     * 
+     * @see MCatalogsBase::~MCatalogsBase()
+     */
+    virtual ~MNcdInstalledContent() {}
+
+    };
+
+
+#endif // M_NCD_INSTALLED_CONTENT_H