contextframework/cfwplugins/PSStateSourcePlugIn/inc/psstatemapper.h
changeset 0 2e3d3ce01487
--- /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