diff -r 7fdc9a71d314 -r 8ad140f3dd41 hti/HtiServicePlugins/HtiIpProxyServicePlugin/inc/HtiIpProxyServicePlugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hti/HtiServicePlugins/HtiIpProxyServicePlugin/inc/HtiIpProxyServicePlugin.h Wed Oct 13 16:17:58 2010 +0300 @@ -0,0 +1,202 @@ +/* +* 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: Implementation of ECOM plug-in service interface providing +* the IP-Proxy service. +* +*/ + + +#ifndef HTIIPPROXYSERVICEPLUGIN_H__ +#define HTIIPPROXYSERVICEPLUGIN_H__ + +// INCLUDES +#include +#include "MSocket.h" +#include "MHostConnection.h" +#include "MAbstractConnection.h" + +// FORWARD DECLARATIONS +class MSocketObserver; +class MIPProxyEngine; +class CDesC8Array; +class MHostConnectionObserver; + +// CLASS DECLARATION +/** +* IP-Proxy plugin implementation +*/ +class CHtiIpProxyServicePlugin : + public CHTIServicePluginInterface, + public MAbstractConnection, + public MSocket, + public MHostConnection + { + public: + static CHtiIpProxyServicePlugin* NewL(); + + // Interface implementation + + /** + * Called by HTI-framework to initialize this plugin + */ + void InitL(); + + /** + * Return busy state status + * + * @return ETrue when busy otherwise EFalse + */ + TBool IsBusy(); + + /** + * Process either control or data message depending on aPriority + * + * @param aMessage message with commands or data + * @param aPriority indicates type of aMessage + */ + void ProcessMessageL( const TDesC8& aMessage, + THtiMessagePriority aPriority ); + + /** + * Available memory notification from HTI-framework + * + * @param aAvailableMemory amount of available memory for message dispatching + */ + void NotifyMemoryChange( TInt aAvailableMemory ); + + public: // From MAbstractConnection + /** + * Get pointer to current socket instance. + * + * @return Pointer to current RSocket object. The ownership always + * remains in the class which derives from this interface. + */ + virtual MSocket* GetSocket(); + + /** + * Get pointer to current host connection instance. + * + * @return Pointer to current RSocket object. The ownership always + * remains in the class which derives from this interface. + */ + virtual MHostConnection* GetHostConnection(); + + public: // From MSocket + /** + * @return RSocket object + */ + virtual RSocket* GetRSocket(); + + /** + * @return Local TCP port. + */ + virtual TUint LocalPort() const; + + /** + * @return Remote TCP port. + */ + virtual TUint RemotePort() const; + + /** + * Sets observer. + * + * @param aObserver Pointer to observer. + */ + virtual void SetObserver( MSocketObserver* aObserver ); + + /** + * Sets the ownership mode of RSocket object. If set ETrue + * the socket will be closed and RSocket object will be deleted + * in the destruction. + * + * @param aHasOwnership Ownership mode. + */ + virtual void SetSocketOwnershipMode( TBool aHasOwnership ); + + /** + * Starts receiving data. + */ + virtual void IssueRead(); + + /** + * Cancels all pending requests. + */ + virtual void Cancel(); + + /* + * Returns the protocol information of the socket + */ + virtual void SocketInfo( TProtocolDesc& aDesc ) const; + + /* + * Is this a UDP socket + */ + virtual TBool IsUDP() const; + + public: // From MSocketWriter + /** + * Writes data to socket. + * @param aData Data to be written. + */ + virtual void WriteL( const TDesC8& aData ); + + public: // From MHostConnection + /** + * Starts connecting procedure to host. + */ + virtual void IssueConnectL(); + + /** + * Starts disconnection procedure. + */ + virtual void IssueDisconnect(); + + /** + * Sets observer. + * + * @param aObserver Pointer to observer. + */ + virtual void SetObserver( MHostConnectionObserver* aObserver ); + + /** + * @return Connection state. + */ + virtual TBool IsConnected(); + + /** + * @return Pointer to current RSocket object. The ownership always + * + * remains in this class. + */ + virtual RSocket* Socket(); + + + protected: + CHtiIpProxyServicePlugin(); + virtual ~CHtiIpProxyServicePlugin(); + + void ConstructL(); + + private: + MSocketObserver* iSocketObserver; + MHostConnectionObserver* iHostObserver; + MIPProxyEngine* iProxyEngine; + CDesC8Array* iOutgoingArray; + TBool iBusy; + TBool iConnected; + }; + +#endif // HTIIPPROXYSERVICEPLUGIN_H__ + +// End of File