diff -r 000000000000 -r b16258d2340f applayerprotocols/httpservice/test/httpservicetest/clocaltestserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerprotocols/httpservice/test/httpservicetest/clocaltestserver.cpp Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,145 @@ +// Copyright (c) 2003-2009 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 + +#include "clocaltestserver.h" +#include "httptestutils.h" +#include "mlocaltestserverobserver.h" +#include "ctestserverstreammanager.h" +#include "chttpclienttestparams.h" + +const TUint16 KListeningPort = 80; +const TInt KDefaultBufferSize = 16 * 1024; + +CLocalTestServer* CLocalTestServer::NewL(CHTTPTestUtils& aTestUtils, MLocalTestServerObserver& aObserver, CHttpClientTestParamArray& aTestParamArray) + { + CLocalTestServer* self = new (ELeave) CLocalTestServer(aTestUtils, aObserver, aTestParamArray); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +CLocalTestServer::CLocalTestServer(CHTTPTestUtils& aTestUtils, MLocalTestServerObserver& aObserver, CHttpClientTestParamArray& aTestParamArray) +: iTestUtils(aTestUtils), iObserver(aObserver), iTestParamArray(aTestParamArray) + { + } + +void CLocalTestServer::ConstructL() + { + _LIT8(KTxtTCP, "TCP"); + THttpTransportConstructionParams params(*this); + iTCPLayer = CHttpTransportLayer::NewL(KTxtTCP(), params); + } + +CLocalTestServer::~CLocalTestServer() + { + iStreamManagers.ResetAndDestroy(); + iStreamManagers.Close(); + StopServer(); + delete iTCPLayer; + } + +void CLocalTestServer::StartServerL() + { + iTCPLayer->ListenL(*this, KListeningPort); + } + +void CLocalTestServer::StopServer() + { + if( iTCPLayer != NULL ) + { + iTCPLayer->StopListen(); + } + } + +void CLocalTestServer::ResetServer() + { + iStreamManagers.ResetAndDestroy(); + } + +// From MSocketListenObserver +void CLocalTestServer::ConnectionReceivedL(MInputStream& aInputStream, MOutputStream& aOutputStream) + { + // New connection received, create a new stream manager to manage the requests and responses +/* const TInt connectionCount = iStreamManager.Count(); +*/ + CLocalTestServerStreamManager* newStreamMgr = CLocalTestServerStreamManager::NewL(iTestUtils, &aInputStream, &aOutputStream, iTestParamArray); + CleanupStack::PushL(newStreamMgr); + User::LeaveIfError(iStreamManagers.Append(newStreamMgr)); + CleanupStack::Pop(newStreamMgr); + + _LIT(KTxtConnection, "Server - Client connection received and connected."); + iTestUtils.LogIt(KTxtConnection()); + } + +TInt CLocalTestServer::HandleListenError(TInt aError) + { + _LIT(KTxtListenError, "Server listening error: Error code = %d"); + iTestUtils.LogIt(KTxtListenError(), aError); + + iObserver.EndTest(aError); + return KErrNone; + } + +void CLocalTestServer::MSocketListenObserver_Reserved() + { + } + +// From MConnectionPrefsProvider +TBool CLocalTestServer::SupplyCommsConnection(RConnection*& /* aConnectionPtr */) + { + return EFalse; + } + + +void CLocalTestServer::SetCommsConnectionL(RConnection* /* aConnectionPtr */) + { + //do nothing + } + +void CLocalTestServer::GetSecurityPrefs(TBool& aDialogPrompt, MSecurityPolicy*& aSecurityPolicy) + { + aDialogPrompt = EFalse; + aSecurityPolicy = NULL; + } + +TBool CLocalTestServer::ImmediateSocketShutdown() + { + return EFalse; + } + +TInt CLocalTestServer::SessionId() + { + return KErrNotSupported; + } + +TBool CLocalTestServer::SupplySocketServerHandle ( TInt& aSocketServerHandle ) + { + aSocketServerHandle = 0; + return EFalse; + } + +void CLocalTestServer::SetSocketServerHandleL ( TInt /*aSocketServerHandle*/ ) + { + // do nothing + } + +TInt CLocalTestServer::GetRecvBufferSize() + { + return KDefaultBufferSize; + } +