webservices/wsconnection/src/senserviceconnectionimpl.cpp
changeset 28 0802db42e4e9
parent 1 272b002df977
child 29 5743aa3a72c3
equal deleted inserted replaced
2:150a13bad6af 28:0802db42e4e9
    43 #include "SenSoapEnvelope2.h"
    43 #include "SenSoapEnvelope2.h"
    44 #include "SenParser.h"
    44 #include "SenParser.h"
    45 
    45 
    46 #include "senservicemanagerdefines.h"
    46 #include "senservicemanagerdefines.h"
    47 #include "SenBaseAttribute.h"
    47 #include "SenBaseAttribute.h"
    48 #include <xmlengchunkcontainer.h>
    48 #include <xml/dom/xmlengchunkcontainer.h>
    49 #include <xmlengfilecontainer.h>
    49 #include <xml/dom/xmlengfilecontainer.h>
    50 #include <xmlengserializer.h>
    50 #include <xml/dom/xmlengserializer.h>
    51 #include "senconnagentserver.h"
    51 #include "senconnagentserver.h"
    52 #include "senxmldebug.h"
    52 #include "senxmldebug.h"
    53 #include "senatomentry.h"
    53 #include "senatomentry.h"
    54 
    54 
    55 
    55 
   190     return pNew;
   190     return pNew;
   191     }
   191     }
   192 
   192 
   193 void CSenServiceConnectionImpl::ConstructL(MSenServiceDescription& aSD)
   193 void CSenServiceConnectionImpl::ConstructL(MSenServiceDescription& aSD)
   194     {
   194     {
   195 
   195 	TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::ConstructL(aSD)");
   196     CSenElement& sdAsElement = ((CSenXmlServiceDescription&)aSD).AsElement();
   196     CSenElement& sdAsElement = ((CSenXmlServiceDescription&)aSD).AsElement();
   197 
   197 
   198     // Check if this is an internal service connection:
   198     // Check if this is an internal service connection:
   199     const TDesC8* pInternal = sdAsElement.AttrValue( KSenAttrInternalSC );
   199     const TDesC8* pInternal = sdAsElement.AttrValue( KSenAttrInternalSC );
   200     if( pInternal )
   200     if( pInternal )
   245 #endif //_SENDEBUG           
   245 #endif //_SENDEBUG           
   246 */
   246 */
   247 #ifndef RD_SEN_SC_PROXY_ENABLED_BY_DEFAULT
   247 #ifndef RD_SEN_SC_PROXY_ENABLED_BY_DEFAULT
   248     ConnectL(); 
   248     ConnectL(); 
   249 // #else // ConnectL occurs on  "proxy" / factory  -level
   249 // #else // ConnectL occurs on  "proxy" / factory  -level
   250 #endif    
   250 #endif
       
   251 	TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::ConstructL(aSD) Completed");
   251     }
   252     }
   252 
   253 
   253 
   254 
   254 void CSenServiceConnectionImpl::ConnectL()
   255 void CSenServiceConnectionImpl::ConnectL()
   255     {
   256     {
   341         }
   342         }
   342     }
   343     }
   343 
   344 
   344 void CSenServiceConnectionImpl::SetConsumer( MSenServiceConsumer& aConsumer, MSenExtendedConsumerInterface* apExtConsumer )
   345 void CSenServiceConnectionImpl::SetConsumer( MSenServiceConsumer& aConsumer, MSenExtendedConsumerInterface* apExtConsumer )
   345     {
   346     {
       
   347     TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::SetConsumer");
   346     iObserver = &aConsumer;
   348     iObserver = &aConsumer;
   347     ipExtendedConsumerInterface = apExtConsumer;
   349     ipExtendedConsumerInterface = apExtConsumer;
   348     }
   350     }
   349    
   351    
   350 void CSenServiceConnectionImpl::Consumer( MSenServiceConsumer*& aConsumer, MSenExtendedConsumerInterface*& apExtConsumer )
   352 void CSenServiceConnectionImpl::Consumer( MSenServiceConsumer*& aConsumer, MSenExtendedConsumerInterface*& apExtConsumer )
   351     {
   353     {
       
   354     TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::Consumer");
   352     aConsumer = iObserver;
   355     aConsumer = iObserver;
   353     apExtConsumer = ipExtendedConsumerInterface;
   356     apExtConsumer = ipExtendedConsumerInterface;
   354     }   
   357     }   
   355 
   358 
   356 TPtrC8 CSenServiceConnectionImpl::InitDescription()
   359 TPtrC8 CSenServiceConnectionImpl::InitDescription()
   449 
   452 
   450     if(iChunkMap)
   453     if(iChunkMap)
   451         {
   454         {
   452         iChunkMap->Reset();
   455         iChunkMap->Reset();
   453         delete iChunkMap;
   456         delete iChunkMap;
       
   457         iChunkMap = NULL;
   454         }
   458         }
   455 
   459 
   456     delete iInBuf;
   460     delete iInBuf;
   457     delete iOutBuf;
   461     delete iOutBuf;
   458     delete iFragment;
   462     delete iFragment;
   476     }
   480     }
   477 
   481 
   478 
   482 
   479 TPtrC CSenServiceConnectionImpl::SessionID()
   483 TPtrC CSenServiceConnectionImpl::SessionID()
   480     {
   484     {
       
   485     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::SessionID()")));
   481     if(ipSessionId)
   486     if(ipSessionId)
   482         {
   487         {
   483         return *ipSessionId;
   488         return *ipSessionId;
   484         }
   489         }
   485     else
   490     else
   642     }
   647     }
   643 
   648 
   644 TInt CSenServiceConnectionImpl::ResponseFromChunk(CSenChunk& aClientOp,
   649 TInt CSenServiceConnectionImpl::ResponseFromChunk(CSenChunk& aClientOp,
   645                                                   HBufC8*& aResponseTo)
   650                                                   HBufC8*& aResponseTo)
   646     {
   651     {
       
   652     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::ResponseFromChunk()")));
   647     TInt leaveCode(KErrNone); // handle OOM case:
   653     TInt leaveCode(KErrNone); // handle OOM case:
   648     // Read response message, SOAP fault OR error
   654     // Read response message, SOAP fault OR error
   649     TPtrC8 response;
   655     TPtrC8 response;
   650     TInt retVal = aClientOp.DescFromChunk(response); // if handle is closed, this will panic.
   656     TInt retVal = aClientOp.DescFromChunk(response); // if handle is closed, this will panic.
   651     if(retVal==KErrNone)
   657     if(retVal==KErrNone)
   657     if(leaveCode!=KErrNone)
   663     if(leaveCode!=KErrNone)
   658         {
   664         {
   659         // OOM occured
   665         // OOM occured
   660         retVal = leaveCode;
   666         retVal = leaveCode;
   661         }
   667         }
   662         
   668     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::ResponseFromChunk() Completed")));
   663     return retVal;
   669     return retVal;
   664     }
   670     }
   665 
   671 
   666 TInt CSenServiceConnectionImpl::SubmitL(const TDesC8& aRequest,
   672 TInt CSenServiceConnectionImpl::SubmitL(const TDesC8& aRequest,
   667                                         HBufC8*& aResponseTo )
   673                                         HBufC8*& aResponseTo )
   873         TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::CheckConnection - KErrServerBusy (not enough message slots)")));
   879         TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::CheckConnection - KErrServerBusy (not enough message slots)")));
   874         retVal = KErrServerBusy;
   880         retVal = KErrServerBusy;
   875         }
   881         }
   876     else if (!IsActive())
   882     else if (!IsActive())
   877         {
   883         {
   878         SetActive();
   884        	SetActive();
   879         iStatus = KRequestPending;
   885         iStatus = KRequestPending;
   880         }
   886         }
   881 	TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::CheckConnection Completed")));
   887 	TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::CheckConnection Completed")));
   882     return retVal;
   888     return retVal;
   883     }
   889     }
   914         TInt* pTxnId = new (ELeave) TInt(++iVirtualTransactionCounter);
   920         TInt* pTxnId = new (ELeave) TInt(++iVirtualTransactionCounter);
   915         CleanupStack::PushL(pTxnId);
   921         CleanupStack::PushL(pTxnId);
   916 
   922 
   917         TInt appendRetVal(KErrNone);
   923         TInt appendRetVal(KErrNone);
   918         appendRetVal = ChunkMapL().Append( pTxnId, apClientOp );
   924         appendRetVal = ChunkMapL().Append( pTxnId, apClientOp );
   919         TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KNormalLogLevel , _L8("- ChunkMapL().Append(%d, %d) returned: %d"), *pTxnId, apClientOp->Chunk().Handle(), appendRetVal));
   925         TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("- ChunkMapL().Append(%d, %d) returned: %d"), *pTxnId, apClientOp->Chunk().Handle(), appendRetVal));
   920         if( appendRetVal == KErrNone )
   926         if( appendRetVal == KErrNone )
   921             {
   927             {
   922             TMessage msg;
   928             TMessage msg;
   923             msg.iSenConnectionChunk = apClientOp;
   929             msg.iSenConnectionChunk = apClientOp;
   924             msg.iSenAsyncOperation = pSenAO;
   930             msg.iSenAsyncOperation = pSenAO;
  1299         if(leaveCode)
  1305         if(leaveCode)
  1300             {
  1306             {
  1301             TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("MSenServiceConsumer::HandleErrorL leaved: %d"), leaveCode ));
  1307             TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("MSenServiceConsumer::HandleErrorL leaved: %d"), leaveCode ));
  1302             }
  1308             }
  1303         }
  1309         }
  1304 		        
  1310 		TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::InitializeL() Completed")));
  1305     }
  1311     }
  1306 
  1312 
  1307 TPtrC CSenServiceConnectionImpl::NextChunkName()
  1313 TPtrC CSenServiceConnectionImpl::NextChunkName()
  1308     {
  1314     {
       
  1315     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::NextChunkName()")));
  1309     if(ipChunkName)
  1316     if(ipChunkName)
  1310         {
  1317         {
  1311         iChunkNameNumber++;
  1318         iChunkNameNumber++;
  1312         TPtr chunkname = ipChunkName->Des();
  1319         TPtr chunkname = ipChunkName->Des();
  1313         chunkname.Zero();
  1320         chunkname.Zero();
  1330         TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L("CSenServiceConnectionImpl::NextChunkName(): %S"), &chunkname));
  1337         TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L("CSenServiceConnectionImpl::NextChunkName(): %S"), &chunkname));
  1331         return chunkname.Left(KMaxName); // max length of TName
  1338         return chunkname.Left(KMaxName); // max length of TName
  1332         }
  1339         }
  1333     else
  1340     else
  1334         {
  1341         {
       
  1342         TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::NextChunkName() returns KNullDesC()")));
  1335         return KNullDesC();
  1343         return KNullDesC();
  1336         }  
  1344         }  
  1337     }
  1345     }
  1338 void CSenServiceConnectionImpl::RunL()
  1346 void CSenServiceConnectionImpl::RunL()
  1339     {
  1347     {
  1932                 DeliverResponseL(aStatus);
  1940                 DeliverResponseL(aStatus);
  1933                 }
  1941                 }
  1934             break ;
  1942             break ;
  1935             }
  1943             }
  1936         }
  1944         }
       
  1945     TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::HandleMessageFromChildAOL Completed");
  1937     }
  1946     }
  1938 
  1947 
  1939 // Helper function, which delivers response to Service Consumer 
  1948 // Helper function, which delivers response to Service Consumer 
  1940 void CSenServiceConnectionImpl::DeliverResponseL(const TInt aErrorCode, CSenChunk* apOperation)
  1949 void CSenServiceConnectionImpl::DeliverResponseL(const TInt aErrorCode, CSenChunk* apOperation)
  1941     {
  1950     {
  1974 
  1983 
  1975         
  1984         
  1976     if( statusCode == KErrNone )
  1985     if( statusCode == KErrNone )
  1977         {
  1986         {
  1978         // STANDARD, "OK" RESPONSE
  1987         // STANDARD, "OK" RESPONSE
  1979         TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KNormalLogLevel , _L8("- response, (%d bytes):"), response.Length()));
  1988         TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("- response, (%d bytes):"), response.Length()));
  1980         TLSLOG_ALL(KSenServiceConnectionLogChannelBase+iConnectionID, KMaxLogLevel ,(response));
  1989         TLSLOG_ALL(KSenServiceConnectionLogChannelBase+iConnectionID, KMaxLogLevel ,(response));
  1981         TRAPD( err, iObserver->HandleMessageL( response ); )
  1990         TRAPD( err, iObserver->HandleMessageL( response ); )
  1982         if(err)
  1991         if(err)
  1983             {
  1992             {
  1984             TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("DeliverResponseL: HandleMessageL() leaved: %d"), err));
  1993             TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("DeliverResponseL: HandleMessageL() leaved: %d"), err));
  1989         if( statusCode == KErrSenSoapFault)
  1998         if( statusCode == KErrSenSoapFault)
  1990             {
  1999             {
  1991             TInt error = statusCode;   
  2000             TInt error = statusCode;   
  1992                 
  2001                 
  1993             // SOAP FAULT
  2002             // SOAP FAULT
  1994             TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KNormalLogLevel , _L8("- SOAP fault (%d bytes):"), response.Length()));
  2003             TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("- SOAP fault (%d bytes):"), response.Length()));
  1995             TLSLOG_ALL(KSenServiceConnectionLogChannelBase+iConnectionID, KMaxLogLevel ,(response));
  2004             TLSLOG_ALL(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,(response));
  1996 
  2005 
  1997             if ( error == KErrSenSoapFault && !iInitialized ) // China DC
  2006             if ( error == KErrSenSoapFault && !iInitialized ) // China DC
  1998                 {
  2007                 {
  1999                 TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::DeliverResponseL:");
  2008                 TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::DeliverResponseL:");
  2000                 TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"- Since the SC is NOT ready, pass KErrSenAuthenticationFault to HandleErrorL instead of KErrSenSoapFault");
  2009                 TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"- Since the SC is NOT ready, pass KErrSenAuthenticationFault to HandleErrorL instead of KErrSenSoapFault");
  2022         {
  2031         {
  2023         iResponse = NULL;
  2032         iResponse = NULL;
  2024         CleanupStack::PopAndDestroy( pMessage );
  2033         CleanupStack::PopAndDestroy( pMessage );
  2025         }
  2034         }
  2026     iTransactionIdKnown = EFalse;
  2035     iTransactionIdKnown = EFalse;
       
  2036     TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::DeliverResponseL Completed");
  2027     }
  2037     }
  2028 
  2038 
  2029 void CSenServiceConnectionImpl::DoCancel()
  2039 void CSenServiceConnectionImpl::DoCancel()
  2030     {
  2040     {
  2031     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::DoCancel")));
  2041     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::DoCancel")));
  2288     }
  2298     }
  2289 
  2299 
  2290 
  2300 
  2291 const TDesC8& CSenServiceConnectionImpl::LocalName() const
  2301 const TDesC8& CSenServiceConnectionImpl::LocalName() const
  2292     {
  2302     {
       
  2303     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::LocalName()")));
  2293     if(iFragment)
  2304     if(iFragment)
  2294         return iFragment->LocalName();
  2305         return iFragment->LocalName();
  2295     else
  2306     else
  2296         return KNullDesC8;
  2307         return KNullDesC8;
  2297     }
  2308     }
  2298 
  2309 
  2299 const TDesC8& CSenServiceConnectionImpl::NsUri() const
  2310 const TDesC8& CSenServiceConnectionImpl::NsUri() const
  2300     {
  2311     {
       
  2312     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::NsUri()")));
  2301     if(iFragment)
  2313     if(iFragment)
  2302         return iFragment->NsUri();
  2314         return iFragment->NsUri();
  2303     else
  2315     else
  2304         return KNullDesC8;
  2316         return KNullDesC8;
  2305     }
  2317     }
  2306 
  2318 
  2307 const TDesC8& CSenServiceConnectionImpl::NsPrefix() const
  2319 const TDesC8& CSenServiceConnectionImpl::NsPrefix() const
  2308     {
  2320     {
       
  2321     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::NsPrefix()")));
  2309     if(iFragment)
  2322     if(iFragment)
  2310         return iFragment->NsPrefix();
  2323         return iFragment->NsPrefix();
  2311     else
  2324     else
  2312         return KNullDesC8;
  2325         return KNullDesC8;
  2313     }
  2326     }
  2314 
  2327 
  2315 void CSenServiceConnectionImpl::WriteAsXMLToL(RWriteStream& aWriteStream)
  2328 void CSenServiceConnectionImpl::WriteAsXMLToL(RWriteStream& aWriteStream)
  2316     {
  2329     {
       
  2330     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::WriteAsXMLToL()")));
  2317     if(iFragment)
  2331     if(iFragment)
  2318         {
  2332         {
  2319         iFragment->WriteAsXMLToL(aWriteStream);
  2333         iFragment->WriteAsXMLToL(aWriteStream);
  2320         }
  2334         }
  2321     }
  2335     }
  2322 
  2336 
  2323 HBufC* CSenServiceConnectionImpl::AsXmlUnicodeL()
  2337 HBufC* CSenServiceConnectionImpl::AsXmlUnicodeL()
  2324     {
  2338     {
       
  2339     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::AsXmlUnicodeL()")));
  2325     if(iFragment)
  2340     if(iFragment)
  2326         {
  2341         {
  2327         return iFragment->AsXmlUnicodeL();
  2342         return iFragment->AsXmlUnicodeL();
  2328         }
  2343         }
  2329     else
  2344     else
  2332         }
  2347         }
  2333     }
  2348     }
  2334 
  2349 
  2335 HBufC8* CSenServiceConnectionImpl::AsXmlL()
  2350 HBufC8* CSenServiceConnectionImpl::AsXmlL()
  2336     {
  2351     {
       
  2352     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::AsXmlL()")));
  2337     if(iFragment)
  2353     if(iFragment)
  2338         {
  2354         {
  2339         return iFragment->AsXmlL();
  2355         return iFragment->AsXmlL();
  2340         }
  2356         }
  2341     else
  2357     else
  2382     return retVal;    
  2398     return retVal;    
  2383     }
  2399     }
  2384 
  2400 
  2385 TBool CSenServiceConnectionImpl::ConsistsOfL(MSenFragment& aCandidate)
  2401 TBool CSenServiceConnectionImpl::ConsistsOfL(MSenFragment& aCandidate)
  2386     {
  2402     {
       
  2403     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::ConsistsOfL()")));
  2387     if (iFragment)
  2404     if (iFragment)
  2388         {
  2405         {
  2389         return iFragment->ConsistsOfL(aCandidate);
  2406         return iFragment->ConsistsOfL(aCandidate);
  2390         }
  2407         }
  2391     else
  2408     else
  2422     return retVal;
  2439     return retVal;
  2423     }
  2440     }
  2424 
  2441 
  2425 TInt CSenServiceConnectionImpl::TxnId()
  2442 TInt CSenServiceConnectionImpl::TxnId()
  2426     {
  2443     {
       
  2444     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::TxnId()")));
  2427     if( iTransactionIdKnown )
  2445     if( iTransactionIdKnown )
  2428         {
  2446         {
  2429         if( iTxnId>KErrNone )
  2447         if( iTxnId>KErrNone )
  2430             {
  2448             {
  2431             if( iDispatcherEnabled )
  2449             if( iDispatcherEnabled )
  2479     return retVal;
  2497     return retVal;
  2480     }
  2498     }
  2481     
  2499     
  2482 TInt CSenServiceConnectionImpl::CancelTransaction(TInt aTransactionID)
  2500 TInt CSenServiceConnectionImpl::CancelTransaction(TInt aTransactionID)
  2483     {
  2501     {
       
  2502     TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::CancelTransaction");
  2484     TInt retVal(0);
  2503     TInt retVal(0);
  2485     if ( iDispatcherEnabled ) // DISPATCHER IS ENABLED
  2504     if ( iDispatcherEnabled ) // DISPATCHER IS ENABLED
  2486         {
  2505         {
  2487         TInt actualTransID = ipSenServiceDispatcher->GetActualTransactionID(&aTransactionID);
  2506         TInt actualTransID = ipSenServiceDispatcher->GetActualTransactionID(&aTransactionID);
  2488         
  2507         
  2509             }
  2528             }
  2510     	ipSenServiceDispatcher->RemoveFromQueue(aTransactionID);
  2529     	ipSenServiceDispatcher->RemoveFromQueue(aTransactionID);
  2511     	TRAP(retVal, DeliverResponseL(KErrSenCancelled,NULL));
  2530     	TRAP(retVal, DeliverResponseL(KErrSenCancelled,NULL));
  2512     	if( retVal != KErrNone)
  2531     	if( retVal != KErrNone)
  2513     		{
  2532     		{
       
  2533     		TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("CSenServiceConnectionImpl::CancelTransaction returns [%d]" ), retVal ));
  2514     		return retVal;
  2534     		return retVal;
  2515     		}
  2535     		}
  2516     	}  
  2536     	}  
  2517         }
  2537         }
  2518     else // DISPATCHER IS DISABLED
  2538     else // DISPATCHER IS DISABLED
  2519         {
  2539         {
  2520         iConnection.CancelRequest(aTransactionID);
  2540         iConnection.CancelRequest(aTransactionID);
  2521         }
  2541         }
       
  2542     TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("CSenServiceConnectionImpl::CancelTransaction returns [%d]" ), KErrNone ));
  2522     return KErrNone;
  2543     return KErrNone;
  2523     }
  2544     }
  2524         
  2545         
  2525 TInt CSenServiceConnectionImpl::TransportPropertiesL(HBufC8*& aProperties)
  2546 TInt CSenServiceConnectionImpl::TransportPropertiesL(HBufC8*& aProperties)
  2526     {
  2547     {
  2552     return retVal;
  2573     return retVal;
  2553     }
  2574     }
  2554 
  2575 
  2555 RChunkMap& CSenServiceConnectionImpl::ChunkMapL()
  2576 RChunkMap& CSenServiceConnectionImpl::ChunkMapL()
  2556     {
  2577     {
       
  2578     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::ChunkMapL()")));
  2557     if(!iChunkMap)
  2579     if(!iChunkMap)
  2558         {
  2580         {
  2559         iChunkMap = new (ELeave) RChunkMap(ETrue, ETrue);
  2581         iChunkMap = new (ELeave) RChunkMap(ETrue, ETrue);
  2560         }
  2582         }
  2561     return *iChunkMap;
  2583     return *iChunkMap;
  2562     }
  2584     }
  2563     
  2585     
  2564 RPointerArray<CSenAsyncOperation>& CSenServiceConnectionImpl::AsyncOpsArrayL() //codescannerwarnings
  2586 RPointerArray<CSenAsyncOperation>& CSenServiceConnectionImpl::AsyncOpsArrayL() //codescannerwarnings
  2565     {
  2587     {
       
  2588     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::AsyncOpsArrayL()")));
  2566     if(!iAsyncOpsArray)
  2589     if(!iAsyncOpsArray)
  2567         {
  2590         {
  2568         iAsyncOpsArray = new (ELeave) RPointerArray<CSenAsyncOperation>;
  2591         iAsyncOpsArray = new (ELeave) RPointerArray<CSenAsyncOperation>;
  2569         }
  2592         }
  2570     return *iAsyncOpsArray;
  2593     return *iAsyncOpsArray;
  2831 
  2854 
  2832 TInt CSenServiceConnectionImpl::AssignPropertiesToChunkL(CSenChunk& aChunk,
  2855 TInt CSenServiceConnectionImpl::AssignPropertiesToChunkL(CSenChunk& aChunk,
  2833                                                         CSenSoapEnvelope& aMessage,
  2856                                                         CSenSoapEnvelope& aMessage,
  2834                                                         const TDesC8& aProperties)	//codescannerwarnings
  2857                                                         const TDesC8& aProperties)	//codescannerwarnings
  2835     {
  2858     {
       
  2859     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::AssignPropertiesToChunkL()")));
  2836     TInt retVal(KErrNone);
  2860     TInt retVal(KErrNone);
  2837     
  2861     
  2838     if ( aMessage.SoapAction2().Length() > 0 )
  2862     if ( aMessage.SoapAction2().Length() > 0 )
  2839         {
  2863         {
  2840         CSenTransportProperties* pProps = CSenTransportProperties::NewLC();
  2864         CSenTransportProperties* pProps = CSenTransportProperties::NewLC();
  2867             {
  2891             {
  2868             retVal = aChunk.DescToChunk(*pSoapMsg);
  2892             retVal = aChunk.DescToChunk(*pSoapMsg);
  2869             }
  2893             }
  2870         delete pSoapMsg;
  2894         delete pSoapMsg;
  2871         }    
  2895         }    
  2872     
  2896 		TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("CSenServiceConnectionImpl::AssignPropertiesToChunkL returns [%d]" ), retVal ));
  2873     return retVal;
  2897     return retVal;
  2874     }
  2898     }
  2875     
  2899     
  2876 TInt CSenServiceConnectionImpl::AssignMessageToChunkL( CSenChunk& aChunk,
  2900 TInt CSenServiceConnectionImpl::AssignMessageToChunkL( CSenChunk& aChunk,
  2877                                                       MSenMessage& aMessage ) //codescannerwarnings
  2901                                                       MSenMessage& aMessage ) //codescannerwarnings
  2996         
  3020         
  2997 
  3021 
  2998     CleanupStack::PopAndDestroy(pSerializer);
  3022     CleanupStack::PopAndDestroy(pSerializer);
  2999     CleanupStack::PopAndDestroy(&buffer);
  3023     CleanupStack::PopAndDestroy(&buffer);
  3000     CleanupStack::PopAndDestroy(pPropsAsXml);
  3024     CleanupStack::PopAndDestroy(pPropsAsXml);
  3001     
  3025     TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("CSenServiceConnectionImpl::AssignMessageToChunkL returns [%d]" ), retVal ));
  3002     return retVal;
  3026     return retVal;
  3003     }
  3027     }
  3004     
  3028     
  3005 // THIS IS THE SECOND, __MUCH IMPROVED__ VARIANT, WHICH SUPPORTS BOTH CHUNK AND FILE ATTACHEMENTS,
  3029 // THIS IS THE SECOND, __MUCH IMPROVED__ VARIANT, WHICH SUPPORTS BOTH CHUNK AND FILE ATTACHEMENTS,
  3006 // plus multiple BLOBs PER ONE MESSAGE AND multiple simultaneous transfers
  3030 // plus multiple BLOBs PER ONE MESSAGE AND multiple simultaneous transfers
  3007 TInt CSenServiceConnectionImpl::MoveBinaryContainersToServer( CSenConnectionChunk& aOperation, RArray<TXmlEngDataContainer>& aList )
  3031 TInt CSenServiceConnectionImpl::MoveBinaryContainersToServer( CSenConnectionChunk& aOperation, RArray<TXmlEngDataContainer>& aList )
  3008     {
  3032     {
       
  3033     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::MoveBinaryContainersToServer()")));
  3009     TInt retVal(KErrNone);
  3034     TInt retVal(KErrNone);
  3010     
  3035     
  3011     TPtrC8 cid8;
  3036     TPtrC8 cid8;
  3012     TBuf8<100> cid(KNullDesC8);
  3037     TBuf8<100> cid(KNullDesC8);
  3013     TInt size;
  3038     TInt size;
  3098                     {
  3123                     {
  3099                     break;
  3124                     break;
  3100                     }
  3125                     }
  3101     			}
  3126     			}
  3102     		}
  3127     		}
  3103         }
  3128      }
       
  3129     TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("CSenServiceConnectionImpl::MoveBinaryContainersToServer returns [%d]" ), retVal ));
  3104     return retVal;
  3130     return retVal;
  3105     }
  3131     }
  3106     
  3132     
  3107 TInt CSenServiceConnectionImpl::MoveFileChunkHandleToServer(CSenConnectionChunk& aOperation)
  3133 TInt CSenServiceConnectionImpl::MoveFileChunkHandleToServer(CSenConnectionChunk& aOperation)
  3108     {
  3134     {
       
  3135     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::MoveFileChunkHandleToServer()")));
  3109     TInt retVal(KErrNone);
  3136     TInt retVal(KErrNone);
  3110     retVal = iConnection.SendFileHandle(aOperation,iSharedFileHandle);
  3137     retVal = iConnection.SendFileHandle(aOperation,iSharedFileHandle);
  3111     return retVal;
  3138     return retVal;
  3112     }
  3139     }
  3113     
  3140     
  3168       
  3195       
  3169     }
  3196     }
  3170     
  3197     
  3171 TInt CSenServiceConnectionImpl::SendL( MSenMessage& aMessage )
  3198 TInt CSenServiceConnectionImpl::SendL( MSenMessage& aMessage )
  3172     {
  3199     {
       
  3200     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::MoveFileChunkHandleToServer(aMessage)")));
  3173     if ( aMessage.IsSafeToCast( MSenMessage::ESoapEnvelope2 ) )
  3201     if ( aMessage.IsSafeToCast( MSenMessage::ESoapEnvelope2 ) )
  3174         {
  3202         {
  3175         CSenSoapEnvelope2& message = (CSenSoapEnvelope2&)aMessage;
  3203         CSenSoapEnvelope2& message = (CSenSoapEnvelope2&)aMessage;
  3176         return SendL(message);
  3204         return SendL(message);
  3177         }
  3205         }
  3267     }
  3295     }
  3268 
  3296 
  3269 TInt CSenServiceConnectionImpl::SubmitL( MSenMessage& aMessage,
  3297 TInt CSenServiceConnectionImpl::SubmitL( MSenMessage& aMessage,
  3270                                          CSenSoapEnvelope2*& aResponseTo )
  3298                                          CSenSoapEnvelope2*& aResponseTo )
  3271     {
  3299     {
       
  3300     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::SubmitL(aMessage, aResponseTo)")));
  3272     if ( aMessage.IsSafeToCast( MSenMessage::ESoapEnvelope2) )
  3301     if ( aMessage.IsSafeToCast( MSenMessage::ESoapEnvelope2) )
  3273         {
  3302         {
  3274         CSenSoapEnvelope2& message = (CSenSoapEnvelope2&)aMessage;
  3303         CSenSoapEnvelope2& message = (CSenSoapEnvelope2&)aMessage;
  3275         
  3304         
  3276         return SubmitL(message, aResponseTo);
  3305         return SubmitL(message, aResponseTo);
  3438     }
  3467     }
  3439 
  3468 
  3440 
  3469 
  3441 void CSenServiceConnectionImpl::MigrateToPrefferedCarrierL(TBool &aUserChoice)
  3470 void CSenServiceConnectionImpl::MigrateToPrefferedCarrierL(TBool &aUserChoice)
  3442     {
  3471     {
       
  3472     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::MigrateToPrefferedCarrierL()")));
  3443     if (iMobiltyObserver)
  3473     if (iMobiltyObserver)
  3444         {
  3474         {
  3445         User::LeaveIfError(iConnection.MigrateToPrefferedCarrierL(aUserChoice));    	
  3475         User::LeaveIfError(iConnection.MigrateToPrefferedCarrierL(aUserChoice));    	
  3446         }
  3476         }
  3447 	else
  3477 	else
  3448 	    {
  3478 	    {
  3449         User::Leave(KErrNotFound);
  3479         User::Leave(KErrNotFound);
  3450 	    }	 
  3480 	    }	 
       
  3481 	  TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::MigrateToPrefferedCarrierL() Completed")));
  3451     }
  3482     }
  3452 
  3483 
  3453 void CSenServiceConnectionImpl::NewCarrierAcceptedL(TBool &aUserChoice)
  3484 void CSenServiceConnectionImpl::NewCarrierAcceptedL(TBool &aUserChoice)
  3454     {
  3485     {
       
  3486     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::NewCarrierAcceptedL()")));
  3455     if (iMobiltyObserver)
  3487     if (iMobiltyObserver)
  3456         {
  3488         {
  3457         User::LeaveIfError(iConnection.NewCarrierAcceptedL(aUserChoice));    	
  3489         User::LeaveIfError(iConnection.NewCarrierAcceptedL(aUserChoice));    	
  3458         }
  3490         }
  3459 	else
  3491 	else
  3460 	    {
  3492 	    {
  3461         User::Leave(KErrNotFound);
  3493         User::Leave(KErrNotFound);
  3462 	    }	 
  3494 	    }
       
  3495 	  TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::NewCarrierAcceptedL() Completed")));  	 
  3463     }
  3496     }
  3464 #endif
  3497 #endif
  3465 
  3498 
  3466 
  3499 
  3467 TInt CSenServiceConnectionImpl::SendProgressToHostlet(TInt aTxnId,
  3500 TInt CSenServiceConnectionImpl::SendProgressToHostlet(TInt aTxnId,
  3468         TBool aIncoming, const TDesC8& aMessage, const TDesC8& aCid,
  3501         TBool aIncoming, const TDesC8& aMessage, const TDesC8& aCid,
  3469         TInt aProgress)
  3502         TInt aProgress)
  3470     {
  3503     {
       
  3504     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::SendProgressToHostlet()")));
  3471     TBool isSoap = (aMessage != KNullDesC8);
  3505     TBool isSoap = (aMessage != KNullDesC8);
  3472     TPtrC8 ptr;
  3506     TPtrC8 ptr;
  3473     if (isSoap)
  3507     if (isSoap)
  3474         {
  3508         {
  3475         ptr.Set(aMessage);
  3509         ptr.Set(aMessage);
  3498         {
  3532         {
  3499         TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("Fatal(!) -- CSenServiceConnectionImpl::DeliverStatus(): MSenServiceConsumer::SetStatus - leaves with %d"), leaveCode));
  3533         TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("Fatal(!) -- CSenServiceConnectionImpl::DeliverStatus(): MSenServiceConsumer::SetStatus - leaves with %d"), leaveCode));
  3500         TLSLOG_FORMAT(( iTlsLogStatusChannel, KSenServiceConnectionStatusLogLevel, _L("Fatal(!) -- CSenServiceConnectionImpl::DeliverStatus(): MSenServiceConsumer::SetStatus - leaves with %d"), leaveCode));
  3534         TLSLOG_FORMAT(( iTlsLogStatusChannel, KSenServiceConnectionStatusLogLevel, _L("Fatal(!) -- CSenServiceConnectionImpl::DeliverStatus(): MSenServiceConsumer::SetStatus - leaves with %d"), leaveCode));
  3501         leaveCode = KErrNone;
  3535         leaveCode = KErrNone;
  3502         }
  3536         }
       
  3537     TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::DeliverStatus() Completed")));
  3503     }
  3538     }
  3504     
  3539     
  3505     
  3540     
  3506  TInt CSenServiceConnectionImpl::IdentityProviderL( CSenIdentityProvider*& apIdentityProvider )
  3541  TInt CSenServiceConnectionImpl::IdentityProviderL( CSenIdentityProvider*& apIdentityProvider )
  3507     {
  3542     {
  3562 	TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::IdentityProviderL Completed");   	
  3597 	TLSLOG_L(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel ,"CSenServiceConnectionImpl::IdentityProviderL Completed");   	
  3563     return retVal;    
  3598     return retVal;    
  3564     }
  3599     }
  3565 
  3600 
  3566 TInt CSenServiceConnectionImpl::SearchIdentityProviderL( CSenIdentityProvider*& apIdentityProvider, const TDesC8& aProviderId )
  3601 TInt CSenServiceConnectionImpl::SearchIdentityProviderL( CSenIdentityProvider*& apIdentityProvider, const TDesC8& aProviderId )
  3567 		{
  3602 			{
       
  3603 			TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::SearchIdentityProviderL()")));
  3568 	    TInt retVal(KErrNone);
  3604 	    TInt retVal(KErrNone);
  3569 	    
  3605 	    
  3570 	    CSenChunk* pSenChunk = CSenChunk::NewLC(NextChunkName());
  3606 	    CSenChunk* pSenChunk = CSenChunk::NewLC(NextChunkName());
  3571 	    pSenChunk->SetLogger(Log());
  3607 	    pSenChunk->SetLogger(Log());
  3572 	    retVal = pSenChunk->CreateChunk();
  3608 	    retVal = pSenChunk->CreateChunk();
  3601 	                    }
  3637 	                    }
  3602 	                }
  3638 	                }
  3603 	            }
  3639 	            }
  3604 	        }
  3640 	        }
  3605 	    CleanupStack::PopAndDestroy(pSenChunk);
  3641 	    CleanupStack::PopAndDestroy(pSenChunk);
  3606 
  3642 			TLSLOG_FORMAT((KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel , _L8("CSenServiceConnectionImpl::SearchIdentityProviderL returns [%d]" ), retVal ));
  3607 	    return retVal; 
  3643 	    return retVal; 
  3608 		}
  3644 		}
  3609  
  3645  
  3610 TInt CSenServiceConnectionImpl::RegisterAuthenticationObserver()
  3646 TInt CSenServiceConnectionImpl::RegisterAuthenticationObserver()
  3611 	{
  3647 	{
  3652     return retVal;    
  3688     return retVal;    
  3653 }
  3689 }
  3654 
  3690 
  3655 TBool CSenServiceConnectionImpl::HasConnectionAgentCallbackInitialized()
  3691 TBool CSenServiceConnectionImpl::HasConnectionAgentCallbackInitialized()
  3656 	{
  3692 	{
       
  3693 	TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::HasConnectionAgentCallbackInitialized()")));
  3657 #ifdef __ENABLE_ALR__
  3694 #ifdef __ENABLE_ALR__
  3658 	if((ipAuthProvider || iFilesObserver || iMobiltyObserver || ipCoBrandingObserver) && iConnectionAgentCallbackInitialized)
  3695 	if((ipAuthProvider || iFilesObserver || iMobiltyObserver || ipCoBrandingObserver) && iConnectionAgentCallbackInitialized)
  3659 #else
  3696 #else
  3660 	if((ipAuthProvider || iFilesObserver || ipCoBrandingObserver) && iConnectionAgentCallbackInitialized)
  3697 	if((ipAuthProvider || iFilesObserver || ipCoBrandingObserver) && iConnectionAgentCallbackInitialized)
  3661 #endif //__ENABLE_ALR__
  3698 #endif //__ENABLE_ALR__
  3752 	}
  3789 	}
  3753 	
  3790 	
  3754 void CSenServiceConnectionImpl::DataTrafficDetails(TSenDataTrafficDetails& aDetails,
  3791 void CSenServiceConnectionImpl::DataTrafficDetails(TSenDataTrafficDetails& aDetails,
  3755 												   TSenDataTrafficOperations& aOperations) 
  3792 												   TSenDataTrafficOperations& aOperations) 
  3756 	{
  3793 	{
       
  3794 	TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::DataTrafficDetails()")));
  3757 	iConnection.DataTrafficDetails(aDetails, aOperations);
  3795 	iConnection.DataTrafficDetails(aDetails, aOperations);
  3758 	}	
  3796 	}	
  3759 	
  3797 	
  3760 
  3798 
  3761 TAny* CSenServiceConnectionImpl::InterfaceByUid( TUid aUID )
  3799 TAny* CSenServiceConnectionImpl::InterfaceByUid( TUid aUID )
  3780     return NULL;
  3818     return NULL;
  3781     }
  3819     }
  3782 
  3820 
  3783 TInt CSenServiceConnectionImpl::PendingTrasanctionsCount()
  3821 TInt CSenServiceConnectionImpl::PendingTrasanctionsCount()
  3784 	{
  3822 	{
       
  3823 	TLSLOG(KSenServiceConnectionLogChannelBase+iConnectionID, KMinLogLevel,(_L("CSenServiceConnectionImpl::PendingTrasanctionsCount()")));
  3785 	return iAsyncOpsArray->Count();
  3824 	return iAsyncOpsArray->Count();
  3786 	}										
  3825 	}										
  3787 
  3826 
  3788 CSenAsyncOperation* CSenAsyncOperation::NewL(CSenServiceConnectionImpl* aActive)
  3827 CSenAsyncOperation* CSenAsyncOperation::NewL(CSenServiceConnectionImpl* aActive)
  3789     {
  3828     {
  3820                            
  3859                            
  3821     iTxnIdBuffer.Set(reinterpret_cast<TUint8*>(&iTxnId),
  3860     iTxnIdBuffer.Set(reinterpret_cast<TUint8*>(&iTxnId),
  3822                      sizeof(TInt),
  3861                      sizeof(TInt),
  3823                      sizeof(TInt));
  3862                      sizeof(TInt));
  3824                      
  3863                      
  3825     SetActive();
  3864     if(!IsActive())
       
  3865     	SetActive();
  3826 	iStatus = KRequestPending;
  3866 	iStatus = KRequestPending;
  3827 #ifdef EKA2
  3867 #ifdef EKA2
  3828     iActive->AsyncOpsArrayL().AppendL(this);	//codescannerwarnings
  3868     iActive->AsyncOpsArrayL().AppendL(this);	//codescannerwarnings
  3829 #else
  3869 #else
  3830     User::LeaveIfError(iActive->AsyncOpsArrayL().Append(this));	//codescannerwarnings
  3870     User::LeaveIfError(iActive->AsyncOpsArrayL().Append(this));	//codescannerwarnings
  3916 	// Use secure id of the loading process instead of server process (ws client process secure id)
  3956 	// Use secure id of the loading process instead of server process (ws client process secure id)
  3917 	User::LeaveIfError(iConnectionStatusProperty.Attach(secureID, iConnectionID)); // secureid of the process will be category
  3957 	User::LeaveIfError(iConnectionStatusProperty.Attach(secureID, iConnectionID)); // secureid of the process will be category
  3918     CActiveScheduler::Add(this);
  3958     CActiveScheduler::Add(this);
  3919     // Initial subscription
  3959     // Initial subscription
  3920     iConnectionStatusProperty.Subscribe(iStatus);
  3960     iConnectionStatusProperty.Subscribe(iStatus);
  3921     SetActive();
  3961     if(!IsActive())
       
  3962     	SetActive();
  3922 	iStatus = KRequestPending;
  3963 	iStatus = KRequestPending;
  3923     }
  3964     }
  3924 
  3965 
  3925 CSenConnectionStatusObserver::~CSenConnectionStatusObserver()
  3966 CSenConnectionStatusObserver::~CSenConnectionStatusObserver()
  3926     {
  3967     {
  3940 void CSenConnectionStatusObserver::RunL()
  3981 void CSenConnectionStatusObserver::RunL()
  3941     {
  3982     {
  3942         
  3983         
  3943     TLSLOG_L( KSenServiceConnectionStatusLogChannelBase+iConnectionID, KSenServiceConnectionStatusLogLevel, "CSenConnectionStatusObserver::RunL" );
  3984     TLSLOG_L( KSenServiceConnectionStatusLogChannelBase+iConnectionID, KSenServiceConnectionStatusLogLevel, "CSenConnectionStatusObserver::RunL" );
  3944     iConnectionStatusProperty.Subscribe(iStatus);
  3985     iConnectionStatusProperty.Subscribe(iStatus);
  3945     SetActive();
  3986     if(!IsActive())
       
  3987     	SetActive();
  3946 	iStatus = KRequestPending;
  3988 	iStatus = KRequestPending;
  3947    
  3989    
  3948     TInt propertyValue(KErrNotFound);
  3990     TInt propertyValue(KErrNotFound);
  3949     TInt getPropertyCode = iConnectionStatusProperty.Get(propertyValue);
  3991     TInt getPropertyCode = iConnectionStatusProperty.Get(propertyValue);
  3950     if ( getPropertyCode == KErrNone)
  3992     if ( getPropertyCode == KErrNone)
  4018 	// Use KSenInterfaceUidFilesObserver extended consumer interface UID
  4060 	// Use KSenInterfaceUidFilesObserver extended consumer interface UID
  4019 	User::LeaveIfError(iFileProgressProperty.Attach(KSenInterfaceUidFilesObserver,  iConnectionID)); // KSenInterfaceUidFilesObserver UID will be category
  4061 	User::LeaveIfError(iFileProgressProperty.Attach(KSenInterfaceUidFilesObserver,  iConnectionID)); // KSenInterfaceUidFilesObserver UID will be category
  4020     CActiveScheduler::Add(this);
  4062     CActiveScheduler::Add(this);
  4021     // Initial subscription
  4063     // Initial subscription
  4022     iFileProgressProperty.Subscribe(iStatus);
  4064     iFileProgressProperty.Subscribe(iStatus);
  4023     SetActive();
  4065     if(!IsActive())
       
  4066     	SetActive();
  4024     iStatus = KRequestPending;
  4067     iStatus = KRequestPending;
  4025     }
  4068     }
  4026 
  4069 
  4027 CSenFileProgressObserver::~CSenFileProgressObserver()
  4070 CSenFileProgressObserver::~CSenFileProgressObserver()
  4028     {
  4071     {
  4040 
  4083 
  4041 void CSenFileProgressObserver::RunL()
  4084 void CSenFileProgressObserver::RunL()
  4042     {
  4085     {
  4043     // Resubscribe before processing new value to prevent missing updates(!):
  4086     // Resubscribe before processing new value to prevent missing updates(!):
  4044 	iFileProgressProperty.Subscribe(iStatus);
  4087 	iFileProgressProperty.Subscribe(iStatus);
  4045     SetActive();
  4088     if(!IsActive())
       
  4089     	SetActive();
  4046     iStatus = KRequestPending;
  4090     iStatus = KRequestPending;
  4047 
  4091 
  4048     TLSLOG_L( KSenServiceConnectionStatusLogChannelBase+iConnectionID, KSenServiceConnectionStatusLogLevel, "CSenFileProgressObserver::RunL" );
  4092     TLSLOG_L( KSenServiceConnectionStatusLogChannelBase+iConnectionID, KSenServiceConnectionStatusLogLevel, "CSenFileProgressObserver::RunL" );
  4049        
  4093        
  4050     TPckgBuf<TFileOutgoingTransferProgressBase> progress;
  4094     TPckgBuf<TFileOutgoingTransferProgressBase> progress;