dosservices/tsrc/public/basic/dosservertestplugin/inc/Ctfdoscontrol.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 17:57:16 +0300
branchRCL_3
changeset 9 21e939dd208a
parent 0 4e1aa6a622a0
child 15 b2f9f823b5fb
permissions -rw-r--r--
Revision: 201015 Kit: 201017

/*
* Copyright (c) 2004 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: 
*     Definition of CTFDosControl
*
*/


#ifndef __CTFDOSCONTROL_H__
#define __CTFDOSCONTROL_H__

#include <dossvrservices.h>
#include "dosclishareddata.h"
#include <ctfstub.h>
#include "mtfdoscontrol.h"
#include "tfdostypes.h"
#include <f32file.h>
#include <e32property.h>
class RTFDosExtension;

struct TTFDosControlTestCaseState;
class CTFEventListener;
class CSdDisk;

const TInt KTFStubTypeDosServerControl = 560;

class CTFDosControl : public CTFStub, public MTFDosControl
    {
public:
    CTFDosControl( void );
    virtual ~CTFDosControl( void );
    
private:
    CTFDosControl( const CTFDosControl& aStub );
    CTFDosControl& operator=( const CTFDosControl& aStub );
    
public:
    void InitializeL( void );
    
public:
    void CallDosFunctionL( TTFDosServerControlTestCaseState& aParameter );
    TInt ParameterCount( TTFDosFunction aFunction ) const;
    TBool ParameterBounds( TTFDosFunction aFunction, TInt* aMin, TInt* aMax ) const;
    void NotifyDosEvent( TInt aEvent, TInt aParameter );

private:
    void ResetDosServices( void );

    
private:
    RDosServer iDosServer;
    
    RDosSharedData* iDosSharedData;
   	CSdDisk* iSdDisk;
    
    RTFDosExtension* iDosExtension;
    CTFEventListener* iEventListener;
    TBool iInitialized;
    TReal64 iFreeDiskSpace;

    RFs iFs;
	RFile iFile;
	
	TInt iIndex;
    
    };

class RTFDosExtension : public RDosExtension
    {
    public:
        /**
        * Calls a synchronous RDosExtension::CallFunction
        */
        TInt CallSyncDosExtFunction( const TInt& aFunc, TAny* aParam, TInt aParLength, TBool aAutoComplete );

        /**
        * Calls an asynchronous RDosExtension::CallFunction
        */
        TInt CallAsyncDosExtFunction( TRequestStatus& aStatus, TInt aFunc, TAny* aParam, TInt aParLength, TBool aAutoComplete );
    };
    

#endif