common/tools/ats/smoketest/lbs/internal/lbstestserver/src/lbstestserver.cpp
changeset 748 e13acd883fbe
child 872 17498133d9ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/ats/smoketest/lbs/internal/lbstestserver/src/lbstestserver.cpp	Tue Nov 10 13:50:58 2009 +0000
@@ -0,0 +1,109 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// server side exmaple of how to use the abstract server framework
+// 
+//
+
+#include <e32debug.h>
+#include "lbstestserver.h"
+#include "lbstestserverdata.h"
+#include "lbstestmessageenums.h"
+#include "lbstestsession.h"
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Security Policy information
+///////////////////////////////////////////////////////////////////////////////
+const TUint myRangeCount = 4;
+const TInt myRanges[myRangeCount] = 
+    {
+    0, //range is 0-1 inclusive
+    ESecureSubSessionBaseClose, //range is ESecureSubSessionBaseClose to (EFirstLbsTestServerMessage - 1)
+    EFirstLbsTestServerMessage, //range is EFirstLbsTestServerMessage to (ELastLbsTestServerMessage - 1)
+    ELastLbsTestServerMessage // range is ELastLbsTestServerMessage to KMaxTInt inclusive
+    };
+    
+const TUint8 myElementsIndex[myRangeCount] = 
+    {
+    CPolicyServer::EAlwaysPass,
+    CPolicyServer::ENotSupported,
+    0,
+    CPolicyServer::ENotSupported
+    };
+    
+const CPolicyServer::TPolicyElement myElements[] = 
+    {
+    {_INIT_SECURITY_POLICY_C1(ECapabilityLocation), CPolicyServer::EFailClient}
+    };
+    
+const CPolicyServer::TPolicy myPolicy =
+    {
+    CPolicyServer::EAlwaysPass, //specifies all connect attempts should pass
+    myRangeCount,                   
+    myRanges,
+    myElementsIndex,
+    myElements,
+    };
+
+///////////////////////////////////////////////////////////////////////////////
+// Implementation of Server Framework functions
+///////////////////////////////////////////////////////////////////////////////
+
+MCreateServerImpl* CSecureASBase::GetImplLC()
+	{
+	CLbsTestServerImpl* impl = new(ELeave) CLbsTestServerImpl();
+	CleanupStack::PushL(impl);
+	return impl;
+	}
+
+void CLbsTestServerImpl::CreateServerLC(TServerStartParams& aParams)
+	{
+	CLbsTestServer* s = new(ELeave) CLbsTestServer(CActive::EPriorityStandard, myPolicy);
+	CleanupStack::PushL(s);
+	s->ConstructL(aParams.GetServerName());
+	// leave the server object on the CS
+	}
+	
+///////////////////////////////////////////////////////////////////////////////
+// CTestServer
+///////////////////////////////////////////////////////////////////////////////
+
+CLbsTestServer::CLbsTestServer(TInt aPriority, const CPolicyServer::TPolicy& aSecurityPolicy) : 
+	CSecureServerBase(aPriority, aSecurityPolicy),
+	iVersion(KTestServerMajorVersionNumber,
+			 KTestServerMinorVersionNumber,
+			 KTestServerBuildVersionNumber)
+	{
+	}
+	
+CLbsTestServer::~CLbsTestServer()
+	{
+	}
+	
+void CLbsTestServer::ConstructL(const TDesC& aServerName)
+	{
+	StartL(aServerName);
+	BaseConstructL(); // MUST BE CALLED	
+	}
+	
+CSession2* CLbsTestServer::DoNewSessionL(const TVersion& /*aVersion*/, const RMessage2& /*aMessage*/) const
+	{
+	return new (ELeave) CLbsTestSession(); // version number already checked at this point
+	}
+	
+	
+TVersion CLbsTestServer::GetServerVersion() const
+	{
+	return iVersion;
+	}