diff -r 819e59dfc032 -r 2d9cac8919d3 filebrowser/fileopserver/inc/FBFileOpServer.h --- a/filebrowser/fileopserver/inc/FBFileOpServer.h Mon Oct 04 10:09:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -/* -* Copyright (c) 2009 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: -* -*/ - - -#ifndef __FBFILEOPSERVER_H__ -#define __FBFILEOPSERVER_H__ - -#include -#include -#include "FBFileOpClientServer.h" - -// needed for creating server thread. -//const TUint KDefaultHeapSize=0x10000; - -// reasons for server panic -enum TMyPanic - { - EPanicBadDescriptor, - EPanicIllegalFunction - }; - -class CShutdown : public CTimer - { - enum {KMyShutdownDelay=0x200000}; // approx 2s - -public : - inline CShutdown(); - inline void ConstructL(); - inline void Start(); - -private : - void RunL(); - }; - -//********************************** -//CFBFileOpServer -//********************************** -/** -Our server class - an active object - and therefore derived ultimately from CActive. -It accepts requests from client threads and forwards -them to the client session to be dealt with. It also handles the creation -of the server-side client session. -*/ -class CFBFileOpServer : public CServer2 - { - -public : - static CServer2* NewLC(); - void AddSession(); - void DropSession(); - -protected : - -private : - CFBFileOpServer(); - void ConstructL(); - CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const; - -public : - -private : - TInt iSessionCount; - CShutdown iShutdown; - - }; - -//********************************** -//CRequestObserver -//********************************** -/** -This class is for monitoring asynchronous request -and for completing related RMessage2 object. -*/ -class CRequestObserver : public CActive - { -public: - CRequestObserver( TInt aPriority ); - virtual ~CRequestObserver(); - - void StartWaiting( const RMessage2& aMsg ); - -private: - // from CActive - void RunL(); - void DoCancel(); - -private: - RMessage2 iMsg; - }; - - -//********************************** -//CFBFileOpServerSession -//********************************** -/** -This class represents a session with the server. -Functions are provided to respond appropriately to client messages. -*/ -class CFBFileOpServerSession : public CSession2, - public MFileManObserver - { - -public : - CFBFileOpServerSession(); - -private: // From MFileManObserver - - TControl NotifyFileManStarted(); - TControl NotifyFileManOperation(); - TControl NotifyFileManEnded(); - -protected : - // panic the client - void PanicClient(const RMessage2& aMessage,TInt aPanic) const; - -private : - ~CFBFileOpServerSession(); - inline CFBFileOpServer& Server(); - void CreateL(); - - //service requests - void ServiceL(const RMessage2& aMessage); - void DispatchMessageL(const RMessage2& aMessage, TBool& aComplete); - - void CopyL(const RMessage2& aMessage); - void RenameL(const RMessage2& aMessage); - void AttribsL(const RMessage2& aMessage); - void RmDirL(const RMessage2& aMessage, TBool& aComplete); - void DeleteL(const RMessage2& aMessage); - void MkDirAllL(const RMessage2& aMessage); - void CreateEmptyFileL(const RMessage2& aMessage); - void EraseMBRL(const RMessage2& aMessage); - void PartitionDriveL(const RMessage2& aMessage); - - void ServiceError(const RMessage2& aMessage, TInt aError); - - void CancelOp(); - -private : - RFs iFs; - RFile iFile; - CFileMan* iFileMan; - MFileManObserver::TControl iFileManObserverResult; - CRequestObserver* iReqObserver; - }; - - -//********************************** -//Inlines -//********************************** - -inline CShutdown::CShutdown() - :CTimer(-1) - {CActiveScheduler::Add(this);} - -inline void CShutdown::ConstructL() - {CTimer::ConstructL();} - -inline void CShutdown::Start() - {After(KMyShutdownDelay);} - -inline CFBFileOpServer::CFBFileOpServer() - :CServer2(0,ESharableSessions) - {} - -inline CFBFileOpServerSession::CFBFileOpServerSession() - {} - -inline CFBFileOpServer& CFBFileOpServerSession::Server() - {return *static_cast(const_cast(CSession2::Server()));} - -#endif