diff -r 0ba996a9b75d -r 613943a21004 btobexprofiles/obexserviceman/obexservicemanserver/src/obexsmmain.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/btobexprofiles/obexserviceman/obexservicemanserver/src/obexsmmain.cpp Tue Aug 31 15:25:10 2010 +0300 @@ -0,0 +1,118 @@ +/* +* Copyright (c) 2002-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: Implementation of obexservicemanager core. +* +*/ + + + +// INCLUDE FILES + +#include +#include "obexserviceman.h" +#include "debug.h" +#include "obexsm.h" + + +// --------------------------------------------------------- +// PanicClient +// +// RMessage2::Panic() also completes the message. +// +// --------------------------------------------------------- +void PanicClient(const RMessage2& aMessage,TInt aPanic ) + { + FTRACE(FPrint(_L("[SRCS]\tserver\tPanicClient: Reason = %d"), aPanic)); + aMessage.Panic(KSrcsPanic,aPanic); + } + +// --------------------------------------------------------- +// PanicServer +// +// Panic our own thread +// +// --------------------------------------------------------- +void PanicServer(TInt aPanic) + { + FTRACE(FPrint(_L("[SRCS]\tserver\tPanicServer: Reason = %d"), aPanic)); + User::Panic(KSrcsPanic, aPanic); + } + + + +// ================= OTHER EXPORTED FUNCTIONS ============== + + +// --------------------------------------------------------- +// RunServerL +// +// Perform all server initialisation, in particular creation +// of the scheduler and server and then run the scheduler. +// This is called from Srcs.exe (RunServer -method). +// +// --------------------------------------------------------- +EXPORT_C void RunServerL() + { + FLOG(_L("[SRCS]\tclient\tSrcs RunServerL")); + + // create and install the active scheduler we need + CActiveScheduler* scheduler = new (ELeave) CActiveScheduler; + CleanupStack::PushL(scheduler); + CActiveScheduler::Install(scheduler); + + // create the server (leave it on the cleanup stack) + CleanupStack::PushL( CObexSM::NewL() ); + + + // naming the server thread after the server helps to debug panics + // ignore error - we tried the best we could + + User::RenameThread(KSrcsName); + + + RProcess::Rendezvous(KErrNone); + + + FLOG(_L("[SRCS]\tclient\tSrcs RunServerL: Starting active scheduler...")); + CActiveScheduler::Start(); + + FLOG(_L("[SRCS]\tclient\tSrcs RunServerL: Done")); + // + // Cleanup the server and scheduler + CleanupStack::PopAndDestroy(2); + } + + + + + +TInt E32Main() //used in all case( WINS and TARGET) + { + //TODO uncomment UHEAP macros after orbit memory leaks are resolved till then it should be commented. +// __UHEAP_MARK; + + CTrapCleanup* cleanup=CTrapCleanup::New(); + TInt retVal = KErrNoMemory; + if ( cleanup ) + { + TRAP( retVal,RunServerL() ); + delete cleanup; + } + + // __UHEAP_MARKEND; + return retVal; + } + + +// End of file