epoc32/include/mmf/common/mmfcontrollerframework.h
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
--- a/epoc32/include/mmf/common/mmfcontrollerframework.h	Wed Mar 31 12:27:01 2010 +0100
+++ b/epoc32/include/mmf/common/mmfcontrollerframework.h	Wed Mar 31 12:33:34 2010 +0100
@@ -1,9 +1,9 @@
 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
@@ -31,28 +31,6 @@
 _LIT(KMMFControllerProxyServerName, "MMFControllerProxyServer-");
 
 /**
-@internalComponent
-*/
-#define KMMFControllerProxyVersion TVersion(7,1,1)
-
-/**
-@internalComponent
-*/
-const TInt KMMFControllerProxyMaxHeapSize = 0x1000000;//16MB
-
-/**
-@internalComponent
-*/
-const TInt KMMFControllerProxyMaxCachedMessages = 10;
-
-/**
-@internalComponent
-
-Signals that the message is destined for the controller proxy
-*/
-const TInt KMMFObjectHandleControllerProxy = -1;
-
-/**
 @publishedAll
 @released
 
@@ -67,48 +45,6 @@
 Null, or invalid, object handle
 */
 const TInt KMMFObjectHandleNull = 0;
-/**
-@internalComponent
-
-The first valid object handle.  The MMF Object container will
-begin iterating from here when generating object handles.
-*/
-const TInt KMMFObjectHandleFirstValid = 1;
-
-/**
-@internalComponent
-*/
-const TInt KMmfControllerThreadShutdownTimeout = 20000000;	// 20 seconds
-
-/**
-@internalComponent
-
-The UID and messages associated with the controller proxy interface.
-*/
-const TUid KUidInterfaceMMFControllerProxy = {0x101F77E7};
-
-/**
-@internalComponent
-
-Struct to allow RMMFController to pass several parameters to new CControllerProxyServer threads.
-*/
-struct TControllerProxyServerParams 
-	{
-	RServer2*	iServer;
-	TBool		iUsingSharedHeap;
-	};
-	
-
-/**
-@internalComponent
-*/
-enum TMMFControllerProxyMessages
-	{
-	EMMFControllerProxyLoadControllerPluginByUid,
-	EMMFControllerProxyReceiveEvents,
-	EMMFControllerProxyCancelReceiveEvents
-	};
-
 
 /**
 @publishedAll
@@ -464,7 +400,7 @@
 	};
 
 /**
-@internalComponent
+@publishedAll
 
 Mixin class used by CLogonMonitor to inform about its state
 
@@ -480,7 +416,7 @@
 	};
 	
 /**
-@internalComponent
+@publishedAll
 
 RSessionBase-based client class to handle the creation of the controller thread and
 message sending over IPC.
@@ -777,7 +713,7 @@
 	/**
 	Creates the new thread
 	*/
-	TInt DoCreateSubThread(RServer2* aServer2, TUint aMaxHeapSize, TBool aUseSharedHeap);
+	TInt DoCreateSubThread(RServer2* aServer2, TUint aMaxHeapSize, TBool aUseSharedHeap, TUint aStackSize);
 
 	/**
 	Determines the maximum heap size required by the selected controller
@@ -822,7 +758,7 @@
 	DRM server process. Once the new MMF Controller server is running, a MMF Controller server 
 	session will be created and the handle is passing back.
 	*/
-	TInt DoCreateSessionForNoDRMCapClient(TUint aMaxHeapSize, TBool aUseSharedHeap);
+	TInt DoCreateSessionForNoDRMCapClient(TUint aMaxHeapSize, TBool aUseSharedHeap, TUint aStackSize);
 	
 private:
 	enum
