hti/HtiServicePlugins/HtiIpProxyServicePlugin/src/HtiIpProxyServicePlugin.cpp
changeset 38 169364e7e4b4
parent 34 7259cf1302ad
child 45 185201be11b0
--- a/hti/HtiServicePlugins/HtiIpProxyServicePlugin/src/HtiIpProxyServicePlugin.cpp	Tue Jul 06 16:05:13 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,363 +0,0 @@
-/*
-* 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:  HtiIpProxyServicePlugin implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include "HtiIpProxyServicePlugin.h"
-#include <HtiDispatcherInterface.h>
-#include <HtiLogging.h>
-#include <badesca.h>
-#include <in_sock.h>
-#include "MSocketObserver.h"
-#include "Mhostconnectionobserver.h"
-#include "CIPProxyEngine.h"
-
-// CONSTANTS
-const static TUid KIpProxyServiceUid = { 0x10210CD3 };
-
-// MACROS
-
-// LOCAL CONSTANTS AND MACROS
-
-// MODULE DATA STRUCTURES
-
-// LOCAL FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// Create instance of concrete ECOM interface implementation
-CHtiIpProxyServicePlugin* CHtiIpProxyServicePlugin::NewL()
-    {
-    CHtiIpProxyServicePlugin* self = new( ELeave ) CHtiIpProxyServicePlugin;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-// Constructor
-CHtiIpProxyServicePlugin::CHtiIpProxyServicePlugin() :
-    iSocketObserver( NULL ),
-    iHostObserver( NULL ),
-    iProxyEngine( NULL ),
-    iOutgoingArray( NULL ),
-    iBusy( EFalse ),
-    iConnected( EFalse )
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin" );
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin" );
-    }
-
-CHtiIpProxyServicePlugin::~CHtiIpProxyServicePlugin()
-    {
-    HTI_LOG_FUNC_IN( "~CHtiIpProxyServicePlugin" );
-
-    if ( iProxyEngine )
-        {
-        iProxyEngine->StopListening();
-        }
-    delete iProxyEngine;
-    delete iOutgoingArray;
-
-    HTI_LOG_FUNC_OUT( "~CHtiIpProxyServicePlugin" );
-    }
-
-// Second phase construction.
-void CHtiIpProxyServicePlugin::ConstructL()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::ConstructL" );
-
-    iOutgoingArray = new( ELeave ) CDesC8ArraySeg( 10 );
-    iProxyEngine = CIPProxyEngine::NewL( this );
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::ConstructL" );
-    }
-
-
-void CHtiIpProxyServicePlugin::InitL()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::InitL" );
-
-    if ( iProxyEngine )
-        {
-        iProxyEngine->StartListening();
-        }
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::InitL" );
-    }
-
-TBool CHtiIpProxyServicePlugin::IsBusy()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::IsBusy" );
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::IsBusy" );
-    return iBusy;
-    }
-
-void CHtiIpProxyServicePlugin::ProcessMessageL( const TDesC8& aMessage,
-                                                THtiMessagePriority /* aPriority */ )
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::ProcessMessageL" );
-
-    iBusy = ETrue;
-
-    __ASSERT_ALWAYS( iSocketObserver, User::Panic( _L ( "IP-Proxy ECom-plugin" ), KErrBadHandle ) );
-    iSocketObserver->DataReceivedL( this, aMessage );
-
-    iBusy = EFalse;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::ProcessMessageL" );
-    }
-
-void CHtiIpProxyServicePlugin::NotifyMemoryChange( TInt aAvailableMemory )
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::NotifyMemoryChange" );
-
-    iBusy = ETrue;
-
-    TInt count = iOutgoingArray->Count();
-    if ( !count )
-        {
-        // No outgoing data
-        return;
-        }
-
-    // Calculate needed outgoing buffer size
-    TInt i = 0;
-    TInt neededSize = 0;
-    for ( ; i < count; ++i )
-        {
-        TInt size = ( *iOutgoingArray )[i].Size();
-        if ( neededSize + size <= aAvailableMemory )
-            {
-            neededSize += size;
-            }
-        }
-
-    if ( !neededSize )
-       {
-       // Not enough memory
-       return;
-       }
-
-    // Create an outgoing buffer and join as many buffers as possible
-    HBufC8* message = HBufC8::New( neededSize );
-    if ( !message )
-        {
-        // Not enough memory
-        return;
-        }
-
-    TPtr8 messagePtr( message->Des() );
-    for ( TInt j = 0; j < i; ++j )
-        {
-        messagePtr.Append( ( *iOutgoingArray )[j] );
-        }
-
-    // Dispatch message to HTI-Framework which takes the ownership of message
-    TInt err = iDispatcher->DispatchOutgoingMessage( message, KIpProxyServiceUid );
-    if ( err == KErrNone )
-        {
-        message = NULL;
-        iOutgoingArray->Delete( 0, i );
-        iDispatcher->RemoveMemoryObserver( this );
-        }
-    else if ( err != KErrNoMemory )
-        {
-        delete message;
-        iDispatcher->RemoveMemoryObserver( this );
-
-        __ASSERT_ALWAYS( iHostObserver, User::Panic( _L ( "IP-Proxy ECom-plugin" ), KErrBadHandle ) );
-        TRAP( err, iHostObserver->HostConnectionErrorL( err ) );
-        }
-
-    iBusy = EFalse;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::NotifyMemoryChange" );
-    }
-
-MSocket* CHtiIpProxyServicePlugin::GetSocket()
-    {
-    return this;
-    }
-
-MHostConnection* CHtiIpProxyServicePlugin::GetHostConnection()
-    {
-    return this;
-    }
-
-RSocket* CHtiIpProxyServicePlugin::GetRSocket()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::GetRSocket" );
-
-    RSocket* KSocket = NULL;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::GetRSocket" );
-    return KSocket;
-    }
-
-TUint CHtiIpProxyServicePlugin::LocalPort() const
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::LocalPort" );
-
-    const TUint KLocalPort = 0;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::LocalPort" );
-    return KLocalPort;
-    }
-
-TUint CHtiIpProxyServicePlugin::RemotePort() const
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::RemotePort" );
-
-    const TUint KRemotePort = 0;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::RemotePort" );
-    return KRemotePort;
-    }
-
-void CHtiIpProxyServicePlugin::SetObserver( MSocketObserver* aObserver )
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::SetObserver" );
-
-    iSocketObserver = aObserver;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::SetObserver" );
-    }
-
-void CHtiIpProxyServicePlugin::SetSocketOwnershipMode( TBool /* aHasOwnership */ )
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::SetSocketOwnershipMode" );
-
-    /* Empty implementation */
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::SetSocketOwnershipMode" );
-    }
-
-void CHtiIpProxyServicePlugin::IssueRead()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::IssueRead" );
-
-    /* Empty implementation */
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::IssueRead" );
-    }
-
-void CHtiIpProxyServicePlugin::Cancel()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::Cancel" );
-
-    /* Empty implementation */
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::Cancel" );
-    }
-
-void CHtiIpProxyServicePlugin::SocketInfo( TProtocolDesc& aDesc ) const
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::SocketInfo" );
-
-    aDesc.iProtocol = KProtocolInetTcp;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::SocketInfo" );
-    }
-
-TBool CHtiIpProxyServicePlugin::IsUDP() const
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::IsUDP" );
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::IsUDP" );
-    return EFalse;
-    }
-
-void CHtiIpProxyServicePlugin::WriteL( const TDesC8& aData )
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::WriteL" );
-
-    iBusy = ETrue;
-
-    // Dispatcher takes ownership of the message if no error has occured
-    HBufC8* message = aData.AllocL();
-    TInt err = iDispatcher->DispatchOutgoingMessage( message, KIpProxyServiceUid );
-    if ( err != KErrNone && err != KErrNoMemory )
-        {
-        // Some error occured while dispatching the message
-        delete message;
-        __ASSERT_ALWAYS( iHostObserver, User::Panic( _L ( "IP-Proxy ECom-plugin" ), KErrBadHandle ) );
-        iHostObserver->HostConnectionErrorL( err );
-        }
-    else if ( err == KErrNoMemory )
-        {
-        // No memory was available so add message to queue
-        delete message;
-        iOutgoingArray->AppendL( aData.Mid( 0 ) );
-        iDispatcher->AddMemoryObserver( this );
-        }
-
-    iBusy = EFalse;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::WriteL" );
-    }
-
-void CHtiIpProxyServicePlugin::IssueConnectL()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::IssueConnectL" );
-
-    iConnected = ETrue;
-
-    __ASSERT_ALWAYS( iHostObserver, User::Panic( _L ( "IP-Proxy ECom-plugin" ), KErrBadHandle ) );
-    iHostObserver->ConnectionEstablishedL();
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::IssueConnectL" );
-    }
-
-void CHtiIpProxyServicePlugin::IssueDisconnect()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::IssueDisconnect" );
-
-    __ASSERT_ALWAYS( iSocketObserver, User::Panic( _L ( "IP-Proxy ECom-plugin" ), KErrBadHandle ) );
-    TRAP_IGNORE( iSocketObserver->DisconnectedL( this ) );
-
-    iConnected = EFalse;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::IssueDisconnect" );
-    }
-
-void CHtiIpProxyServicePlugin::SetObserver( MHostConnectionObserver* aObserver )
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::SetObserver 2" );
-
-    iHostObserver = aObserver;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::SetObserver 2" );
-    }
-
-TBool CHtiIpProxyServicePlugin::IsConnected()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::IsConnected" );
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::IsConnected" );
-    return iConnected;
-    }
-
-RSocket* CHtiIpProxyServicePlugin::Socket()
-    {
-    HTI_LOG_FUNC_IN( "CHtiIpProxyServicePlugin::Socket" );
-
-    RSocket* KSocket = NULL;
-
-    HTI_LOG_FUNC_OUT( "CHtiIpProxyServicePlugin::Socket" );
-    return KSocket;
-    }