--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsoviplugin/src/wsoviencoderhandler.cpp Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2008 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 "wsoviencoderhandler.h"
+#include "senlogger.h"
+#include "wsoviutils.h"
+#include <SenHttpTransportProperties.h>
+using namespace OAuth;
+using namespace WSOviResponse;
+// Create instance of concrete ECOM interface implementation
+CWSOviEncoderHandler* CWSOviEncoderHandler::NewL(TAny* aHandlerCtx)
+ {
+
+ MSenHandlerContext* handlerCtx =
+ reinterpret_cast<MSenHandlerContext*>(aHandlerCtx);
+ CWSOviEncoderHandler* self =
+ new(ELeave)CWSOviEncoderHandler(*handlerCtx);
+ CleanupStack::PushL (self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// Constructor
+CWSOviEncoderHandler::CWSOviEncoderHandler(MSenHandlerContext& aCtx)
+:CSenMessageHandler(aCtx)
+ {
+ }
+
+// Destructor
+CWSOviEncoderHandler::~CWSOviEncoderHandler()
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel,(_L("CWSOviEncoderHandler::\
+ ~CWSOviEncoderHandler()")));
+ }
+
+// Second phase construction.
+void CWSOviEncoderHandler::ConstructL()
+ {
+ }
+
+TInt CWSOviEncoderHandler::InvokeL(MSenMessageContext& aCtx)
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel,(_L("CWSOviEncoderHandler::InvokeL(MSenMessageContext& aCtx)")));
+
+ const TDesC8* bodyMessage = ((CWSOviMessageContext&)aCtx).GetDesC8L(WSOviContextKeys::KMessageBody);
+
+ if (bodyMessage)
+ {
+ CSenTransportProperties* transProp = ((CWSOviMessageContext&)aCtx).TP();
+ CSenHttpTransportProperties::TSenHttpMethod httpMethod = CSenHttpTransportProperties::ESenHttpPost;
+ TInt retVal = ((CSenHttpTransportProperties*)transProp)->HttpMethodL(httpMethod);
+ if (httpMethod == CSenHttpTransportProperties::ESenHttpGet)
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel,(_L("CWSOviEncoderHandler::InvokeL\
+ (MSenMessageContext& aCtx) - \
+ body is not encoding with GET method for http")));
+ return KErrNone;
+ }
+
+ HBufC8* bodyEncodedUrl = CWSOviUtils::FormEncodeCharsLC(*bodyMessage);
+ HBufC8* allBody = HBufC8::NewL(KXmlContentEqual().Length()+bodyEncodedUrl->Length());
+ allBody->Des().Append(KXmlContentEqual());
+ allBody->Des().Append(*bodyEncodedUrl);
+ CleanupStack::PushL(allBody);
+
+ ((CWSOviMessageContext&)aCtx).Update(WSOviContextKeys::KMessageBody, *allBody);
+
+ CleanupStack::PopAndDestroy(allBody);
+ CleanupStack::PopAndDestroy(bodyEncodedUrl);
+ return KErrNone;
+ }
+ else
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel,(_L("CWSOviEncoderHandler::InvokeL\
+ (MSenMessageContext& aCtx) - \
+ body message context not exists")));
+ return KErrNotFound;
+ }
+ }
+
+TInt CWSOviEncoderHandler::InitL(MSenHandlerContext& aCtx)
+ {
+ iHandlerContext = aCtx;
+ return KErrNone;
+ }
+
+SenHandler::THandlerDirection CWSOviEncoderHandler::Direction() const
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel,(_L("CWSOviEncoderHandler::Direction()")));
+ return SenHandler::EOutgoing;
+ };
+SenHandler::THandlerPhase CWSOviEncoderHandler::Phase()
+ {
+ TLSLOG(KSenCoreServiceManagerLogChannelBase , KMinLogLevel,(_L("CWSOviEncoderHandler::Phase()")));
+ return SenHandler::EMessage;
+ };
+
+// END OF FILE
+