--- 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