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 ) |
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() |
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) |
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 |
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(); |
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 ) |
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; |