--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/connectivitymodules/SeCon/plugins/pcconn/inc/sconpcconnplugin.h Tue Feb 02 01:11:40 2010 +0200
@@ -0,0 +1,234 @@
+/*
+* Copyright (c) 2005-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: PC Connectivity plugin header file
+*
+*/
+
+#ifndef _SCONPCCONNPLUGIN_H
+#define _SCONPCCONNPLUGIN_H
+
+#include <obexserver.h>
+#include <SrcsInterface.h>
+#include <apmstd.h>
+
+#include "sconpcconnclient.h"
+#include "sconshutdownwatcher.h"
+
+// forward declaration
+class CSConFTP;
+class CSConServiceTimer;
+class CCatalogsPCConnectivityPlugin;
+
+
+
+class CSConPCConnplugin : public CSrcsInterface, public MObexServerNotify,
+ public MShutdownObserver
+ {
+ public:
+ static CSConPCConnplugin* NewL();
+ virtual ~CSConPCConnplugin();
+
+ /**
+ * Returns active status of OBEX session
+ * @return ETrue if session is active, else EFalse
+ */
+ TBool IsOBEXActive();
+
+ /**
+ * Device is shutting down, abort connection.
+ */
+ void NotifyShutdown();
+
+ private:
+ /**
+ * Loads sconftp.dll module
+ * @return none
+ */
+ void LoadFTPDllL();
+ /**
+ * Closes initialized services
+ * @return none
+ */
+ void Disconnect();
+ /**
+ * Removes spaces and nulls from the end of the string
+ * @param aDes String to be formatted
+ * @return none
+ */
+ void TrimRightSpaceAndNull( TDes8& aDes ) const;
+ /**
+ * Current used transfer media (IR,USB,BT)
+ * @param aMediaType Enumeration indicating the media type
+ * @return none
+ */
+ void SetMediaType( TSrcsMediaType aMediaType );
+ /**
+ * MObexServerNotify implementation
+ * @param aError Error code
+ * @return none
+ */
+ void ErrorIndication( TInt aError );
+ /**
+ * MObexServerNotify implementation
+ * @return none
+ */
+ void TransportUpIndication();
+ /**
+ * MObexServerNotify implementation
+ * @return none
+ */
+ void TransportDownIndication();
+ /**
+ * MObexServerNotify implementation
+ * @param aRemoteInfo Structure containing information used during OBEX
+ * connection
+ * @param aInfo Further information about the requested connection
+ * @return System wide error code that indicates the success of the connection
+ */
+ TInt ObexConnectIndication( const TObexConnectInfo& aRemoteInfo,
+ const TDesC8& aInfo );
+ /**
+ * MObexServerNotify implementation
+ * @param aInfo Contains information about the disconnection
+ * @return none
+ */
+ void ObexDisconnectIndication( const TDesC8& aInfo );
+ /**
+ * MObexServerNotify implementation
+ * @return CObexBaseObject-derived object, which the object being put
+ * will be parsed into.
+ */
+ CObexBufObject* PutRequestIndication();
+ /**
+ * MObexServerNotify implementation
+ * @return System wide error code that indicates the success of the
+ * PUT packet operation.
+ */
+ TInt PutPacketIndication();
+ /**
+ * MObexServerNotify implementation
+ * @return System wide error code that indicates the success of the
+ * PUT packet operation.
+ */
+ TInt PutCompleteIndication();
+ /**
+ * MObexServerNotify implementation
+ * @param aRequiredObject Details about the object the remote client
+ * has requested
+ * @returnObject to return to the client
+ */
+ CObexBufObject* GetRequestIndication( CObexBaseObject
+ *aRequiredObject );
+ /**
+ * MObexServerNotify implementation
+ * @return System wide error code that indicates the success of the
+ * GET packet operation.
+ */
+ TInt GetPacketIndication();
+ /**
+ * MObexServerNotify implementation
+ * @return System wide error code that indicates the success of the
+ * GET packet operation.
+ */
+ TInt GetCompleteIndication();
+ /**
+ * MObexServerNotify implementation
+ * @param aPathInfo SETPATH command parameters
+ * @param aInfo Not currently used
+ * @return System wide error code indicating the success of the
+ * setpath command.
+ */
+ TInt SetPathIndication( const CObex::TSetPathInfo& aPathInfo,
+ const TDesC8& aInfo );
+ /**
+ * SetObexServer
+ * @param aObexServer pass obex server pointer to sevice controller
+ * @return System wide error code.
+ */
+ TInt SetObexServer( CObexServer* aObexServer );
+ /**
+ * MObexServerNotify implementation
+ * @return none
+ */
+ void AbortIndication();
+ /**
+ * Checks if mime type belongs to Catalogs
+ * @return TBool
+ */
+ TBool IsCatalogsMimeType( TDataType aMime );
+
+ void ConstructL();
+ CSConPCConnplugin();
+
+ /**
+ * Handles PCD object. Used for advanced file handling.
+ * @param aDescriptionHeader Contains command code and destination filename
+ * @param aNameHeader Source filename
+ * @return System wide error code.
+ */
+ TInt HandlePCDObjectPut( const TDesC& aDescriptionHeader, const TDesC& aNameHeader );
+
+ /**
+ * Get Capbility object or ConML message from PCConnServer
+ * @param aNameHeader Name information.
+ * @param aTypeHeader Object type header. ConML or Capability object type
+ * @return none
+ */
+ void HandleGetPCConnObjectL( const TDesC& aNameHeader, const TDesC8& aTypeHeader );
+
+ /**
+ * Get Catalogs object
+ * @param aTypeHeader Object type header.
+ * @return none
+ */
+ void HandleGetCatalogsObjectL( const TDesC8& aTypeHeader );
+
+ /**
+ * Get file object
+ * @param aNameHeader requested filename.
+ * @return none
+ */
+ void HandleGetFileObjectL( const TDesC& aNameHeader );
+
+ private:
+ RLibrary iFTPlib;
+ CObexBufObject* iObject;
+ CBufFlat* iBuffer;
+ CSConFTP* iFTPHandler;
+ TInt iPutError;
+ TBool iSessionActive;
+ CSConServiceTimer* iServiceTimer;
+ TBool iStartTimer;
+ TSrcsMediaType iMediaType;
+ CObexFileObject* iFileObject;
+ RSConPCConnSession iPCConnSession;
+ TBool iPCConnSessionConnected;
+ CCatalogsPCConnectivityPlugin* iCatalogs;
+ TBool iCatalogsConnected;
+ HBufC8* iCatalogsMimeType;
+ RPointerArray<TDataType> iMimeArray;
+ TBool iCatalogsMimeTypesExist;
+ TBool iPutPacketIndicationCalled;
+ CShutdownWatcher* iShutdownWatcher;
+ TBool iShutdownInProgress;
+ CObexServer* iObexServer;
+ RSocketServ iSocketServer;
+ RBTPhysicalLinkAdapter iLinkAdapter;
+ private:
+ // Friend class is used,because existing impelentation has been working
+ // properly. Avoiding re-design.
+ friend class CSConServiceTimer;
+ };
+
+#endif // SCONPCCONNPLUGIN_H
\ No newline at end of file