diff -r 0aa8cc770c8a -r 4a793f564d72 connectivitymodules/SeCon/plugins/ftp/inc/sconftpplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/connectivitymodules/SeCon/plugins/ftp/inc/sconftpplugin.h Wed Sep 01 12:20:56 2010 +0100 @@ -0,0 +1,194 @@ +/* +* 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: File Transfer Profile Plug-in header file +* +*/ + + +#ifndef _SCONFTPPLUGIN_H +#define _SCONFTPPLUGIN_H + +#include +#include + +#include "sconshutdownwatcher.h" + +// forward declaration +class CSConFTP; +class CSConServiceTimer; +// CLASS DECLARATION + +/* +* File Transfer Profile Plugin class +* +*/ + +class CSConFTPplugin : public CSrcsInterface, public MObexServerNotify, + public MShutdownObserver + { + public: + static CSConFTPplugin* NewL(); + ~CSConFTPplugin(); + + /** + * 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(); + + void ConstructL(); + CSConFTPplugin(); + + private: + RLibrary iFTPlib; + CObexBufObject* iObject; + CBufFlat* iBuffer; + CSConFTP* iFTPHandler; + TInt iPutError; + TBool iSessionActive; + CSConServiceTimer* iServiceTimer; + TBool iStartTimer; + TSrcsMediaType iMediaType; + CObexFileObject* iFileObject; + 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