diff -r 000000000000 -r 3553901f7fa8 telephonyprotocols/pdplayer/inc/mbmsengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyprotocols/pdplayer/inc/mbmsengine.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,93 @@ +// Copyright (c) 2008-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: +// + +/** + @file + @internalComponent +*/ + +#ifndef MBMSENGINE_H +#define MBMSENGINE_H + +#include +#include +#include +#include +#include "pdptiermanager.h" + +using namespace ESock; +using namespace ConnectionServ; + +class CMBMSServiceRequest; + +class CMBMSEngine: public CActive +{ +public: + static CMBMSEngine* NewL(const Messages::TNodeId& aMbmsTMCommsId, MPacketServiceNotifier& aPacketServiceNotifier); + + ~CMBMSEngine(); + + // From CActive + virtual void RunL(); + virtual void DoCancel(); + virtual TInt RunError(TInt aError); + + void CheckPendingRequests(); + void RemoveFromRequestListL(const Messages::TRuntimeCtxId& aNodeCtxId); + void CancelAndRemoveFromRequestListL(const Messages::TRuntimeCtxId& aNodeCtxId); + void AddToRequestListL( + Messages::RNodeInterface* aNodeInterface, + const Messages::TRuntimeCtxId& aNodeCtxId, + const Messages::TNodeSignal::TMessageId& aRequestType, + ESock::CRefCountOwnedParameterBundle* aRequestBundleOwner + ); + RPacketService& GetRPacketService(); + +private: + CMBMSEngine(const Messages::TNodeId& aMbmsTMCommsId, MPacketServiceNotifier& aPacketServiceNotifier); + void ConstructL(); + TBool InitialisePhoneL(); + void DeleteIndexElement(TUint aIndex); + TUint GetRequestElementL(const Messages::TRuntimeCtxId& aNodeCtxId); + +private: + enum TPhoneState + { + EInitialising = 0, + ESetAttachMode, + EAttachModeComplete + }; + //tel server + RTelServer iTelServer; + //phone + RPhone iPhone; + RPhone::TStatus iPhoneStatus; + RPacketService iPacketService; + + RTelServer::TPhoneInfo iPhoneInfo; + + RPointerArray iMBMSRequestList; + + Messages::TNodeId iMbmsTMCommsId; + + //to maintain different states in state machine + TPhoneState iPhoneState; + //to check for any outstanding requests + TBool iPendingRequests; + MPacketServiceNotifier& iPacketServiceNotifier; + +}; +#endif // MBMSENGINE_H +