wmdrm/wmdrmengine/wmdrmfileserver/server/inc/wmdrmfileserver.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:27 +0200
changeset 0 95b198f216e5
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2007 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:  Server definitions
*
*/


#ifndef __WMDRMFILESERVER_H
#define __WMDRMFILESERVER_H

#include <e32base.h>
#include <f32file.h>
#include "wmdrmfileserver.h"
#include "wmdrmfileserverclient.h"
#include "wmdrmfsclientserver.h"

// Max size of the filenames handled by this server
const TInt KFileNameSize = 128;

// Panic codes for session errors
enum TWmDrmPanic
	{
	EPanicBadDescriptor,
	EPanicIllegalFunction
	};

void PanicClient( const RMessagePtr2& aMessage,TWmDrmPanic TWmDrmPanic );

class CWmDrmFileServer : public CServer2
	{
public:
    /* Create a new file server object and push it onto the cleanup stack
     */
	static CServer2* NewLC();

    /* Destructor.
     */
    ~CWmDrmFileServer();

    /* Return a reference to the shared file server handle
     *
     * @return File server handle
     */
    RFs& Fs();

private:
    /* Private constructor.
     */
    CWmDrmFileServer();
    
    /* Second level constructor.
     */
	void ConstructL();

    /* Create a new session
     *
     * @param aVersion  Client version
     * @param aMessage  IPC message (ignored)
     * @return new session object
     */
	CSession2* NewSessionL( const TVersion& aVersion, const RMessage2& aMessage ) const;

    // Own: Common file server object
	RFs iFs;
	};

#endif