localconnectivityservice/dun/utils/src/DunDataWaiter.cpp
branchRCL_3
changeset 43 4a793f564d72
parent 42 0aa8cc770c8a
child 45 74aa6861c87d
--- a/localconnectivityservice/dun/utils/src/DunDataWaiter.cpp	Tue Aug 31 16:03:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,253 +0,0 @@
-/*
-* 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:  Monitors for new data in RComm local media side
-*
-*/
-
-
-#include "DunTransporter.h"
-#include "DunDataWaiter.h"
-#include "DunSignalCopy.h"
-#include "DunDebug.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CDunDataWaiter* CDunDataWaiter::NewL( MDunChannelAllocator* aChannelCallback )
-    {
-    CDunDataWaiter* self = new (ELeave) CDunDataWaiter( aChannelCallback );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CDunDataWaiter::~CDunDataWaiter()
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::~CDunDataWaiter()") ));
-    ResetData();
-    FTRACE(FPrint( _L("CDunDataWaiter::~CDunDataWaiter() complete") ));
-    }
-
-// ---------------------------------------------------------------------------
-// Resets data to initial values
-// ---------------------------------------------------------------------------
-//
-void CDunDataWaiter::ResetData()
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::ResetData()") ));
-    Stop();
-    // APIs affecting this:
-    // AddConnMonCallbackL()
-    iCallbacks.Close();
-    // Internal
-    Initialize();
-    FTRACE(FPrint( _L("CDunDataWaiter::ResetData() complete") ));
-    }
-
-// ---------------------------------------------------------------------------
-// Adds callback for RunL error controlling
-// The callback will be called when error is detected in asynchronous
-// operation
-// ---------------------------------------------------------------------------
-//
-TInt CDunDataWaiter::AddCallback( MDunConnMon* aCallback )
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::AddCallback()" ) ));
-    if ( !aCallback )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::AddCallback() (ERROR) complete" ) ));
-        return KErrGeneral;
-        }
-    TInt retTemp = iCallbacks.Find( aCallback );
-    if ( retTemp != KErrNotFound )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::AddCallback() (already exists) complete" ) ));
-        return KErrAlreadyExists;
-        }
-    retTemp = iCallbacks.Append( aCallback );
-    if ( retTemp != KErrNone )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::AddCallback() (append failed!) complete" ) ));
-        return retTemp;
-        }
-    FTRACE(FPrint( _L("CDunDataWaiter::AddCallback() complete" ) ));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// Sets media to use for this endpoint
-// ---------------------------------------------------------------------------
-//
-TInt CDunDataWaiter::SetMedia( RComm* aComm )
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::SetMedia(RComm) (addr=0x%08X)" ), aComm));
-    if ( !aComm )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::SetMedia() (aComm) not initialized!" )));
-        return KErrGeneral;
-        }
-    TCommCaps2 caps;
-    aComm->Caps( caps );
-    if ( !(caps().iNotificationCaps & KNotifyDataAvailableSupported) )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::SetMedia() (RComm) (not supported) complete" )));
-        return KErrNotSupported;
-        }
-    iComm = aComm;
-    FTRACE(FPrint( _L("CDunDataWaiter::SetMedia() (RComm) complete" )));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// Issues request to start waiting for new data in RComm
-// ---------------------------------------------------------------------------
-//
-TInt CDunDataWaiter::IssueRequest()
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::IssueRequest()" )));
-    if ( iDataWaiterState != EDunStateIdle )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::IssueRequest() (not ready) complete" )));
-        return KErrNotReady;
-        }
-    if ( !iComm )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::IssueRequest() (iComm) not initialized!" ) ));
-        return KErrGeneral;
-        }
-    iStatus = KRequestPending;
-    iComm->ResetBuffers();
-    iComm->NotifyDataAvailable( iStatus );
-    SetActive();
-    iDataWaiterState = EDunStateDataWaiting;
-    FTRACE(FPrint( _L("CDunDataWaiter::IssueRequest() complete" )));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// Stops monitoring for new data
-// ---------------------------------------------------------------------------
-//
-TInt CDunDataWaiter::Stop()
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::Stop()" )));
-    if ( iDataWaiterState != EDunStateDataWaiting )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::Stop() (not ready) complete" )));
-        return KErrNotReady;
-        }
-    if ( !iComm )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::Stop() (iComm) not initialized!" )));
-        return KErrGeneral;
-        }
-    iComm->NotifyDataAvailableCancel();
-    Cancel();
-    iDataWaiterState = EDunStateIdle;
-    FTRACE(FPrint( _L("CDunDataWaiter::Stop() complete" )));
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// CDunDataWaiter::CDunDataWaiter
-// ---------------------------------------------------------------------------
-//
-CDunDataWaiter::CDunDataWaiter( MDunChannelAllocator* aChannelCallback ) :
-    CActive( EPriorityHigh ),
-    iChannelCallback( aChannelCallback )
-    {
-    Initialize();
-    }
-
-// ---------------------------------------------------------------------------
-// CDunDataWaiter::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CDunDataWaiter::ConstructL()
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::ConstructL()" ) ));
-    if ( !iChannelCallback )
-        {
-        User::Leave( KErrGeneral );
-        }
-    CActiveScheduler::Add( this );
-    FTRACE(FPrint( _L("CDunDataWaiter::ConstructL() complete" ) ));
-    }
-
-// ---------------------------------------------------------------------------
-// Initializes this class
-// ---------------------------------------------------------------------------
-//
-void CDunDataWaiter::Initialize()
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::Initialize()" ) ));
-    // Don't initialize iChannelCallback here (it is set through NewL)
-    iDataWaiterState = EDunStateIdle;
-    iComm = NULL;
-    FTRACE(FPrint( _L("CDunDataWaiter::Initialize() complete" ) ));
-    }
-
-// ---------------------------------------------------------------------------
-// From class CActive.
-// Gets called when new data in RComm object
-// ---------------------------------------------------------------------------
-//
-void CDunDataWaiter::RunL()
-    {
-    FTRACE(FPrint( _L("CDunDataWaiter::RunL()" ) ));
-    iDataWaiterState = EDunStateIdle;
-    TInt retTemp = iStatus.Int();
-    if ( retTemp != KErrNone )
-        {
-        FTRACE(FPrint( _L("CDunDataWaiter::RunL() (failed) complete (%d)"), retTemp));
-        TInt count = iCallbacks.Count();
-        TDunConnectionReason connReason;
-        connReason.iReasonType = EDunReasonTypeRunL;
-        connReason.iContext = EDunMediaContextLocal;
-        connReason.iSignalType = 0;
-        connReason.iSignalHigh = EFalse;
-        connReason.iDirection = EDunDirectionUndefined;
-        connReason.iErrorCode = retTemp;
-        for ( TInt i=0; i<count; i++ )
-            {
-            TRAP_IGNORE(
-                iCallbacks[i]->NotifyProgressChangeL( iComm, connReason ) );
-            }
-        return;
-        }
-    if ( iChannelCallback )
-        {
-        iChannelCallback->NotifyNewChannelRequest( iComm );
-        }
-    // Don't check other iMediaInUse values here
-    // They can't be other than EDunMediaRComm (checked in IssueRequest())
-    FTRACE(FPrint( _L("CDunDataWaiter::RunL() complete" ) ));
-    }
-
-// ---------------------------------------------------------------------------
-// From class CActive.
-// Gets called on cancel
-// ---------------------------------------------------------------------------
-//
-void CDunDataWaiter::DoCancel()
-    {
-    }