--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contextframework/cfwplugins/PSStateSourcePlugIn/inc/psstatemapper.h Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,161 @@
+/*
+* Copyright (c) 2006-2006 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: CPSStateMapper class declaration.
+*
+*/
+
+
+
+#ifndef C_PSSTATEMAPPER_H
+#define C_PSSTATEMAPPER_H
+
+#include <e32base.h>
+#include <e32property.h>
+#include <cfcontextobject.h>
+
+
+class MCFContextInterface;
+
+/**
+* P&S state mapper wraps inside a selected P&S key from some category
+* and maps this key to defined context.
+* Currently only integer P&S values are handled. If other P&S values
+* are wanted to map into contexts derive this class and provide support
+* for this.
+*
+* @lib -
+* @since S60 4.0
+*/
+NONSHARABLE_CLASS( CPSStateMapper ): public CActive
+ {
+ public:
+
+ // Mapper ids
+ enum TPSStateMapperType
+ {
+ EPSIntMapper,
+ EPSTextMapper
+ };
+
+ public:
+
+ // Destructor
+ ~CPSStateMapper();
+
+ public: // New methods
+
+ virtual TInt MapperType() const = 0;
+
+ void SetPSCategory (TUid aPSCategory);
+ void SetPSKey (TUint32 aKey);
+ void SetSecurityPolicy (const TSecurityPolicy& aSecurityPolicy);
+ void SetSourceL ( const TDesC& aSource );
+ void SetTypeL ( const TDesC& aType );
+ void SetPassThrough(TBool aPassThrough);
+
+ /**
+ * Returns context source related to this mapping.
+ *
+ * @since S60 4.0
+ * @param None
+ * @return const TDesC&
+ */
+ virtual const TDesC& Source() const;
+
+ /**
+ * Returns context type related to this mapping.
+ *
+ * @since S60 4.0
+ * @param None
+ * @return const TDesC&
+ */
+ virtual const TDesC& Type() const;
+
+ /**
+ * Returns security policy related to this mapping.
+ *
+ * @since S60 4.0
+ * @param None
+ * @return const TSecurityPolicy&
+ */
+ virtual const TSecurityPolicy& SecurityPolicy() const;
+
+ virtual void Define() = 0;
+ virtual void InitializeL() = 0;
+
+ protected: // New methods
+
+ /**
+ * Subscribes into property.
+ *
+ * @since S60 4.0
+ * @param None
+ * @return None
+ */
+ virtual void Subscribe();
+
+ protected: // From base classes
+
+ // @see CActive
+ virtual void RunL();
+
+ // @see CActive
+ virtual void DoCancel();
+
+ // @see CActive
+ virtual TInt RunError( TInt aError );
+
+ private: // New methods
+
+ // Informs implementation that propery has changed
+ virtual void ProperyChangedL() = 0;
+
+ protected:
+
+ CPSStateMapper( MCFContextInterface& aCF );
+ virtual void ConstructL( );
+
+ protected: // Data
+
+ // Own: P&S property in hand.
+ RProperty iProperty;
+
+
+ public:
+
+ // P&S category
+ TUid iPSCategory;
+
+ // P&S key from iPSCategory
+ TUint32 iPSKey;
+
+ // Context source to publish
+ HBufC* iSource;
+
+ // Context type to publish
+ HBufC* iType;
+
+ // Security policy
+ TSecurityPolicy iSecurityPolicy;
+
+ TBool iPassThrough;
+
+ // CF interface
+ MCFContextInterface& iCF;
+
+ CCFContextObject* iContext;
+
+ };
+
+#endif