dosservices/dosserver/inc/dosshareddatabase.h
author Tapani Kanerva <Tapani.Kanerva@nice.fi>
Thu, 11 Nov 2010 14:35:29 +0000
branchRCL_3
changeset 86 79105dd92dc2
parent 0 4e1aa6a622a0
permissions -rw-r--r--
Export meaningful default HWRM policy files, to fix Bug 3852

/*
* Copyright (c) 2002 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: 
*    This is the definition for CDosharedDataBase class.
*
*/



#ifndef __DOSSHAREDDATABASE_H__
#define __DOSSHAREDDATABASE_H__

// INCLUDES
#include "dosservice.h"
//#include <e32base.h>
#include <s32file.h>


// CONSTANTS
//const TInt KSDReserveFileMaxSize = 64*1024;


// FORWARD DECLARATIONS
class CSharedDataFileSystemNotifier;

/**
* Server side object for RDosAudio class in the client side and the plug-in
* side Audio service derives from this,
*/
class CDosSharedDataBase : public CDosService
{
public:

	IMPORT_C static CDosSharedDataBase* NewL(CSharedDataFileSystemNotifier* fileSystemNotifier);
	IMPORT_C static CDosSharedDataBase* NewLC(CSharedDataFileSystemNotifier* fileSystemNotifier);
	
	virtual ~CDosSharedDataBase();

private:
	/**
	* Processes the message sent by the client.
	* @param aMessage Client-server message.
	* @return Symbian error code.
	*/

	IMPORT_C TInt ExecuteMessageL(const RMessage2& aMessage);

    void ConstructL(CSharedDataFileSystemNotifier* fileSystemNotifier);

protected:

	/**
	* Provide default implementation for plug-in methods incase plug-in
	* module doesn't provide the actual implementation.
	*/

    void RequestFreeDiskSpace( TInt* aRequest );

    void RequestFreeDiskSpaceCancel( TInt* aRequest );
        
    /**
    * Adjusts the size of the reserve file as close to the maximum size
    * as possible so that the current minimum free disk space
    * request is still fulfilled.
    *
    * @param aRequiredFreeDiskSpace current minimum requirement for the
    *                               amount of free disk space
    */
    void SetReserveFileSize( const TInt aRequiredFreeDiskSpace );
    
    


private:
    // free disk space notifier
    //CSharedDataFileSystemNotifier* iFileSystemNotifier;

    // highest outstanding free disk space request
    //TInt* iCurrentFreeDiskSpaceRequest;
        
    //TInt iFreeDiskSpaceRequest;
    const RMessage2* iMessage;  // Kernel owns
    CSharedDataFileSystemNotifier* iFileSystemNotifier;
    RFs iFs;
    TInt iFreeDiskSpaceRequest;

//	inline CSharedDataServer* Server();

    // friend classes
    friend class CSharedDataFileSystemNotifier;
};

#endif //__DOSSHAREDDATABASE_H__