diff -r 000000000000 -r d0791faffa3f mtpdataproviders/mtppictbridgedp/inc/cptpserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mtpdataproviders/mtppictbridgedp/inc/cptpserver.h Tue Feb 02 01:11:40 2010 +0200 @@ -0,0 +1,106 @@ +// 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: +// + +/** + @file + @internalComponent + */ + + +#ifndef PTPSERVER_H +#define PTPSERVER_H + + +#include "s60dependency.h" + +#include +#include + +#include "ptpdef.h" +#include "rptp.h" +#include "cptpsession.h" +#include "cmtppictbridgedp.h" + +//FORWARD DECLARATION + +class MMTPDataProviderFramework; +class TMTPTypeEvent; +class CMTPPictBridgePrinter; +class CMTPObjectMetaData; +class CFileMan; + +static const TInt KMTPMaxPtpFolderPathLength = 256; + +/** +* A server class to initialize server. +* +* @since S60 5.2 +*/ +NONSHARABLE_CLASS(CPtpServer) : public CServer2 + { + +public: + static CPtpServer* NewL(MMTPDataProviderFramework& aFramework, CMTPPictBridgeDataProvider& aDataProvider); + ~CPtpServer(); + +public:// from CServer2, creates a new session. + CSession2* NewSessionL( const TVersion& aVersion, const RMessage2& aMessage ) const; + +public: + const TDesC& PtpFolder(); + + void GetObjectHandleByNameL(const TDesC& aNameAndPath, TUint32& aHandle); + void GetObjectNameByHandleL(TDes& aNameAndPath, const TUint32 aHandle); + + void SendEventL(TMTPTypeEvent& ptpEvent); + void AddTemporaryObjectL(const TDesC& aPathAndFileName, TUint32& aHandle); + void RemoveTemporaryObjects(); + void RemoveObjectL(const TDesC& aSuid); + void NotifyOnMtpSessionOpen(CPtpSession* aSession); + + inline CMTPPictBridgePrinter* Printer() const{ return iPrinterP; } + inline TInt NumSession() const { return iNumSession; } + inline void IncrementSessionCount(){ iNumSession++; } + inline void DecrementSessionCount(){ iNumSession--; } + inline TUint32 DeviceDiscoveryHandle() const{ return iDataProvider.DeviceDiscoveryHandle(); } + inline TBool MtpSessionOpen() const{ return iMtpSessionOpen; } + + MMTPDataProviderFramework& Framework() const; + + void MtpSessionOpened(); + void MtpSessionClosed(); + void CancelNotifyOnMtpSessionOpen(CPtpSession* aSession); + +private: + CPtpServer(MMTPDataProviderFramework& aFramework, CMTPPictBridgeDataProvider& aDataProvider); + void ConstructL(); + +private: + TBuf iPtpFolder; + CMTPPictBridgePrinter* iPrinterP; // owned + TInt iNumSession; + MMTPDataProviderFramework& iFramework; + CMTPPictBridgeDataProvider& iDataProvider; + RPointerArray iTemporaryObjects; + TBool iMtpSessionOpen; + CPtpSession* iSessionOpenNotifyClientP; + CFileMan* iFileMan; + /** + FLOGGER debug trace member variable. + */ + __FLOG_DECLARATION_MEMBER_MUTABLE; + }; +#endif // PTPSERVER_H +