@@ -863,55 +799,6 @@
 	};
 
 /**
-@internalComponent
-
-Used to Kill the controller thread either immediately or after a timeout.
-Used by the controller thread on startup to prevent orphaning if no sessions are created to it.
-*/
-class CMMFControllerProxyShutdown : public CTimer
-	{
-	enum {EMMFControllerProxyShutdownDelay=1000000};	// 1s
-public:
-
-	/**
-	Create a new shutdown timer.
-
-	This method can leave with one of the system-wide error codes.
-
-	@since 7.0s
-	*/
-	static CMMFControllerProxyShutdown* NewL();
-
-	/**
-	Start the shutdown timer.  The RunL of this active object will be called after
-	EMMFControllerProxyShutdownDelay microseconds.
-
-	@since 7.0s
-	*/
-	void Start();
-
-	/**
-	Shut down the controller thread immediately.
-	
-	Calls CActiveScheduler::Stop().
-
-	@since 7.0s
-	*/
-	void ShutdownNow();
-private:
-	CMMFControllerProxyShutdown();
-	void ConstructL();
-
-	/**
-	Calls ShutdownNow().
-
-	@since 7.0s
-	*/
-	void RunL();
-	};
-
-
-/**
 @publishedAll
 @released
 
@@ -932,337 +819,8 @@
 	virtual TInt SendEventToClient(const TMMFEvent& aEvent) = 0;
 	};
 
-/**
-@internalComponent
-
-Used to hold on to an TMMFMessage so we can complete it asynchronously to 
-send an event to the client.
-
-@since 7.0s
-*/
-class CMMFEventReceiver : public CBase
-	{
-public:
-
-	/**
-	Constructs a new event receiver.
-	
-	This method may leave with one of the system-wide error codes.
-
-	@param  aMessage
-	        The message to be completed when an event occurs.
-
-	@return A pointer to the newly created event receiver.
-
-	@since  7.0s
-	*/
-	static CMMFEventReceiver* NewL(const TMMFMessage& aMessage);
-
-	/**
-	Destructor.
-
-	Completes the message with KErrCancel if the message hasn't already been completed.
-
-	@since 7.0s
-	*/
-	~CMMFEventReceiver();
-
-	/**
-	Sends an event to the client.
-
-	@param  aEvent
-	        The event.
-
-	@since  7.0s
-	*/
-	void SendEvent(const TMMFEvent& aEvent);
-private:
-
-	/**
-	Constructor.
-
-	@param  aMessage
-	        The message to be completed when an event occurs.
-
-	@since  7.0s
-	*/
-	CMMFEventReceiver(const TMMFMessage& aMessage);
-private:
-	/** 
-	The message to be completed when an event occurs.
-	*/
-	TMMFMessage iMessage;
-	};
-
-
-
-/**
-@internalComponent
-
-The controller proxy server.
-
-The main server inside the controller thread, responsible for creating and destroying the single
-session used to transmit messages from the client to the server.
-
-Every controller plugin runs in its own thread, and has its own controller proxy server.
-
-@since 7.0s
-*/
-class CMMFControllerProxyServer : public CMmfIpcServer
-	{
-public:
-	/**
-	Construct the server.
-
-	This method may leave with one of the system-wide error codes.
-
-	@return The newly created server.
-
-	@since  7.0s
-	*/
-	static CMMFControllerProxyServer* NewL(RServer2* aServer2 );
-
-	/**
-	Destructor.
-
-	@since 7.0s
-	*/
-	~CMMFControllerProxyServer();
-
-	/**
-	Static thread function.
-
-	The address of this function is passed into RThread::Create.
-
-	Unpackages the startup parameters and calls DoStartThreadL().
-
-	@param  aAny
-	        A pointer to the packaged startup parameters.
-
-	@return One of the system-wide error codes.
-
-	@since 7.0s
-	*/
-	IMPORT_C static TInt StartThread(TAny* aParam);
-
-	/**
-	Called by the active scheduler when the ServiceL of the session leaves.
-	Completes the message with the error and restarts the server.
-
-	@param  aError
-	        The error that the session ServiceL left with.
-
-	@return  KErrNone
-	@since 7.0s
-	*/
-	TInt RunError(TInt aError);
-
-	/**
-	Signals that the session has been created.
-
-	Stops the shutdown timer.
-
-	@since 7.0s
-	*/
-	void SessionCreated();
-
-	/**
-	Signals that the session has been destroyed.
-	Causes the server to shut down immediately.
-
-	@since 7.0s
-	*/
-	void SessionDestroyed();
-private:
-
-	/**
-	Thread startup code.
-
-	Creates the cleanup stack, installs the active scheduler and creates the server.
-	Once all this is completed successfully, it signals the success back to the client.
-
-	This function may leave with one of the system-wide error codes.
-
-	@param  aParams
-	        Used to signal startup success back to the client.
-
-	@since 7.0s
-	*/
-	static void DoStartThreadL(TAny* aParam);
-
-	/**
-	Creates a new session.  Only one session may be created with the ControllerProxyServer.
-
-	This function may leave with one of the system-wide error codes.
-
-	@param  aVersion
-	        The version number of the session.
-
-	@return A pointer to the new session.
-
-	@since 7.0s
-	*/
-	CMmfIpcSession* NewSessionL(const TVersion& aVersion) const;
-
-	/** 
-	Constructor.
-
-	@since 7.0s
-	*/
-	CMMFControllerProxyServer();
-
-	/**
-	Second phase constructor.
-
-	@since 7.0s
-	*/
-	void ConstructL(RServer2* aServer2);
-	
-	/**
-	Renaming Controller Proxy Server name
-	
-	@since 9.2
-	*/
-	static void RenameControllerProxyThread();
-
-private:
-	/** 
-	The timer used to shut down the server in case the client fails to connect a session.
-	*/
-	CMMFControllerProxyShutdown* iShutdownTimer;
-	/** 
-	Indicates whether we have a session connected.  Only one session is allowed to connect to the server.
-	*/
-	TBool iHaveSession;
-	};
-
-class CMMFController;
-
-/**
-@internalComponent
-
-The controller proxy session.
-
-Only one session can be connected to a controller proxy server.
-
-@since 7.0s
-*/
-class CMMFControllerProxySession : public CMmfIpcSession, public MAsyncEventHandler
-	{
-public:
-
-	/**
-	Construct the session.
-
-	This method may leave with one of the system-wide error codes.
-
-	@return The newly created server.
-
-	@since 7.0s
-	*/
-	static CMMFControllerProxySession* NewL();
-
-	/**
-	Second phase constructor called by the CServer base class.
-
-	This function may leave with one of the system-wide error codes.
-
-	@param  aServer
-	        A reference to the server to which this session is attached.
-
-	@since  7.0s
-	*/
-	void CreateL(const CMmfIpcServer& aServer);
-
-	/**
-	Destructor.
-	*/
-	~CMMFControllerProxySession();
-
-	/**
-	Called by the CServer baseclass when a request has been made by the client.
-
-	This function may leave with on of the system-wide error codes. If
-	a leave occurs, the message will be automatically completed by the
-	RunError() of the Controller Proxy Server.
-
-	@param  aMessage
-	        The request to be handled.  The controller proxy session will create
-	        a TMMFMessage from this, and pass on the request to the controller
-	        base class to handle.
-
-	@since	7.0s
-	*/
-	void ServiceL(const RMmfIpcMessage& aMessage);
-
-	/**
-	Derived from MAsyncEventHandler.
-
-	@see MAsyncEventHandler
-
-	@since	7.0s
-	*/
-	TInt SendEventToClient(const TMMFEvent& aEvent);
-private:
-	/**
-	Constructor
-	*/
-	CMMFControllerProxySession();
-
-	/**
-	Handle a request from the client to register to receive events from the controller framework.
-
-	This function may leave with one of the system-wide error codes.
-
-	@param  aMessage
-	        The request to be handled.
-
-	@return ETrue if the message is to be completed now, EFalse if the message will be completed 
-	        later.
-	*/
-	TBool ReceiveEventsL(TMMFMessage& aMessage);
-
-	/**
-	Handle a request from the client to stop receiving events from the controller framework.
-
-	This function may leave with one of the system-wide error codes.
-
-	@param  aMessage
-	        The request to be handled.
-
-	@return ETrue if the message is to be completed now, EFalse if the message will be completed later.
-	*/
-	TBool CancelReceiveEvents(TMMFMessage& aMessage);
-
-	/**
-	Handle a request from the client to load a controller plugin.
-
-	This function may leave with one of the system-wide error codes.
-
-	@param  aMessage
-	        The request to be handled.
-
-	@return ETrue if the message is to be completed now, EFalse if the message will be completed later.
-	*/
-	TBool LoadControllerL(TMMFMessage& aMessage);
-private:
-	/** 
-	The controller plugin. 
-	*/
-	CMMFController* iController;
-	/** 
-	A pointer to the server. 
-	*/
-	CMMFControllerProxyServer* iServer;
-	/** 
-	The event receiver.  Used to send events to the client.
-	*/
-	CMMFEventReceiver* iEventReceiver;
-	/** 
-	The events waiting to be sent to the client.
-	*/
-	RArray<TMMFEvent> iEvents;
-	};
-
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <mmf/common/mmfcontrollerframeworkclasses.h>
+#endif
 
 #endif