--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/idwsfplugin/src/idwsfcoreserviceconsumer.cpp Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,356 @@
+/*
+* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+
+
+
+
+#include "idwsfcoreserviceconsumer.h"
+
+#include "idwsfservicesession.h"
+#include "sendebug.h" // internal Utils\inc - filelogging MACROs
+#include "midwsfsessionvalidator.h"
+#include "msenremotehostlet.h"
+#include "senlogger.h"
+
+
+
+CIdWsfCoreServiceConsumer* CIdWsfCoreServiceConsumer::NewL(CSIF& aSIF)
+ {
+ CIdWsfCoreServiceConsumer* self = CIdWsfCoreServiceConsumer::NewLC(aSIF);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CIdWsfCoreServiceConsumer* CIdWsfCoreServiceConsumer::NewLC(CSIF& aSIF)
+ {
+ CIdWsfCoreServiceConsumer* self =
+ new (ELeave) CIdWsfCoreServiceConsumer(
+ aSIF,
+ MSenServiceDescription::ECoreServiceConsumer);
+ CleanupStack::PushL(self);
+ self->BaseConstructL();
+ return self;
+ }
+
+// constructor
+CIdWsfCoreServiceConsumer::CIdWsfCoreServiceConsumer(
+ CSIF& aSIF,
+ TDescriptionClassType aType)
+ : CSenInternalServiceConsumer(aType,aSIF),
+ iService(NULL),
+ iServedConsumer(NULL)
+ {
+ }
+
+void CIdWsfCoreServiceConsumer::BaseConstructL()
+ {
+ CSenInternalServiceConsumer::ConstructL();
+ }
+
+// destructor
+CIdWsfCoreServiceConsumer::~CIdWsfCoreServiceConsumer()
+ {
+ delete iService;
+ }
+
+// GETTERS
+
+CSenServiceSession* CIdWsfCoreServiceConsumer::ServiceSession()
+ {
+ return iService;
+ }
+
+CIdWsfServiceSession* CIdWsfCoreServiceConsumer::IdWsfServiceSession()
+ {
+ return iService;
+ }
+
+MSenRemoteServiceConsumer* CIdWsfCoreServiceConsumer::ServedConsumer()
+ {
+ return iServedConsumer;
+ }
+
+TPtrC8 CIdWsfCoreServiceConsumer::TrustAnchor() const
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::TrustAnchor");
+ TPtrC8 trustAnchor = iService->TrustAnchor();
+
+#ifdef _SENDEBUG
+ if(trustAnchor.Length()>0)
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,(trustAnchor));
+ }
+ else
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ," - trust anchor not set - ");
+ }
+#endif
+
+ return trustAnchor;
+ }
+
+TPtrC8 CIdWsfCoreServiceConsumer::ProviderId() const
+ {
+ TPtrC8 providerId = iService->ProviderId();
+ return providerId;
+ }
+
+TPtrC8 CIdWsfCoreServiceConsumer::Endpoint()
+ {
+ TPtrC8 endpoint = iService->Endpoint();
+ return endpoint;
+ }
+
+TPtrC8 CIdWsfCoreServiceConsumer::Contract()
+ {
+ TPtrC8 contract = iService->Contract();
+ return contract;
+ }
+
+TPtrC8 CIdWsfCoreServiceConsumer::FrameworkId()
+ {
+ return iService->FrameworkId();
+ }
+
+const TTime& CIdWsfCoreServiceConsumer::ValidUntilL()
+ {
+ return iService->ValidUntilL();
+ }
+
+
+TPtrC8 CIdWsfCoreServiceConsumer::FrameworkVersion()
+ {
+ TPtrC8 fwVersion = iService->FrameworkVersion();
+
+#ifdef _SENDEBUG
+ if(fwVersion.Length()>0)
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KMaxLogLevel ,(fwVersion));
+ }
+ else
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ," - framework version not set - ");
+ }
+#endif
+
+ return fwVersion;
+ }
+
+void CIdWsfCoreServiceConsumer::WriteAsXMLToL(RWriteStream& aWriteStream)
+ {
+ iService->WriteAsXMLToL(aWriteStream);
+ }
+
+
+// SETTERS
+
+// 2004-07-28: the ownership of the given session should be transferred in here
+// note: current implementation leaves iService in NULL state, if such arg is
+// given(!). But, it might be as well bad idea to preserve old iService
+// (session) in case of NULL arg.
+void CIdWsfCoreServiceConsumer::SetServiceSessionL( CIdWsfServiceSession* aSession )
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::SetServiceSessionL");
+
+ _LIT8(KTouch, "touch");
+
+ const TDesC8* attrValue = aSession->AsElement().AttrValue(KTouch);
+ if(attrValue != NULL)
+ {
+ AsElement().AddAttrL(KTouch, *attrValue);
+ }
+ // free memory
+ delete iService;
+ iService = aSession;
+
+ if(iService)
+ {
+ iService->AddConsumerL(*this);
+ }
+ }
+
+TInt CIdWsfCoreServiceConsumer::SetSessionL(MSenRemoteServiceSession& /* aSession */)
+ {
+ return KErrNone;
+ }
+
+void CIdWsfCoreServiceConsumer::SetEndPointL(const TDesC8& aURI)
+ {
+ iService->SetEndPointL(aURI);
+ }
+
+void CIdWsfCoreServiceConsumer::SetContractL(const TDesC8& aContract)
+ {
+ iService->SetContractL(aContract);
+ }
+
+// CHECKERS
+TBool CIdWsfCoreServiceConsumer::Matches(MSenServiceDescription& aPattern)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::Matches");
+ TBool retVal = iService->Matches(aPattern);
+#ifdef _SENDEBUG
+ if(retVal) TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,(_L("- TRUE")));
+ else TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,(_L("- FALSE")));
+#endif
+ return retVal;
+ }
+
+TInt CIdWsfCoreServiceConsumer::HasFacetL(const TDesC8& aURI, TBool& aHasFacet)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::HasFacetL");
+ TInt retVal = iService->HasFacetL(aURI, aHasFacet);
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KNormalLogLevel ,(aURI));
+#ifdef _SENDEBUG
+ if(aHasFacet) TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,(_L("- TRUE")));
+ else TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,(_L("- FALSE")));
+#endif
+ return retVal;
+ }
+
+TInt CIdWsfCoreServiceConsumer::FacetValue(TDesC8& aURI, HBufC8*& aValueTo)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::FacetValue");
+ TInt retVal = iService->FacetValue(aURI, aValueTo);
+#ifdef _SENDEBUG
+ if(aValueTo)
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KNormalLogLevel ,(*aValueTo));
+ }
+#endif
+ return retVal;
+ }
+
+TInt CIdWsfCoreServiceConsumer::AddFacetL(const CSenFacet& aFacet)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::AddFacetL");
+ TInt retVal = iService->AddFacetL(aFacet);
+ return retVal;
+ }
+
+TInt CIdWsfCoreServiceConsumer::SetFacetL(const CSenFacet& aFacet)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::SetFacetL");
+ TInt retVal = iService->SetFacetL(aFacet);
+ return retVal;
+ }
+
+TInt CIdWsfCoreServiceConsumer::FacetsL(RFacetArray& aFacetArray)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::FacetsL");
+ TInt retVal = iService->FacetsL(aFacetArray);
+ return retVal;
+ }
+
+TInt CIdWsfCoreServiceConsumer::RemoveFacet(const TDesC8& aURI)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::RemoveFacetL");
+ TInt retVal = iService->RemoveFacet(aURI);
+ return retVal;
+ }
+
+TInt CIdWsfCoreServiceConsumer::ScoreMatchL(MSenServiceDescription& aPattern)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::ScoreMatch");
+ TInt retVal = iService->ScoreMatchL(aPattern);
+ return retVal;
+ }
+
+void CIdWsfCoreServiceConsumer::StartTransaction()
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::StartTransaction");
+ iService->StartTransaction();
+ }
+
+void CIdWsfCoreServiceConsumer::TransactionCompleted()
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::TransactionCompleted");
+ iService->TransactionCompleted();
+ }
+
+
+void CIdWsfCoreServiceConsumer::SetValidator(MIdWsfSessionValidator* aValidator)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::SetValidator");
+ iService->SetValidator(aValidator);
+ }
+
+MIdWsfSessionValidator* CIdWsfCoreServiceConsumer::Validator()
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::Validator");
+ return iService->Validator();
+ }
+
+MSenTransport& CIdWsfCoreServiceConsumer::TransportL()
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::TransportL");
+
+ if(!iServedConsumer)
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"- Fatal error: served remote consumer is NULL!");
+ User::Leave(KErrNotFound);
+ }
+ return iServedConsumer->TransportL();
+ }
+
+TInt CIdWsfCoreServiceConsumer::ChunkByTxnIdL(TInt aTxnId, CSenChunk*& aChunk)
+ {
+ if(iServedConsumer)
+ {
+ return iServedConsumer->ChunkByTxnIdL(aTxnId, aChunk);
+ }
+ else
+ {
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"CIdWsfCoreServiceConsumer::TransportL:");
+ TLSLOG_L(KSenCoreServiceManagerLogChannelBase , KMinLogLevel ,"- Consumer not found!");
+ return KErrNotFound;
+ }
+ }
+
+TBool CIdWsfCoreServiceConsumer::HasSuperClass( TDescriptionClassType aType )
+ {
+ if( aType == CSenInternalServiceConsumer::DescriptionClassType() ) // direct superclass!
+ {
+ // If asked type is the know *direct* father/mother, return true:
+ return ETrue;
+ }
+ else
+ {
+ // Otherwise, ask from superclass (chain, recursively)
+ return CSenInternalServiceConsumer::HasSuperClass( aType );
+ }
+ }
+
+
+MSenRemoteHostlet* CIdWsfCoreServiceConsumer::Hostlet() const
+ {
+ MSenRemoteHostlet* pHostlet = NULL;
+ if( iService )
+ {
+ pHostlet = iService->Hostlet();
+ }
+ return pHostlet;
+ }
+
+
+// End of file
+
+