mtpdataproviders/mtppictbridgedp/inc/cptpserver.h
changeset 0 d0791faffa3f
--- /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 <e32svr.h>   
+#include <mtp/cmtptypeobjectinfo.h>
+
+#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<KMTPMaxPtpFolderPathLength> iPtpFolder;
+    CMTPPictBridgePrinter* iPrinterP;  // owned
+    TInt iNumSession;
+    MMTPDataProviderFramework& iFramework;
+    CMTPPictBridgeDataProvider& iDataProvider;
+    RPointerArray<CMTPObjectMetaData> iTemporaryObjects;
+    TBool iMtpSessionOpen;
+    CPtpSession* iSessionOpenNotifyClientP;
+    CFileMan*          iFileMan;
+    /**
+    FLOGGER debug trace member variable.
+    */
+    __FLOG_DECLARATION_MEMBER_MUTABLE;
+    };
+#endif // PTPSERVER_H
+