homescreenpluginsrv/inc/hspsresource.h
changeset 0 79c6a41cd166
child 19 502e5d91ad42
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenpluginsrv/inc/hspsresource.h	Thu Dec 17 08:54:17 2009 +0200
@@ -0,0 +1,307 @@
+/*
+* Copyright (c) 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:  Declaration of a file resource
+*
+*/
+
+
+#ifndef hspsRESOURCE_H
+#define hspsRESOURCE_H
+
+#include <e32base.h>
+#include <apmstd.h> // MIME
+#include <s32mem.h> // streams
+ 
+const TInt KMaxTagsLength = 50;
+
+/**
+* ThspsLockingPolicy
+* Locking policy flag-definitions for HSPS. These are bit-masked.
+*/
+enum ThspsLockingPolicy
+  {
+  EhspsUnlocked           = 0x0000, //0b0000000000000000,			Resource is replaceable
+  EhspsLocked             = 0x0001  //0b0000000000000001,			The resource is always fetched from ROM and it cannot be replaced
+  };
+    
+/**
+ * Resource file extension definitions for HSPS.
+ */
+_LIT(KODTFileExtension, ".o0000");
+_LIT(KDTDFileExtension, ".dtd");
+_LIT(KXMLFileExtension, ".xml");
+_LIT(KDATFileExtension, ".dat");
+    
+
+/**
+* ThspsResourceType
+* Resource-type definitions for HSPS.
+*/
+enum ThspsResourceType
+    {
+    /**
+    * EResourceNone. No type at all - juts a file path.
+    */
+    EResourceNone,
+            
+    /**
+    * EResourceODT. Resource is ODT (HSPS Application Theme's binary format)
+    */
+    EResourceODT,
+    
+    /**
+    * EResourceDTD.
+    */
+    EResourceDTD,
+    
+    /**
+    * EResourceXML.
+    */
+    EResourceXML,
+    
+    /**
+    * EResourceDAT.
+    */
+    EResourceDAT,
+    
+    /**
+    * EResourceRES. Resource is some media content.
+    */
+    EResourceRES,
+            
+    /**
+    * EResourceOther. Other extension. 
+    */
+    EResourceOther
+    
+    };
+
+
+/**
+ * ChspsResource is HSPS-utility class defining resource-structure.
+ *
+ * @lib hspsResource.lib
+ * @since S60 5.0
+ * @ingroup group_hspsresource 
+ */
+class ChspsResource : public CBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        * 
+        * @since S60 5.0
+        */
+        IMPORT_C static ChspsResource* NewL();
+        
+        
+        /**
+        * Makes a clone of this class.
+        * 
+        * @since S60 5.0
+        */
+        IMPORT_C ChspsResource* CloneL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~ChspsResource();
+
+    public: // New functions
+        
+        /**
+        * Sets value of iLockingPolicy data member.
+        * 
+        * @since S60 5.0
+        * @param aLockingPolicy is new value for iLockingPolicy data member.
+        */
+        IMPORT_C void SetLockingPolicy( ThspsLockingPolicy aLockingPolicy );
+        
+        /**
+        * Gets value of iLockingPolicy data member.
+        * 
+        * @since S60 5.0
+        * @return ThspsLockingPolicy iLockingPolicy.
+        */
+        IMPORT_C ThspsLockingPolicy LockingPolicy() const;
+        
+        /**
+        * Sets value of iResourceType data member.
+        * 
+        * @since S60 5.0
+        * @param aResourceType is new value of iResourceType data member.
+        */    
+        IMPORT_C void SetResourceType( ThspsResourceType aResourceType );
+        
+        /**
+        * Gets value of iResourceType data member.
+        * 
+        * @since S60 5.0
+        * @return ThspsResourceType iResourceType.
+        */
+        IMPORT_C ThspsResourceType ResourceType() const;
+        
+        /**
+        * Sets value of iResourceId data member.
+        * 
+        * @since S60 5.0
+        * @param aResourceId is new value of iResourceId data member.
+        */
+        IMPORT_C void SetResourceIdL( const TDesC& aResourceId );
+        
+        /**
+        * Gets value of iResourceId data member.
+        * 
+        * @since S60 5.0
+        * @return TDesC& iResourceId.
+        */
+        IMPORT_C const TDesC& ResourceId() const;
+        
+        /**
+        * Sets value of iFileName data member.
+        * 
+        * @since S60 5.0
+        * @param aFileName is new iFileName value.
+        */
+        IMPORT_C void SetFileNameL( const TDesC& aFileName );
+        
+        /**
+        * Gets value of iFileName data member.
+        * 
+        * @since S60 5.0
+        * @return TDes& iFileName.
+        */
+        IMPORT_C const TDesC& FileName() const;
+        
+        /**
+        * Sets value of iMimeType data member.
+        *  
+        * @since S60 5.0
+        * @param aDataType is a new value of iMimeType.
+        */
+        IMPORT_C void SetMimeTypeL( const TDataType aDataType );
+        
+        /**
+        * Get iMimeType of this ChspsResource-object.
+        * 
+        * @since S60 5.0
+        * @return TDataType iMimeType.
+        */
+        IMPORT_C TDataType MimeType() const;
+        
+        /**
+        * Externalizes ChspsResource-object's member data.
+        * 
+        * @since S60 5.0
+        * @param aStream is a write stream given.
+        */
+        IMPORT_C void ExternalizeL( RWriteStream& aStream) const;
+        
+        /**
+        * Internalizes ChspsResource-object's member data.
+        * 
+        * @since S60 5.0
+        * @param aStream is data read stream given.
+        */
+        IMPORT_C void InternalizeL( RReadStream& aStream);
+        
+        /**
+        * Set to ELangNone if the resource is common to all locales,
+        * otherwise it's language specific.
+        * 
+        * @since S60 5.0
+        * @param aLanguage is new value of iLanguage data member.
+        */        
+        IMPORT_C void SetLanguage( const TLanguage& aLanguage );
+        
+        /**
+        * Gets value of iLanguage data member.
+        * 
+        * @since S60 5.0
+        * @return TLanguage& iLanguage.
+        */
+        IMPORT_C const TLanguage& Language() const;
+
+        /**
+         * Sets value of the iConfigurationUid member
+         * @since S60 5.0
+         * @param aConfUid Configuration UID
+         */
+        IMPORT_C void SetConfigurationUid( const TInt aConfUid );
+        
+        /**
+         * Gets value of the iConfigurationUid member
+         * @since S60 5.0
+         * @return UID
+         */
+        IMPORT_C TInt ConfigurationUid() const;
+        
+        /**
+         * Sets value of the iTags member
+         * @since S60 5.0
+         * @param aTag Tags
+         */
+        IMPORT_C void SetTagsL( const TDesC& aTag );
+        
+        /**
+         * Gets value of the iTags member
+         * @since S60 5.0
+         * @return tags descriptor
+         */
+        IMPORT_C const TDesC& Tags() const;
+        
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        ChspsResource();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    private:     // Data
+        
+        // Not used?
+        ThspsLockingPolicy iLockingPolicy;
+        
+        // Resource type
+        ThspsResourceType iResourceType;
+        
+        // Language of the resource
+        TLanguage iLanguage;
+        
+        // Identifies the configuration that owns the resource
+        TInt iConfigurationUid;
+        
+        // Filename without the extension
+        TDesC* iResourceID;
+        
+        // Full path and name
+        TDesC* iFileName;
+                
+        TDataType iMimeType;
+        
+        // Tags seperated with a colon
+        TDesC* iTags;
+
+         // Reserved pointer for future extension
+        TAny* iReserved;
+    };
+
+#endif      // hspsRESOURCE_H   
+// End of File