--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lbs/common/src/ctlbsclientrequestor.cpp Thu Jan 21 12:53:44 2010 +0000
@@ -0,0 +1,274 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+// INCLUDE FILES
+#include "ctlbsportedstepbase.h"
+#include "ctlbsclientrequestor.h"
+#include "mctlbsrequestobserver.h"
+
+// CONSTANTS
+
+// ================= MEMBER FUNCTIONS =======================
+
+// Two-phased constructor.
+CT_LbsClientRequestor* CT_LbsClientRequestor::NewL(
+ TUid aPsyUid,
+ MCT_LbsRequestObserver* aObserver,
+ const TDesC& aClientName,
+ CTestExecuteLogger& aLogger
+ )
+ {
+ CT_LbsClientRequestor* self = new (ELeave) CT_LbsClientRequestor(aObserver, aPsyUid);
+ CleanupStack::PushL(self);
+ self->ConstructL(aClientName, aLogger);
+ CleanupStack::Pop();
+ return self;
+ }
+
+// Destructor
+CT_LbsClientRequestor::~CT_LbsClientRequestor()
+ {
+ iObserver = NULL;
+ Cancel();
+ iPosServer.Close();
+ }
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CT_LbsClientRequestor::CT_LbsClientRequestor(
+ MCT_LbsRequestObserver* aObserver,
+ TUid aPsyUid)
+ : CActive(EPriorityStandard), iObserver(aObserver), iCompletionCode(KNoEvent),
+ iPsyUid(aPsyUid), iContinueEventRequesting(FALSE)
+ {
+ }
+
+// EPOC default constructor can leave.
+void CT_LbsClientRequestor::ConstructL(
+ const TDesC& aClientName,
+ CTestExecuteLogger& aLogger
+ )
+ {
+ iName = aClientName;
+ iLogger = aLogger;
+ User::LeaveIfError(iPosServer.Connect());
+ iModuleInfo = TPositionInfo();
+ CActiveScheduler::Add(this);
+ }
+
+// ---------------------------------------------------------
+// CRequester::CompletionTimeUTC
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+const TTime& CT_LbsClientRequestor::CompletionTimeUTC() const
+ {
+ return iCompletionTimeUTC;
+ }
+
+// ---------------------------------------------------------
+// CRequester::CompletionCode
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CT_LbsClientRequestor::CompletionCode() const
+ {
+ return iCompletionCode;
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::ResetCompletionCode
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::ResetCompletionCode()
+ {
+ iCompletionCode = KNoEvent;
+ }
+
+// ---------------------------------------------------------
+// CRequester::StartRequest
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::StartRequestL(TBool aDefaultPsy)
+ {
+ _LIT(KService, "SAAA");
+ if (aDefaultPsy == FALSE)
+ {
+ User::LeaveIfError(iPositioner.Open(iPosServer, iPsyUid));
+ }
+ else
+ {
+ User::LeaveIfError(iPositioner.Open(iPosServer));
+ }
+
+
+ iPositioner.SetRequestor(CRequestor::ERequestorService,
+ CRequestor::EFormatApplication,
+ KService);
+
+ iPositioner.NotifyPositionUpdate(iModuleInfo, iStatus);
+ SetActive();
+ }
+
+// ---------------------------------------------------------
+// CRequester::RunL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::RunL()
+ {
+ iCompletionCode = iStatus.Int();
+ RequestComplete();
+ if (iContinueEventRequesting)
+ {
+ iContinueEventRequesting = FALSE;
+ RequestModuleStatusEvent();
+ }
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::DoCancel
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::DoCancel()
+ {
+ iPosServer.CancelRequest(EPositionServerNotifyModuleStatusEvent/*EPositionServerGetModuleStatus*/);
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::RequestComplete
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::RequestComplete()
+ {
+ if (iObserver)
+ {
+ TRAPD(err, iObserver->RequestCompleteL());
+ if(KErrNone != err)
+ {
+ _LIT(KClientRequestor, "Error in LbsClientRequestor: %d");
+ ERR_PRINTF2(KClientRequestor, err);
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::RequestModuleStatusEvent
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::RequestModuleStatusEvent()
+ {
+ istatusEvent.SetRequestedEvents(TPositionModuleStatusEvent::EEventAll);
+ iPosServer.NotifyModuleStatusEvent(istatusEvent, iStatus, iPsyUid);
+ if (!IsActive())
+ {
+ SetActive();
+ }
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::CancelModuleStatusEvent
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::CancelModuleStatusEvent()
+ {
+ iPosServer.CancelRequest(EPositionServerGetModuleStatus);
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::ReadModuleStatusEvent
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CT_LbsClientRequestor::ReadModuleStatusEvent()
+ {
+ TPositionModuleStatus modstatus = TPositionModuleStatus();
+ istatusEvent.GetModuleStatus(modstatus);
+ return modstatus.DeviceStatus();
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::ReadModuleStatusClientApi
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CT_LbsClientRequestor::ReadModuleStatusClientApi(TPositionModuleId aModuleId)
+ {
+ //Module status from Client API
+ TPositionModuleStatus moduleStatus = TPositionModuleStatus();
+ iPosServer.GetModuleStatus(moduleStatus, aModuleId);
+ return moduleStatus.DeviceStatus();
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::ReadModuleStatusModulesApi
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TBool CT_LbsClientRequestor::ReadModuleStatusModulesApi(CPosModules* aDb, TPositionModuleId aModuleId)
+ {
+ //Module info from Modules API
+ TPositionModuleInfo moduleInfo;
+ CPosModuleIdList* prioList = aDb->ModuleIdListLC();
+ TInt modnr = prioList->Find(aModuleId);
+ aDb->GetModuleInfoL(prioList->At(modnr), moduleInfo);
+ CleanupStack::PopAndDestroy(prioList);
+ return moduleInfo.IsAvailable();
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::ContinueRequesting
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::ContinueRequesting()
+ {
+ iContinueEventRequesting = TRUE;;
+ }
+
+// ---------------------------------------------------------
+// CT_LbsClientRequestor::ClosePositioner
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientRequestor::ClosePositioner()
+ {
+ iPositioner.Close();
+ }
+
+// End of File