locationtriggering/tsrc/lbtengine_test/firingofstartuptriggerandlisttrigger/src/t_triggerfireobserver.cpp
changeset 39 3efc7a0e8755
parent 0 667063e416a2
child 45 6b6920c56e2f
--- a/locationtriggering/tsrc/lbtengine_test/firingofstartuptriggerandlisttrigger/src/t_triggerfireobserver.cpp	Fri Jul 23 19:40:48 2010 +0530
+++ b/locationtriggering/tsrc/lbtengine_test/firingofstartuptriggerandlisttrigger/src/t_triggerfireobserver.cpp	Fri Aug 06 19:34:22 2010 +0530
@@ -23,6 +23,7 @@
 #include "t_triggerfireobserver.h"
 
 
+_LIT(KRequestor,"LBT test app");
 
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -40,6 +41,12 @@
         CActiveScheduler::Add(this);
     }
 
+
+CTriggerFireObserver::CTriggerFireObserver( ):CTimer( CTimer::EPriorityStandard )
+    {
+    CActiveScheduler::Add(this);
+    }
+
 // -----------------------------------------------------------------------------
 // CTriggerFireObserver::ConstructL
 // Symbian 2nd phase constructor can leave.
@@ -55,6 +62,20 @@
     }
 
 // -----------------------------------------------------------------------------
+// CTriggerFireObserver::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTriggerFireObserver::ConstructL()
+    {
+    User::LeaveIfError( iPosServer.Connect() );
+    User::LeaveIfError( iPositioner.Open( iPosServer ) ); 
+
+    // Set position requestor
+    User::LeaveIfError( iPositioner.SetRequestor( CRequestor::ERequestorService ,
+                        CRequestor::EFormatApplication , KRequestor ) );
+    }
+// -----------------------------------------------------------------------------
 // CTriggerFireObserver::NewL
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
@@ -72,6 +93,23 @@
 
     }
 
+// -----------------------------------------------------------------------------
+// CTriggerFireObserver::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTriggerFireObserver* CTriggerFireObserver::NewL()
+    {
+    CTriggerFireObserver* self = new (ELeave) CTriggerFireObserver();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+
+
 // Destructor
 CTriggerFireObserver::~CTriggerFireObserver()
     { 
@@ -79,12 +117,24 @@
 	    Cancel(); 
 	    // Delete notifier object
 	    delete iNotifier;
-	    
-	    iWait=NULL;
-	       
+
+	    iPositioner.Close();
+	    iPosServer.Close();
+    }
+
 
+void CTriggerFireObserver::CurrentPositionL( TPositionInfo& aPositionInfo,
+                                             CActiveSchedulerWait* aWait )
+    {
+    iWait = aWait;
+    // Get last known position. The processing of the result
+    // is done in RunL method
+    iPositioner.NotifyPositionUpdate( aPositionInfo, iStatus );
+    // Set this active object active
+    SetActive();
     }
 
+
 void CTriggerFireObserver::TriggerFiredL( const TLbtTriggerFireInfo& aFireInfo )
 	{
 	    iTriggerFireCount++;