webservices/wsstar/wsstarmessagehandlers/src/wsstarenveloperhandler.cpp
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsstar/wsstarmessagehandlers/src/wsstarenveloperhandler.cpp	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 2006-2006 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 "wsstarenveloperhandler.h"
+#include "senlogger.h"
+
+// Create instance of concrete ECOM interface implementation
+CWSStarEnveloperHandler* CWSStarEnveloperHandler::NewL(TAny* aHandlerCtx)
+    {
+    
+    MSenHandlerContext* handlerCtx =
+        reinterpret_cast<MSenHandlerContext*>(aHandlerCtx);
+    CWSStarEnveloperHandler* self   = new (ELeave) CWSStarEnveloperHandler(*handlerCtx);
+    CleanupStack::PushL (self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// Constructor
+CWSStarEnveloperHandler::CWSStarEnveloperHandler(MSenHandlerContext& aCtx):CSenMessageHandler(aCtx)
+    {
+    }
+
+// Destructor
+CWSStarEnveloperHandler::~CWSStarEnveloperHandler()
+    {
+    TLSLOG(KSenCoreServiceManagerLogChannelBase  , KMinLogLevel,(_L("CWSStarEnveloperHandler::~CWSStarEnveloperHandler()")));
+    }
+
+// Second phase construction.
+void CWSStarEnveloperHandler::ConstructL()
+    {
+    }
+    
+TInt CWSStarEnveloperHandler::InvokeL(MSenMessageContext& aCtx)
+    {
+        TLSLOG(KSenCoreServiceManagerLogChannelBase  , KMinLogLevel,(_L("CWSStarEnveloperHandler::InvokeL(MSenMessageContext& aCtx)")));
+        const TInt* soapVersion = aCtx.GetIntL(WSStarContextKeys::KSoapVersion);
+        const TDesC8* securityVersion = iHandlerContext.GetDesC8L(HandlerContextKey::KVersion);
+        CSenSoapMessage* message;
+        TPtrC8 secVersion(KSecurityXmlNs);
+        if (securityVersion
+            && (*securityVersion == KSecuritySchemeXmlNs || *securityVersion == KSecurityXmlNs))
+            {
+            secVersion.Set(*securityVersion);
+            }
+        if (soapVersion)
+            {
+            //old SOAP version force to use old sec spec
+            if ((TSOAPVersion)*soapVersion == ESOAP11)
+                {
+                secVersion.Set(KSecuritySchemeXmlNs);
+                }
+            message = CSenSoapMessage::NewL((TSOAPVersion)*soapVersion, secVersion);
+            }
+        else
+            {
+            message = CSenSoapMessage::NewL(ESOAP12, secVersion);
+            ((MSenContext&)aCtx).Add(WSStarContextKeys::KSoapVersion,ESOAP12);        
+            }
+        CleanupStack::PushL(message);    
+        CSenElement* elemBody = 
+            const_cast<CSenElement*>(aCtx.GetSenElementL(WSStarContextKeys::KBodyElement));
+        if (elemBody)
+            {
+            message->BodyL().AddElementL(*elemBody);
+            aCtx.Remove(WSStarContextKeys::KBodyElement);
+            }
+        else
+            {
+            const TDesC8* content = aCtx.GetDesC8L(WSStarContextKeys::KBody);
+            if (content)
+                {
+                message->SetBodyL(*content);
+                }
+            }
+        CleanupStack::Pop(message);
+        aCtx.Update(SenContext::KSenCurrentSoapMessageCtxKey, message);
+        return KErrNone;
+    }
+    
+SenHandler::THandlerDirection CWSStarEnveloperHandler::Direction() const
+    {
+    TLSLOG(KSenCoreServiceManagerLogChannelBase  , KMinLogLevel,(_L("CWSStarEnveloperHandler::Direction()")));
+    return SenHandler::EOutgoing;
+    };
+SenHandler::THandlerPhase CWSStarEnveloperHandler::Phase()
+    {
+    TLSLOG(KSenCoreServiceManagerLogChannelBase  , KMinLogLevel,(_L("CWSStarEnveloperHandler::Phase()")));
+    return SenHandler::EMessage;
+    };    
+    
+TInt CWSStarEnveloperHandler::InitL(MSenHandlerContext& aCtx)
+    {
+    iHandlerContext = aCtx;
+    return KErrNone;
+    }
+RFileLogger* CWSStarEnveloperHandler::Log() const
+    {
+    RFileLogger* pLog = NULL;
+    TRAP_IGNORE( pLog = (RFileLogger*)iHandlerContext.GetAnyL(HandlerContextKey::KLogger); )
+    return pLog;
+    }    
+// END OF FILE
+