locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AsynOperationAO.cpp
branchRCL_3
changeset 44 2b4ea9893b66
parent 0 667063e416a2
child 45 6b6920c56e2f
--- a/locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AsynOperationAO.cpp	Thu Aug 19 10:20:18 2010 +0300
+++ b/locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AsynOperationAO.cpp	Tue Aug 31 15:37:04 2010 +0300
@@ -23,7 +23,7 @@
 #include "AsynOperationAO.h"
 
 
-
+_LIT(KRequestor,"LBT test app");
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -40,6 +40,12 @@
         CActiveScheduler::Add(this);
     }
 
+
+CTriggerFireObserver::CTriggerFireObserver( ):CTimer( CTimer::EPriorityStandard )
+    {
+    CActiveScheduler::Add(this);
+    }
+
 // -----------------------------------------------------------------------------
 // CTriggerFireObserver::ConstructL
 // Symbian 2nd phase constructor can leave.
@@ -55,6 +61,21 @@
     }
 
 // -----------------------------------------------------------------------------
+// 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,20 @@
 
     }
 
+// -----------------------------------------------------------------------------
+// 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()
     { 
@@ -81,10 +116,23 @@
 	    delete iNotifier;
 	    delete iWait;
 	   // 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++;