diff -r 3dcb815346df -r 4096754ee773 localconnectivityservice/obexserviceman/obexservicemanclient/src/ObexSMClient.cpp --- a/localconnectivityservice/obexserviceman/obexservicemanclient/src/ObexSMClient.cpp Thu Aug 19 10:46:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,271 +0,0 @@ -/* -* Copyright (c) 2006-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: obexservicemanager client class implementation -* -*/ - - -// INCLUDE FILES -#include "obexsmclient.h" -#include -#include "debug.h" - - -// CONSTANTS -const TInt KServerConnectRetries = 2; // How many times client tries to make connection to server - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------- -// StartThread -// -// Create the server thread/process depending on the framework. -// This function is exported from the DLL and called from the client -// RObexSMServer::Connect() -method. -// Returns: TInt: Error Code -// -// --------------------------------------------------------- - -TInt StartThread() - { - TRACE_FUNC - - TInt retVal = KErrNone; - // create server - if one of this name does not already exist - TFindServer findSrcs(KSrcsName); - TFullName name; - - if ( findSrcs.Next( name ) != KErrNone ) // we don't exist already - { - TRequestStatus started; - //TSrcsStart start( started ); - const TUidType serverUid( KNullUid,KNullUid,KSrcsUid ); - - // Then we have to create the server - // This depends on if we are in WINS or target HW environment. - - TRACE_INFO(_L("[SRCS]\tclient\tSrcs StartThread(): create the server")); - // We are on target HW or EKA2 WINS. - // New process has to be created for the SRCS - RProcess server; - retVal=server.Create(KSrcsName, // Full path to SRCS - KNullDesC, // Descriptor of parameters - serverUid); // Triplet UID of executable - - // Check the return value of process creation - if ( retVal != KErrNone ) - { - // Loading failed. - TRACE_ERROR((_L("[SRCS]\tclient\tSrcs StartThread(): process creation failed %d"), retVal)); - return retVal; - } - - TRACE_INFO(_L("[SRCS]\tclient\tSrcs StartThread(): Process created successfully")); - - - // Process/Thread has been created - // Now logon to the server - TRequestStatus stat; - //server.Logon(died); - server.Rendezvous(stat); - - if (stat!=KRequestPending) - { - server.Kill(0); // abort startup - //FTRACE(FPrint(_L("c\tclient\tSrcs abort startup.\n"))); - } - else - { - server.Resume(); // logon OK - start the server - //FTRACE(FPrint(_L("c\tclient\tSrcs Resumed.\n"))); - } - - // Then wait the start or death of the server. - User::WaitForRequest(stat); - - // we can't use the 'exit reason' if the server panicked as this - // is the panic 'reason' and may be '0' which cannot be distinguished - // from KErrNone - TRACE_INFO((_L("[SRCS]\tclient\tSrcs Server started, code %d (0=>success)\n"), stat.Int())); - retVal=(server.ExitType()==EExitPanic) ? KErrGeneral : stat.Int(); - - server.Close(); - TRACE_INFO(_L("[SRCS]\tclient\tSrcs server handle closed.")); - } - - return retVal; - } - -// ================= MEMBER FUNCTIONS ======================= - -// --------------------------------------------------------------------------- -// Default constructor -// --------------------------------------------------------------------------- -// -RObexSMServer::RObexSMServer() - { - } - - -// --------------------------------------------------------- -// Connect -// Handles connection to server( creates session ) -// --------------------------------------------------------- -// -TInt RObexSMServer::Connect() - { - TRACE_FUNC - - // IF there is allready a session handle, - // no other session is created. - if ( Handle() ) - { - return KErrAlreadyExists; - } - - // Else try to create a new session with server - TInt retry= KServerConnectRetries; - - FOREVER - { - // Try to make session with server - TInt retVal=CreateSession(KSrcsName,Version()); - TRACE_INFO((_L("[SRCS]\tclient\tRSrcs: create Session returned: %d"), retVal)); - if ( retVal != KErrNotFound && retVal != KErrServerTerminated ) - { - // Error which can't be handled happened. - return retVal; - } - // Decrease count - --retry; - if ( retry == 0 ) - { - return retVal; - } - - // Try to start the server - TRACE_INFO(_L("[SRCS]\tclient\tRSrcs::Connect(): try to start server")); - retVal=StartThread(); - TRACE_INFO((_L("[SRCS]\tclient\tRSrcs: StartThread returned: %d"), retVal)); - - if ( retVal != KErrNone && retVal != KErrAlreadyExists ) - { - // Error can't be handled. - return retVal; - } - } - - } - -// --------------------------------------------------------- -// Version -// Defines server version number -// --------------------------------------------------------- -// -TVersion RObexSMServer::Version() const - { - TRACE_FUNC - return( TVersion( KSrcsMajorVersionNumber, - KSrcsMinorVersionNumber, - KSrcsBuildVersionNumber )); - } - -// --------------------------------------------------------- -// ManageServices -// Sends Manage services command to SRCS. -// --------------------------------------------------------- -// -TInt RObexSMServer::ManageServices(TLocodBearer aBearer, TBool aBearStatus,TRequestStatus &aStatus ) - { - TRACE_FUNC - TInt retVal = KErrNone; - - TPckgBuf pckg; - TIpcArgs args( &pckg, NULL, NULL ); - TSrcsServRequest request; - - switch(aBearer) - { - case ELocodBearerBT: - { - if(aBearStatus) - { - request=ESrcsBTServicesON; - } - else - { - request=ESrcsBTServicesOFF; - } - } - break; - case ELocodBearerIR: - { - if(aBearStatus) - { - request=ESrcsIrDAServicesON; - } - else - { - request=ESrcsIrDAServicesOFF; - } - } - break; - case ELocodBearerUSB: - { - if(aBearStatus) - { - request=ESrcsStartUSB; - } - else - { - request=ESrcsStopUSB; - } - } - break; - default: - { - TRACE_ERROR(_L("[SRCS]\tclient\tRSrcs Manageservice: Bad bearer")); - return KErrArgument; - } - } - if ( Handle() ) - { - SendReceive( request, args, aStatus ); - } - else - { - TRACE_ERROR(_L("[SRCS]\tclient\tRSrcs ManageBTServices. No Handle")); - retVal = KErrBadHandle; - } - return retVal; - } - -// --------------------------------------------------------- -// CancelRequest -// --------------------------------------------------------- -// -void RObexSMServer::CancelRequest() - { - TPckgBuf pckg; - TIpcArgs args( &pckg, NULL, NULL ); - TSrcsServRequest request; - request=ESrcsCancelRequest; - if ( Handle() ) - { - SendReceive( request, args ); - } - - } -//end of file -