natfw/natfwstunplugin/tsrc/ut_cnatfwstunplugin/stubs/cncmstream_stub.cpp
author hgs
Fri, 11 Jun 2010 11:20:25 +0300
changeset 26 bcc434605a01
parent 0 1bce908db942
permissions -rw-r--r--
201023

/*
* 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; 
    }
  */