bearermanagement/S60MCPR/src/s60tmprovideractivity.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:55:21 +0200
changeset 0 5a93021fdf25
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 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: S60 MCPR simple select activity implementation
*
*/

/**
@file s60mcprsimpleselectactivity.cpp
S60 MCPR simple select activity implementation
*/

#include "s60mcpractivities.h"
#include "s60mcprstates.h"
#include "s60extendedtmselector.h"
#include "s60tmactivities.h"

#include <comms-infras/ss_api_ext.h>

using namespace Messages;
using namespace MeshMachine;
using namespace ESock;
using namespace MCprActivities;
using namespace TMActivities;

// -----------------------------------------------------------------------------
// S60TmProviderActivitySuper
// -----------------------------------------------------------------------------
//
namespace S60TmProviderActivitySuper
    {
    DEFINE_SMELEMENT(TSelectProviderSuper, NetStateMachine::MStateTransition, TMStates::TContext)
    void TSelectProviderSuper::DoL() // codescanner::leave
	    {
	    /*__ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCoreTMPanic, KPanicNoActivity));*/
	    CSelectProviderActivity* act = static_cast<CSelectProviderActivity*>(iContext.iNodeActivity);

	    //Creates the core selector - this selector is not required, it is always the
	    //same selector created so the code could be moving into this transition.
	    //The method FindOrCreateProviderL would need to be recreated somewhere else
	    //for this to be possible (currently inherited off ASimpleSelectorBase.

        act->iSelector = new (ELeave /*codescanner::leave*/) CExtendedS60SelectorBase( 
		    iContext.Node().TierId(),
		    message_cast<TCFSelector::TSelect>(iContext.iMessage).iConnPrefList
		    ); 

	    ISelectionNotify selectionNotify(act,act->InterfaceVTable());
	    act->iSelector->SelectL(selectionNotify); // codescanner::leave
	    //Do not do any further processing here as selectors may be returning synchronously (via ISelectionNotify).
	    }
    }

//  End of File