sipproviderplugins/sipprovider/sipstatemachine/inc/TransitionEngineMgr.h
changeset 0 307788aac0a8
--- /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<CSIPTransitionEngineBundle> 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<CSIPTransitionEngine> 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