diff -r 000000000000 -r 2e3d3ce01487 tzservices/tzserver/Server/Source/MAIN.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tzservices/tzserver/Server/Source/MAIN.CPP Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,88 @@ + +// Copyright (c) 1997-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 "timezoneserver.h" +#include + +CTZSrvScheduler::~CTZSrvScheduler() + { + delete iServer; + } + +CTZSrvScheduler* CTZSrvScheduler::NewL() + { + CTZSrvScheduler* self = new (ELeave) CTZSrvScheduler; + CleanupStack::PushL(self); + CActiveScheduler::Install(self); + // create the server + self->iServer=CTzServer::NewL(); + CleanupStack::Pop(); + return self; + } + +void CTZSrvScheduler::Error(TInt aError) const + { + if (iServer) + { + iServer->Error(aError); + } + } + +static void RunServerL() + // + // Thread top level + // Perform all server initialisation, in particular creation of the + // scheduler and server and then run the scheduler + // + { + // create and install the active scheduler we need + CTZSrvScheduler* s = CTZSrvScheduler::NewL(); + CleanupStack::PushL(s); + + // + // naming the server thread after the server helps to debug panics + User::LeaveIfError(RThread().RenameMe(KTimeZoneServerName())); + + + // + // Initialisation complete, now signal the client + RProcess::Rendezvous(KErrNone); + // + // Ready to run + CActiveScheduler::Start(); + // + // Cleanup the scheduler + CleanupStack::PopAndDestroy(s); + } + +GLDEF_C TInt E32Main() +// +// Timezone server entrypoint +// + { + __UHEAP_MARK; + // + CTrapCleanup* cleanup = CTrapCleanup::New(); + TInt r = KErrNoMemory; + if (cleanup) + { + TRAP(r, RunServerL()); + delete cleanup; + } + // + __UHEAP_MARKEND; + return r; + }