natfw/natfwclient/tsrc/ut_natfwclient/stubs/cncmconnectionmultiplexer_stub.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/natfw/natfwclient/tsrc/ut_natfwclient/stubs/cncmconnectionmultiplexer_stub.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,687 @@
+/*
+* Copyright (c) 2006 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 is responsible for handling network
+*                connections, send and receive data from the
+*                network and allow client to start media flow between
+*                connection multiplexer and socket media connection wrapper.
+*
+*/
+
+
+
+
+#include <in_sock.h>
+ 
+#include "cncmconnectionmultiplexer.h"
+#include "mncmconnectionmultiplexerobserver.h"
+#include "cncmportstore.h"
+#include "cncmmediasource.h"
+#include "ncmconnectionmultiplexerlogs.h"
+#include "cncmsession.h"
+#include "cncmstream.h"
+#include "cncmconnection.h"
+#include "natfwmediawrapper.h"
+
+const TUint KFirstSessionId = 1;
+
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::CNcmConnectionMultiplexer
+// ---------------------------------------------------------------------------
+//
+CNcmConnectionMultiplexer::CNcmConnectionMultiplexer(
+    MNcmConnectionMultiplexerObserver& aObserver ) :
+    iObserver( aObserver ), iNextSessionId( KFirstSessionId )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CNcmConnectionMultiplexer* CNcmConnectionMultiplexer::NewL(
+        MNcmConnectionMultiplexerObserver& aObserver )
+    {
+    __CONNECTIONMULTIPLEXER( "CNcmConnectionMultiplexer::NewL" )
+
+    CNcmConnectionMultiplexer* self =
+        new (ELeave) CNcmConnectionMultiplexer( aObserver );
+
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::~CNcmConnectionMultiplexer
+// ---------------------------------------------------------------------------
+//
+CNcmConnectionMultiplexer::~CNcmConnectionMultiplexer()
+    {
+    __CONNECTIONMULTIPLEXER( 
+        "CNcmConnectionMultiplexer::~CNcmConnectionMultiplexer" )
+        
+    iSessions.ResetAndDestroy();
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::CreateSessionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUint CNcmConnectionMultiplexer::CreateSessionL( TUint32 aIapId,
+    TUint aPortRangeStart, TUint aPortRangeStop )
+    {
+    CNcmSession* session = 
+        CNcmSession::NewL( iNextSessionId, aIapId,
+            aPortRangeStart, aPortRangeStop, iObserver, *this );
+     
+    CleanupStack::PushL( session ); 
+    iSessions.AppendL( session );
+    CleanupStack::Pop( session );
+    
+    iNextSessionId++;
+    return session->SessionId();
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::CreateStreamL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUint CNcmConnectionMultiplexer::CreateStreamL( TUint aSessionId,
+    TInt aQos, TUint aProtocol )
+    {
+     __CONNECTIONMULTIPLEXER( "CNcmConnectionMultiplexer::CreateStreamL" )
+    
+    CNcmSession* session( SessionByIdL( aSessionId ) );
+    
+    TUint streamId( session->CreateStreamL( aQos, aProtocol ) );;
+
+    return streamId;
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::GetStreamInfoL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::GetStreamInfoL( 
+    TUint /*aStreamId*/, TUint32& /*aIapId*/, TInt& /*aQos*/,
+    TUint& /*aProtocol*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::LocalIPAddressL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInetAddr& CNcmConnectionMultiplexer::LocalIPAddressL(
+    TUint /*aStreamId*/, TUint /*aConnectionId*/ )
+    {
+    TInetAddr add;
+    return add;
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::ResolveDestinationAddressL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::ResolveDestinationAddressL(
+    TUint /*aStreamId*/, const TDesC8& /*aAddress*/, TUint /*aPort*/,
+    TInetAddr& /*aResult*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::CreateConnectionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUint CNcmConnectionMultiplexer::CreateConnectionL( 
+    TUint /*aStreamId*/, TUint /*aAddrFamily*/ )
+    {
+    return 0;
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::CreateConnectionL - overloaded
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUint CNcmConnectionMultiplexer::CreateConnectionL( 
+    TUint /*aStreamId*/, const TInetAddr& /*aLocalAddr*/ )
+    {
+    return 0;
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::OpenTcpConnectionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::OpenTcpConnectionL(
+    TUint /*aStreamId*/, TUint /*aConnectionId*/,
+    TNATFWTcpConnectionSetup /*aConfig*/, const TInetAddr& /*aDestAddr*/ )
+    {
+    
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::CloseTcpConnection
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::CloseTcpConnection(
+        TUint /*aStreamId*/, TUint /*aConnectionId*/ )
+    {
+    
+    }     
+        
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::RemoveSessionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::RemoveSessionL(
+    TUint aSessionId )
+    {
+    __CONNECTIONMULTIPLEXER( "CNcmConnectionMultiplexer::RemoveSessionL" )
+
+    TInt sessionCount( iSessions.Count() );
+    
+    for ( TInt i = 0; i < sessionCount; i++ )
+        {
+        if ( iSessions[i]->SessionId() == aSessionId )
+            {
+            delete iSessions[i];
+            iSessions.Remove( i );
+            return;
+            }
+        }
+    User::Leave( KErrNotFound );
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::RemoveStreamL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::RemoveStreamL( TUint aStreamId )
+    {
+        __CONNECTIONMULTIPLEXER( "CNcmConnectionMultiplexer::RemoveStreamL" )
+
+    CNcmSession* session( SessionByStreamIdL( aStreamId ) );    
+
+    session->RemoveStreamL( aStreamId );
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::RemoveConnectionL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::RemoveConnectionL(
+    TUint /*aStreamId*/, TUint /*aConnectionId*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::RegisterIncomingConnectionObserverL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::
+    RegisterIncomingConnectionObserverL( TUint /*aStreamId*/,
+        MNcmIncomingConnectionObserver& /*aObserver*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::RegisterOutgoingConnectionObserverL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::
+    RegisterOutgoingConnectionObserverL(
+        TUint /*aStreamId*/, MNcmOutgoingConnectionObserver& /*aObserver*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::UnregisterIncomingConnectionObserverL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::
+    UnregisterIncomingConnectionObserverL(
+        TUint /*aStreamId*/,MNcmIncomingConnectionObserver& /*aObserver*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::UnregisterOutgoingConnectionObserverL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::
+    UnregisterOutgoingConnectionObserverL(
+        TUint /*aStreamId*/, MNcmOutgoingConnectionObserver& /*aObserver*/ )
+    {
+    }
+    
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::RegisterConnectionObserverL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::RegisterConnectionObserverL(
+    TUint /*aStreamId*/, MNcmConnectionObserver& /*aObserver*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::UnregisterConnectionObserverL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::UnregisterConnectionObserverL(
+    TUint /*aStreamId*/, MNcmConnectionObserver& /*aObserver*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::RegisterMessageObserverL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::RegisterMessageObserverL(
+    TUint /*aStreamId*/, MNcmMessageObserver& /*aObserver*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::UnregisterMessageObserverL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::UnregisterMessageObserverL(
+    TUint /*aStreamId*/, MNcmMessageObserver& /*aObserver*/ )
+    {
+    }
+        
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::RegisterMediaWrapperL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::RegisterMediaWrapperL(
+    MNATFWMediaWrapper* aMediaWrapper )
+    {
+    TUint streamId( aMediaWrapper->StreamId() );
+    
+    CNcmStream* stream( StreamByIdL( streamId ) );
+    
+    stream->RegisterWrapperL( aMediaWrapper );
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SendL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SendL( TUint /*aStreamId*/,
+    TUint /*aConnectionId*/, const TDesC8& /*aMessage*/,
+    MNcmSenderObserver* /*aSenderObserver*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SendL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SendL( TUint /*aStreamId*/,
+    TUint /*aConnectionId*/, const TDesC8& /*aMessage*/,
+    const TInetAddr& /*aDestinationAddress*/,
+    MNcmSenderObserver* /*aSenderObserver*/  )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SendL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SendL( TUint /*aStreamId*/,
+    const TDesC8& /*aMessage*/, const TInetAddr& /*aNextHopAddress*/,
+    const TInetAddr& /*aDestinationAddress*/ )
+    {
+    }
+        
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SendL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SendL( TUint /*aStreamId*/,
+    TUint /*aConnectionId*/, const TDesC8& /*aMessage*/, TBool /*aSendDirectly*/,
+    MNcmSenderObserver* /*aSenderObserver*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::CancelMessageSend
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::CancelMessageSend( TUint /*aStreamId*/,
+    TUint /*aConnectionId*/, const MNcmSenderObserver* /*aSenderObserver*/ )
+    {
+    __CONNECTIONMULTIPLEXER( "CNcmConnectionMultiplexer::CancelMessageSend " )
+        
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::GetSessionInfoL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C RSocketServ* CNcmConnectionMultiplexer::GetSessionInfoL( TUint /*aSessionId*/,
+    TName& /*aConnectionName*/ )
+    {
+    }
+    
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::PortStore
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CNcmPortStore& CNcmConnectionMultiplexer::PortStoreL(
+    TUint aSessionId )
+    {
+    return SessionByIdL( aSessionId )->PortStore();
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SetSendingStateL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SetSendingStateL(
+        TUint aStreamId, TUint /*aConnectionId*/, const TInetAddr& /*aDestAddr*/,
+        TNATFWStreamingState aState )
+    {
+    switch( aState )
+        {
+        case EStreamingStatePassive:
+            iObserver.Notify( SessionByStreamIdL( aStreamId )->SessionId(),
+                        aStreamId,
+                        MNcmConnectionMultiplexerObserver::
+                        ESendingDeactivated, KErrNone );
+            break;
+        case EStreamingStateActive:
+            iObserver.Notify( SessionByStreamIdL( aStreamId )->SessionId(),
+                        aStreamId,
+                        MNcmConnectionMultiplexerObserver::
+                        ESendingActivated, KErrNone );
+            break;
+        default:
+            break;
+        }
+    }
+    
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SetReceivingStateL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SetReceivingStateL(
+    TUint aStreamId, TUint /*aConnectionId*/, TNATFWStreamingState aState )
+    {
+    switch( aState )
+        {
+        case EStreamingStatePassive:
+            iObserver.Notify( SessionByStreamIdL( aStreamId )->SessionId(),
+                        aStreamId,
+                        MNcmConnectionMultiplexerObserver::
+                        EReceivingDeactivated, KErrNone );
+            break;
+        case EStreamingStateActive:
+            iObserver.Notify( SessionByStreamIdL( aStreamId )->SessionId(),
+                        aStreamId,
+                        MNcmConnectionMultiplexerObserver::
+                        EReceivingActivated, KErrNone );
+        default:
+            break;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SetAcceptedFromAddressL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SetAcceptedFromAddressL(
+    TUint /*aStreamId*/, TUint /*aConnectionId*/,
+    const TInetAddr& /*aAddress*/ )
+    {
+    
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SetSendingStateForMediaL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SetSendingStateForMediaL(
+    TUint aStreamId, TUint /*aConnectionId*/, TNATFWStreamingState aState )
+    {
+    switch( aState )
+        {
+        case EStreamingStatePassive:
+            iObserver.Notify( SessionByStreamIdL( aStreamId )->SessionId(),
+                        aStreamId,
+                        MNcmConnectionMultiplexerObserver::
+                        ESendingDeactivated, KErrNone );
+            break;
+        case EStreamingStateActive:
+            iObserver.Notify( SessionByStreamIdL( aStreamId )->SessionId(),
+                        aStreamId,
+                        MNcmConnectionMultiplexerObserver::
+                        ESendingActivated, KErrNone );
+        default:
+            break;
+        }
+    }
+
+    
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SetReceivingStateForMediaL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CNcmConnectionMultiplexer::SetReceivingStateForMediaL(
+    TUint aStreamId, TUint /*aConnectionId*/, TNATFWStreamingState aState )
+    {
+    switch( aState )
+        {
+        case EStreamingStatePassive:
+            iObserver.Notify( SessionByStreamIdL( aStreamId )->SessionId(),
+                        aStreamId,
+                        MNcmConnectionMultiplexerObserver::
+                        EReceivingDeactivated, KErrNone );
+            break;
+        case EStreamingStateActive:
+            iObserver.Notify( SessionByStreamIdL( aStreamId )->SessionId(),
+                        aStreamId,
+                        MNcmConnectionMultiplexerObserver::
+                        EReceivingActivated, KErrNone );
+        default:
+            break;
+        }
+    }
+
+  
+// ---------------------------------------------------------------------------
+// From class MMultiplexerConnectionObserver
+//
+// CNcmConnectionMultiplexer::ConnectionError
+// ---------------------------------------------------------------------------
+//
+void CNcmConnectionMultiplexer::ConnectionError(
+    TUint /*aSessionId*/, TUint /*aStreamId*/, TUint /*aConnectionId*/,
+    TMultiplexerConnectionNotifyType /*aNotifyType*/, TInt /*aError*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// From class MMultiplexerSocketDestinationObserver
+//
+// CNcmConnectionMultiplexer::ConnectionNotify
+// ---------------------------------------------------------------------------
+//
+void CNcmConnectionMultiplexer::ConnectionNotify( TUint /*aStreamId*/,
+    TUint /*aConnectionId*/, TMultiplexerConnectionNotifyType /*aType*/,
+    TInt /*aError*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// From class MMultiplexerSocketDestinationObserver
+//
+// CNcmConnectionMultiplexer::GetNewFreePort
+// ---------------------------------------------------------------------------
+//
+void CNcmConnectionMultiplexer::GetNewFreePort( TUint /*aStreamId*/,
+    TUint /*aConnectionId*/, TUint& /*aPort*/ )
+    {
+    }
+    
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::ConnectionNotifyL
+// ---------------------------------------------------------------------------
+//
+void CNcmConnectionMultiplexer::ConnectionNotifyL( TUint /*aStreamId*/,
+    TUint /*aConnectionId*/, TMultiplexerConnectionNotifyType /*aType*/,
+    TInt /*aError*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::GetNewFreePortL
+// ---------------------------------------------------------------------------
+//
+void CNcmConnectionMultiplexer::GetNewFreePortL( TUint /*aStreamId*/,
+    TUint /*aConnectionId*/, TUint& /*aPort*/ )
+    {
+    }
+        
+// ---------------------------------------------------------------------------
+// From class MMultiplexerSessionObserver
+//
+// Called as a result for CreateSessionL() when wrapper is connected
+// ---------------------------------------------------------------------------
+//
+void CNcmConnectionMultiplexer::SessionCreationFailed( TUint /*aSessionId*/ )
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SessionByIdL()
+// ---------------------------------------------------------------------------
+//       
+CNcmSession* CNcmConnectionMultiplexer::SessionByIdL(
+    TUint aSessionId )
+    {
+    TInt ind( iSessions.Count() );
+    
+    while ( ind-- )
+        {
+        if ( iSessions[ind]->SessionId() == aSessionId )
+            {
+            return iSessions[ind];
+            }
+        }
+   
+    User::Leave( KErrNotFound );
+#ifndef _DEBUG_EUNIT 
+    return NULL;
+#endif    
+    }
+    
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::StreamByIdL()
+// ---------------------------------------------------------------------------
+//       
+CNcmStream* CNcmConnectionMultiplexer::StreamByIdL(
+    TUint aStreamId )
+    {
+    TInt sessInd( iSessions.Count() );
+    
+    while ( sessInd-- )
+        {
+        CNcmStream* stream = iSessions[sessInd]->
+            StreamByIdL( aStreamId );
+            
+        if ( stream )
+            {
+            return stream;
+            }
+        }
+   
+    User::Leave( KErrNotFound ); 
+#ifndef _DEBUG_EUNIT 
+    return NULL;
+#endif
+    }
+
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::StreamById()
+// ---------------------------------------------------------------------------
+//       
+CNcmStream* CNcmConnectionMultiplexer::StreamById(
+    TUint /*aStreamId*/ )
+    {
+    return NULL;
+    }
+ 
+// ---------------------------------------------------------------------------
+// CNcmConnectionMultiplexer::SessionByStreamIdL()
+// ---------------------------------------------------------------------------
+//       
+CNcmSession* CNcmConnectionMultiplexer::SessionByStreamIdL(
+    TUint aStreamId )
+    {   
+    TInt sessInd( iSessions.Count() );
+    
+    while ( sessInd-- )
+        {
+        CNcmStream* stream = iSessions[sessInd]->
+            StreamByIdL( aStreamId );
+            
+        if ( stream )
+            {
+            return iSessions[sessInd];
+            }
+        }
+    
+    User::Leave( KErrNotFound );
+#ifndef _DEBUG_EUNIT 
+    return NULL;
+#endif
+    }   
+  
+
+// ---------------------------------------------------------------------------
+// From class MMultiplexerMediaSourceObserver
+//
+// CNcmConnectionMultiplexer::WrapperSenderError
+// ---------------------------------------------------------------------------
+//
+void CNcmConnectionMultiplexer::WrapperSenderError( TUint /*aStreamId*/,
+    TInt aError )
+    {
+    __CONNECTIONMULTIPLEXER_INT1( 
+        "CNcmConnectionMultiplexer::WrapperSenderObserver - Error: ", aError )
+    }
+
+// ---------------------------------------------------------------------------
+// From class MMultiplexerMediaSourceObserver
+//
+// CNcmConnectionMultiplexer::GetFreePort
+// ---------------------------------------------------------------------------
+//
+void CNcmConnectionMultiplexer::GetFreePort( TUint /*aStreamId*/, TUint& /*aPort*/ )
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// From MNcmMediaSourceObserver
+// CNcmConnectionMultiplexer::FirstMediaPacketSent
+// ---------------------------------------------------------------------------
+//  
+void CNcmConnectionMultiplexer::FirstMediaPacketSent( TUint /*aStreamId*/ )
+    {
+    
+    }