networkprotocolmodules/suplproxyprotocolmodule/suplproxyprotocolmodule/src/suplproxymodule.cpp
changeset 19 bdd4df282e3e
parent 0 9cfd9a3ee49c
child 49 5f20f71a57a3
child 57 3267d9ea3e98
--- a/networkprotocolmodules/suplproxyprotocolmodule/suplproxyprotocolmodule/src/suplproxymodule.cpp	Tue Feb 02 01:50:39 2010 +0200
+++ b/networkprotocolmodules/suplproxyprotocolmodule/suplproxyprotocolmodule/src/suplproxymodule.cpp	Fri Apr 16 16:28:16 2010 +0300
@@ -549,6 +549,15 @@
         const TLbsNetPosRequestOptionsBase& aOptions)
     {
     LBSLOG(ELogP1, "CSuplProxyProtocol::RequestNetworkLocation() Begin\n");
+	
+	if(!iSuplTiApiWrapper)
+    	{
+		//Error, TI Plugin not available.  Complete the request with error
+		LBSLOG_ERR(ELogP1, "Error, TI Plugin not available, not able to complete request");
+		LBSLOG2(ELogP1, "-->ProcessSessionComplete(0x%x)\n", aSessionId.SessionNum());
+		iObserver.ProcessSessionComplete(aSessionId, KErrNotReady);
+		return;
+    	}
 
 	const TLbsNetPosRequestOptions reqParams =
 			static_cast<const TLbsNetPosRequestOptions&> (aOptions);
@@ -642,6 +651,13 @@
         LBSLOG2(ELogP1, "-->ProcessSessionComplete(0x%x)\n", aSessionId.SessionNum());
         iObserver.ProcessSessionComplete(aSessionId, KErrNone);
         }
+	 else if(!iSuplTiApiWrapper)
+		{
+		//Error, TI Plugin not available.  Complete the request with error
+		LBSLOG_ERR(ELogP1, "Error, TI Plugin not available, not able to complete request");
+		LBSLOG2(ELogP1, "-->ProcessSessionComplete(0x%x)\n", aSessionId.SessionNum());
+		iObserver.ProcessSessionComplete(aSessionId, KErrNotReady);
+		}
     else
         {
 
@@ -857,6 +873,7 @@
 void CSuplProxyProtocol::ConstructL()
 	{
 	LBSLOG(ELogP1, "CSuplProxyProtocol::ConstructL() Begin\n");
+	TInt err = KErrNone;
 
     CRepository* cenRep = CRepository::NewLC(KLbsSuplProxyProtocolModuleCenRepUid);
 	TInt refLocSourceId(KErrNone);
@@ -876,14 +893,18 @@
 
     LBSLOG(ELogP9, "->A   CLbsSuplTiApi::NewL() SUPL-FW\n");
     LBSLOG2(ELogP9, " > Uid = 0x%08X\n", suplTiPluginImplUid);
-    iSuplTiApiWrapper = CLbsSuplTiApi::NewL(*this, TUid::Uid(suplTiPluginImplUid));
+    TRAP(err, iSuplTiApiWrapper = CLbsSuplTiApi::NewL(*this, TUid::Uid(suplTiPluginImplUid)));
+    if(err != KErrNone)
+    	{
+		LBSLOG_ERR2(ELogP1, "Failed to load the Terminal Initiation API Plugin (error: %d)", err);
+    	}
 
 	CLbsAdmin* admin = CLbsAdmin::NewL();
 	CleanupStack::PushL(admin);
 		
 	// Read admin setting for maximum number of external locate requests
 	TUint maxExternalLocateRequests = KLbsDefaultMaximumExternalLocateRequests;
-	TInt err = admin->Get(KLbsSettingMaximumExternalLocateRequests, maxExternalLocateRequests);
+	err = admin->Get(KLbsSettingMaximumExternalLocateRequests, maxExternalLocateRequests);
 	if (err != KErrNone)
 		{
 		LBSLOG_ERR2(ELogP4, "Failed to get KLbsSettingMaximumExternalLocateRequests (err %d)", err);
@@ -1523,7 +1544,7 @@
         const TLbsNetSessionId& aSessionId)
     {
 	LBSLOG(ELogP1, "CSuplProxyProtocol::RequestComplete() Begin\n");
-
+	
     TInt index = iLbsNetSessions.Find(aSessionId,
             CLbsNetSession::IsSessionMatch);