diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcserver.cpp --- a/locationcentre/lcserver/src/lcserver.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2007 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: Location Centre Server object. -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcserver.h" -#include "lcserverinterface.h" -#include "lcserversession.h" -#include "lcservershutdowntimer.h" -#include "lcserverengine.h" - -// CONSTANT DEFINTIONS - -// ----- Member funtions for CLcServer --------------------------------- - -// --------------------------------------------------------------------------- -// CLcServer::CLcServer -// --------------------------------------------------------------------------- -// -CLcServer::CLcServer() - :CServer2( CActive::EPriorityStandard ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcServer::~CLcServer -// --------------------------------------------------------------------------- -// -CLcServer::~CLcServer() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the Server Engine. - delete iEngine; - - // Delete the shutdown timer. - delete iShutDownTimer; - - } - -// --------------------------------------------------------------------------- -// CLcServer* CLcServer::NewL -// --------------------------------------------------------------------------- -// -CLcServer* CLcServer::NewL() - { - CLcServer* self = NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcServer* CLcServer::NewLC -// --------------------------------------------------------------------------- -// -CLcServer* CLcServer::NewLC() - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcServer* self = new ( ELeave )CLcServer(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcService::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServer::ConstructL() - { - // Start the Location Centre Server - StartL( KLocationCentreServerName ); - - // Create the shutdown timer - iShutDownTimer = CLcServerShutDownTimer::NewL(); - - // Create the Location Centre Server Engine. - iEngine = CLcServerEngine::NewL( *this ); - } - -// --------------------------------------------------------------------------- -// CSession2* CLcServer::NewSessionL -// --------------------------------------------------------------------------- -// -CSession2* CLcServer::NewSessionL( const TVersion& aVersion, - const RMessage2& /* aMessage */ ) const - { - // Check the version number. We dont support any other version numbers - // greater than ( 1, 0, 0 ). Hence, if the version number passed to this - // function is greater than the supported number leave with KErrNotSupported. - TVersion version( KLcServerMajorVersionNumber, - KLcServerMinorVersionNumber, - KLcServerBuildVersionNumber ); - if ( !User::QueryVersionSupported( version, aVersion )) - { - User::Leave( KErrNotSupported ); - } - - // Make new session - CSession2* newSession = - CLcServerSession::NewL( *( const_cast< CLcServer* >( this )), - *iEngine ); - - return newSession; - } - -// --------------------------------------------------------------------------- -// void CLcServer::IncrementSessions -// --------------------------------------------------------------------------- -// -void CLcServer::IncrementSessions() - { - // Increment the number of sessions - iNumberofSessions++; - - // Stop the Shutdown timer. This function does nothing if the timer - // is not already running. - iShutDownTimer->StopTimer(); - } - -// --------------------------------------------------------------------------- -// void CLcServer::DecrementSessions -// --------------------------------------------------------------------------- -// -void CLcServer::DecrementSessions() - { - - // If the number of sessions is equal to zero then start the shutdown - // timer. - if ( --iNumberofSessions == 0 ) - { - iShutDownTimer->StartTimer(); - } - } - -// --------------------------------------------------------------------------- -// void CLcServer::LcRegistryUpdated -// --------------------------------------------------------------------------- -// -void CLcServer::LcRegistryUpdated() - { - // Inform all the Sessions contained here that there is an update to the - // registry so that they can inform any clients which have registered - // for notification - iSessionIter.SetToFirst(); - - while ( iSessionIter ) - { - // Obtain the element at the current position and notify the corresponding - // session object. - CLcServerSession& session = static_cast ( *iSessionIter ); - session.RegistryUpdated(); - - // Increment the Session object to point to the next session instance - iSessionIter++; - } - } -// End of File