diff -r 000000000000 -r 3553901f7fa8 telephonyprotocols/pdplayer/umts/spudtel/src/cspudcontextelem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyprotocols/pdplayer/umts/spudtel/src/cspudcontextelem.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,147 @@ +// Copyright (c) 2004-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: +// spud context element +// +// + +/** + @file + @internalComponent +*/ + +#include "cspudcontextelem.h" + +/** +@param aId - pdp context id +@param aFactory - reference to etel driver factory +@param aPdpFsmInterface reference to pdp fsm interface +@return new spud context element +*/ +CSpudContextElem* CSpudContextElem::NewL(TContextId aId, + CEtelDriverFactory& aFactory, + CPdpFsmInterface& aPdpFsmInterface) + { + CSpudContextElem *me = new(ELeave) CSpudContextElem(); + CleanupStack::PushL(me); + me->ConstructL(aId, aFactory, aPdpFsmInterface); + CleanupStack::Pop(me); + return me; + } + +/** +@param aId - pdp context id +@param aFactory - reference to etel driver factory +@param aPdpFsmInterface reference to pdp fsm interface +*/ +void CSpudContextElem::ConstructL(TContextId aId, + CEtelDriverFactory& aFactory, + CPdpFsmInterface& aPdpFsmInterface) + { + iContext = CEtelDriverContext::NewL(aId, aId == KPrimaryContextId?SpudMan::EPrimary:SpudMan::ESecondary, aFactory); + iPdpStatusChangeNotifier = new(ELeave) CPdpStatusChangeNotifier(aId, + iContext->PacketContext(), + aPdpFsmInterface); + iQoSChangeNotifier = new(ELeave) CQoSChangeNotifier(aId, + iContext->PacketQoS(), + aPdpFsmInterface); + iPdpConfigChangeNotifier = CPdpConfigChangeNotifier::NewL(aId, + iContext->PacketContext(), + aPdpFsmInterface); + } + +CSpudContextElem::~CSpudContextElem() + { + delete iPdpStatusChangeNotifier; + delete iQoSChangeNotifier; + delete iPdpConfigChangeNotifier; + delete iContext; + } + +/** starts all notifiers */ +void CSpudContextElem::Start() + { + iPdpStatusChangeNotifier->Start(); + iQoSChangeNotifier->Start(); + iPdpConfigChangeNotifier->Start(); + } + +/** cancels all notifiers */ +void CSpudContextElem::Cancel() + { + iPdpStatusChangeNotifier->Cancel(); + iQoSChangeNotifier->Cancel(); + iPdpConfigChangeNotifier->Cancel(); + } + + + /** +@param aId - pdp context id +@param aFactory - reference to etel driver factory +@param aPdpFsmInterface reference to pdp fsm interface +@return new spud context element +*/ +CMbmsContextElem* CMbmsContextElem::NewL(TContextId aId, + CEtelDriverFactory& aFactory, + CPdpFsmInterface& aPdpFsmInterface) + { + CMbmsContextElem *me = new(ELeave) CMbmsContextElem(); + CleanupStack::PushL(me); + me->ConstructL(aId, aFactory, aPdpFsmInterface); + CleanupStack::Pop(me); + return me; + } + +/** +@param aId - pdp context id +@param aFactory - reference to etel driver factory +@param aPdpFsmInterface reference to pdp fsm interface +*/ +void CMbmsContextElem::ConstructL(TContextId aId, + CEtelDriverFactory& aFactory, + CPdpFsmInterface& aPdpFsmInterface) + { + iContext = CEtelDriverContext::NewL(aId, SpudMan::EMbms, aFactory); + iMbmsPdpStatusChangeNotifier = new(ELeave) CMbmsPdpStatusChangeNotifier(aId, + iContext->MbmsPacketContext(), + aPdpFsmInterface); + + iMbmsPdpConfigChangeNotifier = new(ELeave) CMbmsPdpConfigChangeNotifier(aId, + iContext->MbmsPacketContext(), + aPdpFsmInterface); + } + +CMbmsContextElem::~CMbmsContextElem() + { + delete iMbmsPdpStatusChangeNotifier; + delete iMbmsPdpConfigChangeNotifier; + delete iContext; + } + +/** starts all notifiers */ +void CMbmsContextElem::Start() + { + iMbmsPdpStatusChangeNotifier->Start(); + iMbmsPdpConfigChangeNotifier->Start(); + } + +/** cancels all notifiers */ +void CMbmsContextElem::Cancel() + { + iMbmsPdpStatusChangeNotifier->Cancel(); + iMbmsPdpConfigChangeNotifier->Cancel(); + } + + + +