natfw/natfwstunplugin/tsrc/ut_cnatfwstunplugin/stubs/cncmstream_stub.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/natfw/natfwstunplugin/tsrc/ut_cnatfwstunplugin/stubs/cncmstream_stub.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,405 @@
+/*
+* Copyright (c) 2006-2007 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:    Connection multiplexer stream abstraction.
+*
+*/
+
+
+
+
+
+#include "cncmstream.h"
+#include "ncmconnectionmultiplexerlogs.h"
+#include "ncmconnectionmultiplexerassert.h"
+#include "natfwmediawrapper.h"
+#include "cncmconnectionobserverhandler.h"
+#include "cncmconnection.h"
+
+const TUint KFirstConnectionId = 1;
+
+// ---------------------------------------------------------------------------
+// CNcmStream::CNcmStream
+// ---------------------------------------------------------------------------
+//
+CNcmStream::CNcmStream( TUint aSessionId,
+    TUint aStreamId, TInt aQos, TUint aProtocol ):
+    iSessionId( aSessionId ), iStreamId( aStreamId ), iQos( aQos ),
+    iStreamProtocol( aProtocol ),
+    iNextConnectionId( KFirstConnectionId ),
+    iMediaConnectionId( 0 )
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNcmStream::NewL
+// ---------------------------------------------------------------------------
+//
+CNcmStream* CNcmStream::NewL( TUint aSessionId,
+    TUint aStreamId, TInt aQos, TUint aProtocol )
+    {
+    __CONNECTIONMULTIPLEXER( "CNcmStream::NewL" )
+    
+    CNcmStream* self =
+        CNcmStream::NewLC( aSessionId, aStreamId, aQos, aProtocol );
+            
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNcmStream::NewLC
+// ---------------------------------------------------------------------------
+//
+CNcmStream* CNcmStream::NewLC( TUint aSessionId,
+    TUint aStreamId, TInt aQos, TUint aProtocol )
+    {
+    __CONNECTIONMULTIPLEXER( "CNcmStream::NewLC" )
+    
+    CNcmStream* self =
+        new( ELeave ) CNcmStream( aSessionId, aStreamId, aQos, aProtocol );
+        
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmStream::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CNcmStream::ConstructL()
+    {
+    /*
+    iConnectionObserverHandler =
+        CNcmConnectionObserverHandler::NewL();
+    */
+    }
+    
+// ---------------------------------------------------------------------------
+// CNcmStream::~CNcmStream
+// ---------------------------------------------------------------------------
+//
+CNcmStream::~CNcmStream()
+    {
+    /*
+    __CONNECTIONMULTIPLEXER_INT1(
+        "CNcmStream::~CNcmStream, CONN_COUNT: ", 
+        iConnections.Count() )
+    
+    TInt ind( KErrNotFound );
+    while ( KErrNotFound != ( ind = iConnections.Count() - 1 ) )
+        {
+        TUint connectionId = iConnections[ind]->ConnectionId();
+        
+        delete iConnections[ind];
+        iConnections.Remove( ind );
+        
+        if ( iConnectionObserverHandler )
+            {
+            iConnectionObserverHandler->ConnectionNotify( iStreamId,
+                connectionId, EMultiplexerConnectionRemoved, KErrNone );
+            }
+        }
+    iConnections.Close();
+    
+    if ( iWrapper )
+        {
+        iWrapper->Close();  
+        }
+    
+    iWrapper = NULL;
+    delete iConnectionObserverHandler;
+    */
+    }
+/*    
+// ---------------------------------------------------------------------------
+// CNcmStream::CreateConnectionL
+// ---------------------------------------------------------------------------
+//
+TUint CNcmStream::CreateConnectionL(
+        MNcmMultiplexerConnectionObserver& aObserver,
+        CNcmConnectionObserverHandler& 
+        aConnectionObserverHandler )
+    {   
+    CNcmConnection* multiplexer(
+        CNcmConnection::NewL( iSessionId, iStreamId,
+            iNextConnectionId, iLocalAddr, aObserver,
+            aConnectionObserverHandler ) );
+                                         
+    CleanupStack::PushL( multiplexer );
+    
+    iConnections.AppendL( multiplexer );
+    
+    iNextConnectionId++;
+    CleanupStack::Pop( multiplexer ); 
+    return multiplexer->ConnectionId();
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmStream::RemoveConnectionL
+// ---------------------------------------------------------------------------
+//
+void CNcmStream::RemoveConnectionL( TUint aConnectionId )
+    {
+    __CONNECTIONMULTIPLEXER_INT1(
+        "CNcmStream::Remove - RemoveConnectionL: ", aConnectionId )
+    
+    TInt count( iConnections.Count() );
+    TBool found( EFalse );
+        
+    for ( TInt i = 0; i < count; i++ )
+        {
+        if ( iConnections[i]->ConnectionId() == aConnectionId )
+            {      
+            delete iConnections[i];  
+            iConnections.Remove( i );
+            found = ETrue;
+            break;
+            }
+        }
+       
+    if ( !found )
+        {
+        User::Leave( KErrNotFound );
+        }
+    } 
+*/   
+// ---------------------------------------------------------------------------
+// CNcmStream::StreamId
+// ---------------------------------------------------------------------------
+//
+TUint CNcmStream::StreamId() const
+    {
+    return iStreamId;
+    }
+
+/*
+// ---------------------------------------------------------------------------
+// CNcmStream::Qos
+// ---------------------------------------------------------------------------
+//
+TInt CNcmStream::Qos() const
+    {
+    return iQos;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNcmStream::SetQos
+// ---------------------------------------------------------------------------
+//
+void CNcmStream::SetQos( TInt aQos )
+    {
+    __CONNECTIONMULTIPLEXER_INT1( "CNcmStream::SetQos - aQos: ", aQos )
+    
+    iQos = aQos;
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmStream::ConnectionL
+// ---------------------------------------------------------------------------
+//
+CNcmConnection* CNcmStream::ConnectionL(
+    TUint aConnectionId )
+    {
+    __CONNECTIONMULTIPLEXER_INT1(
+        "CNcmStream::ConnectionL - aConnectionId: ", aConnectionId )
+    
+    TInt count( iConnections.Count() );
+    
+    for ( TInt i = 0; i < count; i++ )
+        {
+        if ( iConnections[i]->ConnectionId() == aConnectionId )
+            {
+            return iConnections[i];
+            }
+        }
+    User::Leave( KErrNotFound );    
+#ifndef _DEBUG_EUNIT
+    return NULL;
+#endif
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNcmStream::RegisterWrapperL
+// ---------------------------------------------------------------------------
+//
+void CNcmStream::RegisterWrapperL(
+    MNATFWMediaWrapper* aWrapper )
+    {
+    __CONNECTIONMULTIPLEXER( 
+        "CNcmStream::RegisterWrapperL" )
+    __CONNECTIONMULTIPLEXER_ASSERT_L( NULL != aWrapper, KErrArgument );
+    __CONNECTIONMULTIPLEXER_ASSERT_L( NULL == iWrapper, KErrAlreadyExists );
+        
+    iWrapper = aWrapper;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNcmStream::WrapperL
+// ---------------------------------------------------------------------------
+//
+MNATFWMediaWrapper& CNcmStream::WrapperL()
+    {
+    __CONNECTIONMULTIPLEXER( "CNcmStream::WrapperL" )
+    __CONNECTIONMULTIPLEXER_ASSERT_L( NULL != iWrapper, KErrNotReady );
+
+    return *iWrapper;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNcmStream::StreamProtocol
+// ---------------------------------------------------------------------------
+//
+TUint CNcmStream::StreamProtocol() const
+    {
+    __CONNECTIONMULTIPLEXER( 
+        "CNcmStream::StreamProtocol" )
+
+    return iStreamProtocol;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNcmStream::SetStreamProtocol
+// ---------------------------------------------------------------------------
+//
+void CNcmStream::SetStreamProtocol(
+    TUint aProtocol )
+    {
+    __CONNECTIONMULTIPLEXER( 
+        "CNcmStream::SetStreamProtocol" )
+        
+    iStreamProtocol = aProtocol;
+    }
+
+// ---------------------------------------------------------------------------
+// SetPendingDefaultConnection
+// ---------------------------------------------------------------------------
+//
+TUint CNcmStream::DefaultConnectionId() const
+    {
+    __CONNECTIONMULTIPLEXER( 
+        "CNcmStream::DefaultConnectionId ")
+        
+    return iDefaultConnectionId;
+    }
+*/
+// ---------------------------------------------------------------------------
+// CNcmStream::SetLocalAddr
+// ---------------------------------------------------------------------------
+//
+/*void CNcmStream::SetLocalAddr( const TInetAddr& aLocalAddr )
+    {
+    iLocalAddr = aLocalAddr; 
+    iLocalAddr.SetPort( aLocalAddr.Port() ); 
+    } */
+
+// ---------------------------------------------------------------------------
+// CNcmStream::LocalAddress
+// ---------------------------------------------------------------------------
+//
+/*TInetAddr& CNcmStream::LocalAddress()
+    {
+    return iLocalAddr; 
+    }*/
+/*
+// ---------------------------------------------------------------------------
+// CNcmStream::Port()
+// ---------------------------------------------------------------------------
+//
+TUint CNcmStream::Port() const
+    {
+    return iLocalAddr.Port(); 
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmStream::SetPort()
+// ---------------------------------------------------------------------------
+//
+void CNcmStream::SetPort( TUint aPort )
+    {
+    iLocalAddr.SetPort( aPort ); 
+    }
+        
+// -----------------------------------------------------------------------------
+// CNcmStream::ConnectionObserverHandler
+// -----------------------------------------------------------------------------
+//    
+CNcmConnectionObserverHandler&
+    CNcmStream::ConnectionObserverHandler()   
+    {
+    return *iConnectionObserverHandler;
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmStream::ConnectionIdByDestinationAddressL(
+// ---------------------------------------------------------------------------
+//
+CNcmConnection*
+    CNcmStream::ConnectionByDestinationAddressL(
+    const TInetAddr& aDestinationAddress )
+    {
+    __CONNECTIONMULTIPLEXER( 
+        "CNcmStream::ConnectionByDestinationAddressL" ) 
+           
+    TInt ind( iConnections.Count() );
+    
+    while ( ind-- )
+        {
+        if ( iConnections[ind]->Destination()->
+            CheckSenderValidityToSending( aDestinationAddress ) )
+            {
+            return iConnections[ind];
+            }
+        }
+    
+    User::Leave( KErrNotFound );   
+#ifndef _DEBUG_EUNIT
+    return NULL;
+#endif
+    }   
+
+// ---------------------------------------------------------------------------
+// CNcmStream::RegisterMediaSourceL
+// ---------------------------------------------------------------------------
+//
+void CNcmStream::RegisterMediaSourceL( CNcmMediaSource* aMediaSource )
+    {
+    iConnectionObserverHandler->RegisterMediaSourceL( aMediaSource );
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmStream::IcmpErrorReceived
+// ---------------------------------------------------------------------------
+//
+TBool CNcmStream::IcmpErrorReceived() const
+    {
+    return iIcmpErrorReceived; 
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmStream::SetIcmpErrorReceived
+// ---------------------------------------------------------------------------
+//
+void CNcmStream::SetIcmpErrorReceived( TBool aIcmpErrorReceived )
+    {
+    iIcmpErrorReceived = aIcmpErrorReceived; 
+    }
+  */