--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/featmgrstub/inc/featurecmn.h Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,187 @@
+/*
+* 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:
+* This file contains Feature Manager related definitions for use by the test Feature Manager stub.
+*
+*/
+
+
+
+
+#ifndef FEATURECMN_H
+#define FEATURECMN_H
+
+#include <e32cmn.h>
+#include <babitflags.h>
+
+const TInt KFeatureUnsupported( 0 );
+const TInt KFeatureSupported( 1 );
+
+/** An enumeration for accessing feature status flags.
+ @see TBitFlagsT
+*/
+enum TFeatureFlags
+ {
+ /** If set, feature is supported and available for use;
+ if not, feature is not supported.
+ */
+ EFeatureSupported = 0,
+ /** If set, feature is upgradeable. The feature is known to the device
+ but it must be upgraded to enable it. If a feature s blacklisted,
+ its upgradeable flag is unset.
+ */
+ EFeatureUpgradeable = 1,
+ /** If set, the feature is modifiable and may be enabled/disabled
+ at run-time. The initial flag values for such a feature flag are
+ defined in a ROM image obey file.
+ */
+ EFeatureModifiable = 2,
+ /** If set, the feature has been blacklisted, and may not be changed at
+ run-time. This also prevents a feature from being upgraded.
+ */
+ EFeatureBlackListed = 3,
+ /** If set, this flag Supported state is unknown at build-time and is
+ initialised at run-time by system software. The Feature Manager will
+ ignore the Supported flag in the file. A run-time call to RFeatureControl
+ will be needed to set the feature's supported flag. Look ups of
+ uninitialised features result in a KErrNotReady error code.
+ */
+ EFeatureUninitialized = 4,
+ /** If set, this flag is saved to the system drive when modified
+ preserving its value across reboots/power downs.
+ */
+ EFeaturePersisted = 5,
+
+ // Bits 6..23 Reserved for Symbian to define for future use, always zero.
+
+ // High byte bits are undefined, reserved for internal use
+ EFeatureReserved24 = 24,
+ EFeatureReserved25 = 25,
+ EFeatureReserved26 = 26,
+ EFeatureReserved27 = 27,
+ EFeatureReserved28 = 28,
+ EFeatureReserved29 = 29,
+ EFeatureReserved30 = 30,
+ EFeatureReserved31 = 31
+
+ };
+
+/** An enumeration for checking feature change type.
+*/
+enum TFeatureChangeType
+ {
+ /** Feature status not changed.
+ */
+ EFeatureNoChange = 0,
+ /** Feature status changed to enabled or disabled.
+ */
+ EFeatureStatusUpdated = 1,
+ /** Feature data changed.
+ */
+ EFeatureDataUpdated = 2,
+ /** Feature status and data changed.
+ */
+ EFeatureStatusDataUpdated = 3,
+ /** Not used, future: complex change occurred, reload all features.
+ */
+ EFeatureRediscover = 4,
+ /** Not used, future: new feature has been added to system.
+ */
+ EFeatureFeatureCreated = 5
+ };
+
+/**
+ Feature entry class.
+ Used by Feature Manager and its clients.
+
+*/
+
+class TFeatureEntry
+ {
+ public:
+
+ /**
+ Default constructor.
+ Needed by clients using the method
+ FeatureSupported( TFeatureEntry& aFeature ) of Feature Control API.
+
+ @param aFeature Feature UID.
+ */
+ IMPORT_C TFeatureEntry( TUid aFeature );
+
+ /**
+ Default constructor.
+ Needed by clients using the method
+ AddFeature( TFeatureEntry& aFeature ) of Feature Control API.
+
+ @param aFeature Feature UID.
+ @param aFlags Feature status flags.
+ @param aData Feature data.
+ */
+ IMPORT_C TFeatureEntry( TUid aFeature, TBitFlags32 aFlags, TUint32 aData );
+
+ /**
+ Returns feature UID.
+ */
+ IMPORT_C TUid FeatureUid() const;
+
+ /**
+ Returns feature status flags.
+ */
+ IMPORT_C TBitFlags32 FeatureFlags() const;
+
+ /**
+ Returns feature data.
+ */
+ IMPORT_C TUint32 FeatureData() const;
+
+ public:
+ /**
+ Default constructor.
+ Used by Feature Manager.
+ */
+ IMPORT_C TFeatureEntry();
+
+ private:
+
+ /** UID of the feature. */
+ TUid iFeatureID;
+ /**
+ Value of the feature status flags.
+ @see TFeatureFlags
+ */
+ TBitFlags32 iFlags;
+ /** Data associated with feature. */
+ TUint32 iData;
+ /**
+ Reserved for future use.
+ Initialised to 0 on construction.
+ */
+ TUint32 iReserved;
+ };
+
+
+/**
+ Defines the feature UID array.
+*/
+typedef RArray<TUid> RFeatureUidArray;
+
+/**
+ Defines the feature entry array.
+*/
+typedef RArray<TFeatureEntry> RFeatureArray;
+
+#endif // FEATURECMN_H
+
+// End of File