diff -r 000000000000 -r 307788aac0a8 sipproviderplugins/sipprovider/sipstatemachine/inc/TransitionEngineMgr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sipproviderplugins/sipprovider/sipstatemachine/inc/TransitionEngineMgr.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,95 @@ +// Copyright (c) 2005-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: +// CTransitionEngineMgr definition file +// +// + +/** + @file + @internalComponent +*/ + +#ifndef TRANSITIONENGINEMGR_H +#define TRANSITIONENGINEMGR_H + +#include "transitionengine.h" + +class CSIPTransitionEngineBundle; +class CTransitionEngineMgr : public CBase +/**The class is responsible for managing CSIPTransitionEngine. This is +class is the only entity that can supply the objects. + +@internalComponent +@released since v9.2 + */ + { +public: + IMPORT_C CSIPTransitionEngine* FindOrCreateL(TUid aAppUid, TUint32& aProfileId); + IMPORT_C void Detach(CSIPTransitionEngine* aTE); + IMPORT_C TUint32 DefaultProfileId(); + +private: + RPointerArray iTEBundles; + }; + +class CSIPTransitionEngineBundle : public CBase, public MSIPObserver, + public MSIPProfileRegistryObserver +/**This class is a container for CSIPTransitionEngine instances. +One instance of this class stores CSIPTransitionEngine instances +pertaining to a single CSIP (and hence to a single application). + +@internalComponent +@released since v9.2 + */ + { +public: + static CSIPTransitionEngineBundle* NewL(TUid aAppUid); + ~CSIPTransitionEngineBundle(); + + CSIPTransitionEngine* FindOrCreateL(TUint32& aProfileId); + TInt Detach(CSIPTransitionEngine* aTE); + TUint32 DefaultProfileId(); + // From MSIPObserver + void IncomingRequest( TUint32 aIapId, CSIPServerTransaction* aTransaction ); + void TimedOut( CSIPServerTransaction& aSIPServerTransaction ); + //From MSIPProfileRegistryObserver + void ProfileRegistryEventOccurred(TUint32 aProfileId, TEvent aEvent); + void ProfileRegistryErrorOccurred(TUint32 aProfileId, TInt aError); + TUid GetUID(); + +private: + void ConstructL(); + CSIPTransitionEngineBundle(TUid aAppUid); + + RPointerArray iTEs; + CSIP* iSip; + CSIPProfileRegistry* iProfileRegistry; + TUid iAppUid; + __FLOG_DECLARATION_MEMBER; + }; + +inline CSIPTransitionEngineBundle::CSIPTransitionEngineBundle(TUid aAppUid) +:iAppUid(aAppUid) + { + __FLOG_OPEN(KSIPStateMachineLogTag1, KSIPStateMachineLogTag2); + __FLOG_1(_L("CSIPTransitionEngineBundle %08x:\tCSIPTransitionEngineBundle"), this); + } + + +inline TUid CSIPTransitionEngineBundle::GetUID() + { + return iAppUid; + } + +#endif