featuremgmt/featuremgr/src/serverexe/featmgrfeatureentry.h
changeset 0 08ec8eefde2f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/featuremgmt/featuremgr/src/serverexe/featmgrfeatureentry.h	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2007-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:
+*
+*/
+
+
+
+#ifndef FEATMGRFEATUREENTRY_H
+#define FEATMGRFEATUREENTRY_H
+
+#include <e32cmn.h>
+#include <featmgr/featurecmn.h>
+
+class RReadStream;
+class RWriteStream;
+
+
+/** 
+An enumeration for accessing internal feature status flags bits 24..31 used
+inside the server. See TFeatureFlags in published header featurecmn.h for the
+flag definitions 0..23. 
+
+@see TFeatureFlags
+@see TBitFlagsT
+@internalComponent 
+*/
+enum TFeatureFlagsServer 
+    {
+    // Do not define flags here for values 0..23. See TFeatureFlags enum.
+   
+    /** If set, the feature flag is a Runtime feature flag (created at run time).
+    if not set means source of feature flag is ROM or plug-in */
+    EFeatureRuntime         = 24,
+    
+    // Reserved flags, these are not currently used in the server
+    EFeatureFlagUnused25    = 25,
+    EFeatureFlagUnused26    = 26,
+    EFeatureFlagUnused27    = 27,
+    EFeatureFlagUnused28    = 28,
+    EFeatureFlagUnused29    = 29,
+    EFeatureFlagUnused30    = 30,
+    EFeatureFlagUnused31    = 31
+    };
+
+
+// CLASS DECLARATION
+// @see corresponding client side class TFeatureEntry
+
+class TFeatureServerEntry
+    {
+    public:
+                                                    
+        /** 
+        * Constructors.
+        */
+        TFeatureServerEntry();
+        TFeatureServerEntry( TUid aFeature );
+        TFeatureServerEntry( TUid aFeature, TBitFlags32 aFlags, TUint32 aData );
+        TFeatureServerEntry( TFeatureEntry& aEntry );
+            
+        /** 
+        * Returns feature status flags.
+        */
+        TBitFlags32 FeatureFlags() const;
+
+        /** 
+        * Returns feature data.
+        */
+        TUint32 FeatureData() const;
+        
+        /** 
+        * Returns feature UID.
+        */
+        TUid FeatureUid() const;
+        
+        /**
+        * Internalize object from stream
+        */
+        void InternalizeL( RReadStream& aStream );
+        
+        /**
+        * Externalize object from stream
+        */
+        void ExternalizeL( RWriteStream& aStream ) const;
+        
+        /**
+         *This sets a feature's flags and data
+         */
+        void inline Set( TFeatureServerEntry aEntry)
+            {
+            iFlags = aEntry.FeatureFlags();
+            iData = aEntry.FeatureData();
+            }
+       
+        /**
+         *This sets a feature's flags and data
+         */
+        void inline Set(TBitFlags32 aFlags, TUint32 aData)
+            {
+            iFlags = aFlags;
+            iData = aData;
+            }
+
+    private:
+
+        /** UID of the feature. */         
+        TUid iFeatureID;
+        
+        /** Value of the feature status flags.
+        @see TFeatureFlags
+        @see TFeatureFlagsServer */
+        TBitFlags32 iFlags;
+        
+        /** Data associated with feature. */
+        TUint32 iData;
+    };
+
+/**
+* Defines TFeatureEntry array. 
+*/
+typedef RArray<TFeatureServerEntry> RFeatureServerArray;
+
+#endif  // FEATMGRFEATUREENTRY_H
+
+// End of File