diff -r 4096754ee773 -r 52a167391590 localconnectivityservice/obexserviceman/obexservicemanclient/src/ObexSMPlugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/localconnectivityservice/obexserviceman/obexservicemanclient/src/ObexSMPlugin.cpp Wed Sep 01 12:20:40 2010 +0100 @@ -0,0 +1,144 @@ +/* +* Copyright (c) 2006 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: This is the ObexServiceManager ecom plugin class implementation. +* +*/ + + +#include "ObexSMPlugin.h" +#include "ObexSMRequester.h" +#include "debug.h" + +// --------------------------------------------------------------------------- +// NewL +// --------------------------------------------------------------------------- +CObexSMPlugin* CObexSMPlugin::NewL(TLocodServicePluginParams& aParams) + { + TRACE_FUNC + CObexSMPlugin* self = new (ELeave) CObexSMPlugin(aParams); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); + return self; + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +CObexSMPlugin::~CObexSMPlugin() + { + TRACE_FUNC_ENTRY + iRequests.ResetAndDestroy(); + iRequests.Close(); + if(iObexSMServer.Handle()) + { + iObexSMServer.Close(); + } + TRACE_FUNC_EXIT + } + +// --------------------------------------------------------------------------- +// ManageService +// --------------------------------------------------------------------------- +// +void CObexSMPlugin::ManageService(TLocodBearer aBearer, TBool aStatus) + { + TRACE_FUNC_ENTRY + TInt err = KErrNone; + CObexSMRequester* request=NULL; + + if(!iObexSMServer.Handle()) + { + err = iObexSMServer.Connect(); + } + if(err == KErrNone && aBearer != ELocodBearerUSB) + { + TRAP(err, request = CObexSMRequester::NewL(this, aBearer, aStatus)); + if(err==KErrNone) + { + err=iRequests.Append( request ); + if(err==KErrNone) + { + request->ActivateRequest(); + } + } + } + else if(err == KErrNone && aBearer == ELocodBearerUSB) + { + Observer().ManageServiceCompleted(aBearer,aStatus,ImplementationUid(), KErrNone); + } + + if(err!=KErrNone) + { + Observer().ManageServiceCompleted(aBearer,aStatus,ImplementationUid(), err); + } + TRACE_FUNC_EXIT + } + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// + +CObexSMPlugin::CObexSMPlugin(TLocodServicePluginParams& aParams) + : CLocodServicePlugin(aParams) + { + } + +// --------------------------------------------------------------------------- +// ConstructL +// --------------------------------------------------------------------------- +// +void CObexSMPlugin::ConstructL() + { + TRACE_FUNC + } + +// --------------------------------------------------------------------------- +// RequestComplete +// --------------------------------------------------------------------------- +// +void CObexSMPlugin::RequestComplete(CObexSMRequester* aRequest, TInt aError) + { + TRACE_FUNC_ENTRY + + TLocodBearer bearer= aRequest->GetBearer(); + TBool status = aRequest->GetStatus(); + for(TInt index=0; index