Update contrib.
1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #ifndef __UPDATESERVERPROVIDER_H__
17 #define __UPDATESERVERPROVIDER_H__
29 The class is aimed for use within WSERV process only by the Content update receiver.
30 It provides interface for registering Content update receiver instances for each screen.
32 class MSurfaceUpdateServerProvider
36 Assign Content update receiver instance to particular screen.
37 The following calls of this function for the same screen will override the previous.
39 @param aScreen - screen number, associated with the output,
40 varies from 0 to number of screens present - 1
41 @param aUpdateReceiver - pointer to a Content update receiver interface associated
42 with the aScreen. NULL signifies that particular screen doesn't
43 correspond any composition receiver. The ownership of this parameter
44 will not be transferred.
45 @param aPriority - priority of the Content update receiver.
46 The higher the number is the higher the priority of the screen.
47 This number will be used to identify the master screen for any particular surface.
48 It is not acceptable to have more than one screen with the same priority.
49 @return KErrNone if an operation is successful.
50 @return KErrArgument Arguments don’t lie in expected range.
51 @return KErrNotReady The server has not been started.
52 @return KErrAlreadyExists Another Content update receiver with the same priority number has already been registered with the SUS. Any other system error codes otherwise.
53 @panic EUpdateServPanicRegister If another registration method has already been used.
55 virtual TInt Register(TInt aScreen, CBase* aUpdateReceiver, TInt aPriority) = 0;
57 friend class CTSurfaceUpdateStep;
59 Close the Surface Update Server
60 This function is intended for test/debugging only
61 The implementation will do nothing in released builds
63 WARNING: Function for internal use ONLY. Compatibility is not guaranteed in future releases.
65 virtual void Terminate() = 0;
69 Spawn a thread within WSERV process. This will lead to starting the surface update server in it
73 @param aUpdateProvider - [out] reference pointer to surface update server provider,
74 which will be set when the server is started. The variable will be used to registry
75 content update receiver instances. The caller doesn't acquire the ownership of this instance,
76 thus mustn't delete it. The pointer will be valid until server is operating,
79 @return KErrNone if an operation is successful, any other system error codes otherwise
81 IMPORT_C TInt StartSurfaceUpdateServer(MSurfaceUpdateServerProvider*& aSurfaceUpdateServerProvider);