First public contribution.
     1 // Copyright (c) 2007-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 MMRCSERVER_H__
 
    17 #define MMRCSERVER_H__
 
    21 #include <a3f/a3fbase.h>
 
    22 #include <e32msgqueue.h>
 
    23 #include "mmrcclientserver.h"
 
    31 class CMMRCServerSession;
 
    32 class CMMRCServerController;
 
    33 class MMultimediaResourceControlObserver;
 
    34 class CFourCCConvertor;
 
    36 // reasons for server panic
 
    46 This class implements the MMRC Server. 
 
    47 The main purpose of this class is to implement the MMRC Server
 
    49 NONSHARABLE_CLASS( CMMRCServer ): public CServer2
 
    53 	 * Constructs, and returns a pointer to, a new CMMRCServer object.
 
    55 	 * @return CMMRCServer* A pointer to newly created utlitly object.
 
    57 	static CMMRCServer* NewL(); 
 
    60 	 * Constructs, leaves object on the cleanup stack, and returns a pointer
 
    61 	 * to, a new CMMRCServer object.
 
    63 	 * @return CMMRCServer* A pointer to newly created utlitly object.
 
    65 	static CMMRCServer* NewLC();
 
    73 	// The thread function executed by the server
 
    74 	static TInt ThreadFunction(TAny* aStarted);
 
    76 	// Creates a new session with the server; the function
 
    77 	// implements the pure virtutal function 
 
    78 	// defined in class CServer2
 
    79 	CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
 
    81 	// The thread function executed by the server
 
    82 	static TInt ThreadFunctionL(TAny* aStarted);
 
    84 	// Function to panic the server
 
    85 	static void PanicServer(TInt aPanic);
 
    88 	 * By default Symbian 2nd phase constructor is private.
 
    93 	 * By default Symbian 2nd phase constructor is private.
 
    99 	CMMRCServerController* iMMRCServerController;	//MMRC Server controller
 
   102 	CFourCCConvertor* iFourCCConvertor;
 
   106 #endif //__MMRCSERVER_H__