--- a/menufw/hierarchynavigator/hnutilities/src/hnservicehandler.cpp Thu Mar 18 14:45:17 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-/*
-* Copyright (c) 2007-2008 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: ?Description
-*
-*/
-
-
-#include <xmlengdom.h>
-#include <liwservicehandler.h>
-
-#include "hnservicehandler.h"
-#include "hnliwutils.h"
-#include "hnglobals.h"
-#include "hnmdbasekey.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnServiceHandler::ConstructL(
- const TDesC8& aService, const TDesC8& aInterface,
- const TDesC8& aCommand,
- CLiwGenericParamList* aConstructor,
- CLiwGenericParamList* aServiceCommand )
- {
- iServiceName.CreateL( aService );
- iInterfaceName.CreateL( aInterface );
- iCommandName.CreateL( aCommand );
-
- iServiceHandler = CLiwServiceHandler::NewL();
- iInput = CLiwGenericParamList::NewL();
-
- iOutputForAS = CLiwGenericParamList::NewL();
-
- iServiceInterface = NULL;
- SetServiceInterfaceL( aConstructor );
-
- // Please note that by setting these two member variables
- // we take ownership of aConstructor and aServiceCommand.
- // No leaving functions may be called in ConstructL from
- // now on.
- iConstructor = aConstructor;
- iCommand = aServiceCommand;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CHnServiceHandler* CHnServiceHandler::NewL(
- const TDesC8& aService, const TDesC8& aInterface,
- const TDesC8& aCommand, TServiceMode aMode,
- CLiwGenericParamList* aConstructor,
- CLiwGenericParamList* aServiceCommand )
- {
- CHnServiceHandler* self = CHnServiceHandler::NewLC( aService, aInterface,
- aCommand, aMode, aConstructor, aServiceCommand );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CHnServiceHandler* CHnServiceHandler::NewLC(
- const TDesC8& aService, const TDesC8& aInterface,
- const TDesC8& aCommandName, TServiceMode aMode,
- CLiwGenericParamList* aConstructor,
- CLiwGenericParamList* aServiceCommand )
- {
- CHnServiceHandler* self = new( ELeave ) CHnServiceHandler( aMode );
- CleanupStack::PushL( self );
- self->ConstructL( aService, aInterface, aCommandName, aConstructor,
- aServiceCommand );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnServiceHandler::CHnServiceHandler( TServiceMode aMode ) :
- iMode( aMode )
- {
-
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CHnServiceHandler::~CHnServiceHandler()
- {
-
- iServiceName.Close();
- iInterfaceName.Close();
- iCommandName.Close();
-
- if ( iServiceInterface )
- {
- iServiceInterface->Close();
- }
-
- delete iInput;
- delete iConstructor;
- delete iCommand;
- delete iOutputForAS;
-
- if ( iServiceHandler )
- {
- iServiceHandler->Reset();
- delete iServiceHandler;
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CHnServiceHandler::ExecuteL( MLiwNotifyCallback* aCallback,
- TInt aCmdOptions)
- {
- TInt err( KErrNotSupported );
- if( iServiceInterface )
- {
- err = KErrNotSupported;
- iOutputForAS->Reset();
- iInput->Reset();
- iInput->AppendL( *iCommand );
- switch( iMode )
- {
- case EServiceModeAsynchronous:
- {
- __ASSERT_DEBUG( aCallback , User::Panic( KMatrixPanic , 0 ) );
- TRAP(err, iServiceInterface->ExecuteCmdL(
- iCommandName, *iInput, *iOutputForAS, aCmdOptions, aCallback ) );
- }
- break;
- case EServiceModeSynchronous:
- {
- TRAP(err, iServiceInterface->ExecuteCmdL(
- iCommandName, *iInput, *iOutputForAS, aCmdOptions, NULL ) );
- }
- break;
- }
- }
- return err;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CHnServiceHandler::ExecuteL(
- CLiwGenericParamList& aOutParamList, TRequestStatus& aStatus )
- {
- iClientStatus = &aStatus;
- (*iClientStatus) = KRequestPending;
- iOutputForAO = &aOutParamList;
-
- TInt err( KErrNotSupported );
- if( iServiceInterface )
- {
- err = KErrNone;
- iInput->Reset();
- iInput->AppendL( *iCommand );
-
- switch (iMode)
- {
- case EServiceModeAsynchronous:
- {
- TRAP(err, iServiceInterface->ExecuteCmdL(
- iCommandName, *iInput, *iOutputForAO, 0, this ) );
- if ( err != KErrNone )
- {
- User::RequestComplete( iClientStatus, err );
- }
- }
- break;
- case EServiceModeSynchronous:
- {
- TRAP(err, iServiceInterface->ExecuteCmdL(
- iCommandName, *iInput, *iOutputForAO ) );
- User::RequestComplete( iClientStatus, KErrNone );
- }
- break;
- default:
- break;
- }
- }
- else
- {
- // KErrNone ensures that CHnQueryResultCollector::HandleQueryResultsL()
- // is called, empty results are added to list, and
- // CHnMdItem::ResultsCollectedL doesn't get confused
- User::RequestComplete( iClientStatus, KErrNone );
- }
-
- return err;
- }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-EXPORT_C TInt CHnServiceHandler::HandleNotifyL(
- TInt /*aCmdId*/,
- TInt /*aEventId*/,
- CLiwGenericParamList& aEventParamList,
- const CLiwGenericParamList& /*aInParamList*/ )
- {
- // reset
- if( iOutputForAO )
- {
- iOutputForAO->Reset();
- iOutputForAO->AppendL( aEventParamList );
-
- TLiwGenericParam param;
- TInt error(KErrNone);
- param.PushL();
- for (TInt i = 0; i < aEventParamList.Count(); i++)
- {
- if ( param.Name().Compare( KErrorCode8 ) == 0
- && param.Value().AsTInt32() == KSErrNoMemory )
- {
- error = KErrNoMemory;
- break;
- }
- }
- CleanupStack::PopAndDestroy(¶m);
- User::RequestComplete( iClientStatus, error);
- }
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-TInt CHnServiceHandler::SetServiceInterfaceL(
- CLiwGenericParamList* aConstructor )
- {
- CLiwGenericParamList& inParam = iServiceHandler->InParamListL();
- CLiwGenericParamList& outParam = iServiceHandler->OutParamListL();
-
- CLiwCriteriaItem* critItem = CLiwCriteriaItem::NewLC( KLiwCmdAsStr,
- iInterfaceName, iServiceName );
-
- critItem->SetServiceClass( TUid::Uid( KLiwClassBase ) );
- RCriteriaArray critArr;
- CleanupClosePushL( critArr );
- critArr.AppendL( critItem );
- iServiceHandler->AttachL( critArr );
- inParam.AppendL( *aConstructor );
- iServiceHandler->ExecuteServiceCmdL( *critItem, inParam, outParam );
- CleanupStack::PopAndDestroy( &critArr );
- CleanupStack::PopAndDestroy( critItem );
-
- TInt pos( KErrNone );
- outParam.FindFirst( pos, iInterfaceName );
- if ( pos != KErrNotFound )
- {
- iServiceInterface = outParam[pos].Value().AsInterface();
- }
-
- return pos;
- }
-
-// End of file