locationtriggering/ltcontainer/inc/lbtcontainertriggerentry.h
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationtriggering/ltcontainer/inc/lbtcontainertriggerentry.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,201 @@
+/*
+* Copyright (c) 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:  Abstract base class for location triggering entries
+*
+*/
+
+
+#ifndef C_LBT_CONTAINER_TRIGGER_ENTRY_H
+#define C_LBT_CONTAINER_TRIGGER_ENTRY_H
+
+#include <lbtcommon.h>
+#include <lbttriggerinfo.h>
+#include <lbttriggerentry.h>
+
+// CONSTANTS
+const static TInt KVisitedCellSize(2); 
+
+typedef TUint64 TLbtTriggerDataMask;
+
+// forward declaration
+class CLbtExtendedTriggerInfo;
+
+// Activity status for strategy
+enum TLbtTriggerActivityStatus
+    {
+    /**
+     * Active
+     */
+    EActive = 1,        
+    /**
+     * Inactive
+     */
+    EInactive = 2       
+    };
+// Hybrid status of the trigger
+enum THybridState
+    {
+    EHybridNone,
+    
+    EHybridActive,
+    
+    EHybridInActive 
+    };
+
+/**
+ * Structure used by startegy for storing supervision
+ * information
+ */ 
+struct TStrategyData
+	{
+	// Trigger hybrid status
+	THybridState iHybridState;
+	// The time at which the trigger fired
+	TInt64 iFireTime;
+	
+	// The activity status of the trigger
+	TLbtTriggerActivityStatus iActivityStatus;
+	
+	// Boundary condition for cell supervision
+	TInt iBoundaryCondition;
+	
+	// Visited cells 
+	TInt iVisitedCell[KVisitedCellSize];
+	};
+   
+
+       	
+/* This is the main Trigger Information class used to set and access trigger information in the container.
+* It is derived from the CLbtTriggerInfo class from the Location Triggering API.
+*/
+       	
+NONSHARABLE_CLASS( CLbtContainerTriggerEntry ) : public CLbtTriggerInfo
+    {
+public:
+    enum TLbtContainerTriggerAttribute
+        {
+        EContainerAttributeRectTriggerArea=0x00010000,
+        EContainerAttributeHysteresisRadius=0x00020000,
+        EContainerAttributeIsFired=0x00040000,
+        EContainerAttributeStrategyData=0x0080000,
+        EContainerAttributeOwnerSid=0x00100000,
+        EContainerDynInfoAttributeValidity=0x00200000,
+        EContainerDynInfoAttributeActivity=0x00400000,
+        EContainerDynInfoAttributeDistance=0x00800000,
+        EContainerAttributeIsTriggerFireOnCreation=0x001000000,
+        EContainerAttributeFireInfo=0X002000000,
+        EContainerAttributeAll = 0xFFFFFFFF
+        };
+        
+    /**
+     * Constructs a new instance of container trigger entry object.
+     *
+     * @return The new instance of the container trigger entry object.
+     */
+    IMPORT_C static CLbtContainerTriggerEntry* NewL();
+
+    /**
+     * Constructs a new instance of container trigger entry object with the 
+     * given parameters.
+     *
+     * @param[in] aEntry The pointer to the trigger entry. 
+     * Ownership is transferred.
+     * @param[in] aDynInfo The pointer to the trigger dynamic 
+     * information object. Ownership is transferred.
+     * @param[in] aExtendedTriggerInfo The pointer to the trigger derived dynamic 
+     * information object. Ownership is transferred.
+     *
+     * @return The new instance of trigger information object.
+     */
+    IMPORT_C static CLbtContainerTriggerEntry* NewL(
+                        CLbtTriggerEntry* aEntry,
+                        TLbtTriggerDynamicInfo* aDynInfo,
+                        CLbtExtendedTriggerInfo* aExtendedTriggerInfo );                
+       
+    /**
+     * Destructor
+     */
+    IMPORT_C virtual ~CLbtContainerTriggerEntry();
+
+  
+    /**
+     * Gets extended trigger information object.
+     *
+     * @return Pointer to the extended trigger information object.
+     * Ownership is not transferred.
+     */
+    IMPORT_C CLbtExtendedTriggerInfo* ExtendedTriggerInfo();
+		
+    /**
+     * Sets extended trigger information object.
+     *
+     * @param[in] aDynInfo Pointer to the extended trigger
+     * information object. Ownership is transferred.
+     */
+    IMPORT_C void SetExtendedTriggerInfo( 
+                        CLbtExtendedTriggerInfo* aExtendedTriggerInfo );
+                        
+    /**
+     * 
+     */
+    IMPORT_C void SetStrategyData( TStrategyData& aStartegyData );    
+    
+    /**
+     * 
+     */
+    IMPORT_C TStrategyData StrategyData();                  
+                        
+    /**
+     * Copy constructor
+     */                    
+    CLbtContainerTriggerEntry( CLbtContainerTriggerEntry& aEntry);   	
+
+private:
+    /**
+     * Constructor.
+     */
+ 	CLbtContainerTriggerEntry();
+        
+     // CLbtContainerTriggerEntry( CLbtContainerTriggerEntry& aEntry);   
+    /**
+     * Symbian 2nd phase of Construction.
+     */
+    void ConstructL();
+
+    /**
+     * Symbian 2nd phase of Construction.
+     */
+    void ConstructL(
+                    CLbtTriggerEntry* aEntry,
+                    TLbtTriggerDynamicInfo* aDynInfo,
+                    CLbtExtendedTriggerInfo* aExtendedTriggerInfo ); 
+
+
+	void InitializeStrategyData();
+                    
+    void CloneL(CLbtContainerTriggerEntry& aEntry);              
+       
+private:
+    
+    /**
+     * Derived Trigger dynamic info
+     */
+    CLbtExtendedTriggerInfo *iExtendedTriggerInfo;
+    
+    // Strategy Data
+    TStrategyData iStrategyData;
+    };
+
+
+#endif // C_LBT_CONTAINER_TRIGGER_ENTRY_H