localconnectivityservice/dun/utils/src/DunSignalCopy.cpp
branchRCL_3
changeset 11 c47ebe2ac36c
parent 0 c3e98f10fcf4
equal deleted inserted replaced
10:031b9cffe6e4 11:c47ebe2ac36c
     1 /*
     1 /*
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    63     // APIs affecting this:
    63     // APIs affecting this:
    64     // IssueRequest()
    64     // IssueRequest()
    65     Stop();
    65     Stop();
    66     // AddCallback()
    66     // AddCallback()
    67     iCallbacks.Close();
    67     iCallbacks.Close();
    68     // AddWriteReadyCallback()
       
    69     iERCallbacks.Close();
       
    70     // Internal
    68     // Internal
    71     Initialize();
    69     Initialize();
    72     FTRACE(FPrint( _L("CDunSignalCopy::ResetData() complete") ));
    70     FTRACE(FPrint( _L("CDunSignalCopy::ResetData() complete") ));
    73     }
    71     }
    74 
    72 
    96         {
    94         {
    97         FTRACE(FPrint( _L("CDunSignalCopy::AddCallback() (append failed!) complete" ) ));
    95         FTRACE(FPrint( _L("CDunSignalCopy::AddCallback() (append failed!) complete" ) ));
    98         return retTemp;
    96         return retTemp;
    99         }
    97         }
   100     FTRACE(FPrint( _L("CDunSignalCopy::AddCallback() complete" ) ));
    98     FTRACE(FPrint( _L("CDunSignalCopy::AddCallback() complete" ) ));
   101     return KErrNone;
       
   102     }
       
   103 
       
   104 // ---------------------------------------------------------------------------
       
   105 // Adds callback for endpoint readiness
       
   106 // The callback will be called when the endpoint is ready or not ready
       
   107 // ---------------------------------------------------------------------------
       
   108 //
       
   109 TInt CDunSignalCopy::AddEndpointReadyCallback( MDunEndpointReady* aERCallback )
       
   110     {
       
   111     FTRACE(FPrint( _L("CDunSignalCopy::AddEndpointReadyCallback()" ) ));
       
   112     if ( !aERCallback )
       
   113         {
       
   114         FTRACE(FPrint( _L("CDunSignalCopy::AddEndpointReadyCallback() (aERCallback) not initialized!" ) ));
       
   115         return KErrGeneral;
       
   116         }
       
   117     TInt retTemp = iERCallbacks.Find( aERCallback );
       
   118     if ( retTemp != KErrNotFound )
       
   119         {
       
   120         FTRACE(FPrint( _L("CDunSignalCopy::AddEndpointReadyCallback() (already exists) complete" ) ));
       
   121         return KErrAlreadyExists;
       
   122         }
       
   123     retTemp = iERCallbacks.Append( aERCallback );
       
   124     if ( retTemp != KErrNone )
       
   125         {
       
   126         FTRACE(FPrint( _L("CDunSignalCopy::AddEndpointReadyCallback() (append failed!) complete" ) ));
       
   127         return retTemp;
       
   128         }
       
   129     FTRACE(FPrint( _L("CDunSignalCopy::AddEndpointReadyCallback() complete" ) ));
       
   130     return KErrNone;
    99     return KErrNone;
   131     }
   100     }
   132 
   101 
   133 // ---------------------------------------------------------------------------
   102 // ---------------------------------------------------------------------------
   134 // Sets media to use for this endpoint monitor
   103 // Sets media to use for this endpoint monitor
   334     if ( iSignals & KRTSChanged )
   303     if ( iSignals & KRTSChanged )
   335         {
   304         {
   336         FTRACE(FPrint( _L("CDunSignalCopy::ManageSignalChangeUpstream() checking RTS..." ) ));
   305         FTRACE(FPrint( _L("CDunSignalCopy::ManageSignalChangeUpstream() checking RTS..." ) ));
   337         if ( iSignals & KSignalRTS )  // RTS changed to high
   306         if ( iSignals & KSignalRTS )  // RTS changed to high
   338             {
   307             {
   339             ReportEndpointReady( ETrue );
       
   340             ChangeUpstreamSignal( KSignalRTS, 0 );
   308             ChangeUpstreamSignal( KSignalRTS, 0 );
   341             FTRACE(FPrint( _L("CDunSignalCopy::ManageSignalChangeUpstream() RTS changed high" ) ));
   309             FTRACE(FPrint( _L("CDunSignalCopy::ManageSignalChangeUpstream() RTS changed high" ) ));
   342             }
   310             }
   343         else  // RTS changed to low
   311         else  // RTS changed to low
   344             {
   312             {
   345             ReportEndpointReady( EFalse );
       
   346             ChangeUpstreamSignal( 0, KSignalRTS );
   313             ChangeUpstreamSignal( 0, KSignalRTS );
   347             FTRACE(FPrint( _L("CDunSignalCopy::ManageSignalChangeUpstream() RTS changed low" ) ));
   314             FTRACE(FPrint( _L("CDunSignalCopy::ManageSignalChangeUpstream() RTS changed low" ) ));
   348             }
   315             }
   349         }
   316         }
   350     if ( iSignals & KDTRChanged )
   317     if ( iSignals & KDTRChanged )
   460         {
   427         {
   461         iComm->SetSignals( aSetMask, aClearMask );
   428         iComm->SetSignals( aSetMask, aClearMask );
   462         }
   429         }
   463     // Add other cases here if necessary
   430     // Add other cases here if necessary
   464     FTRACE(FPrint( _L("CDunSignalCopy::ChangeDownstreamSignal() complete" ) ));
   431     FTRACE(FPrint( _L("CDunSignalCopy::ChangeDownstreamSignal() complete" ) ));
   465     }
       
   466 
       
   467 // ---------------------------------------------------------------------------
       
   468 // Reports endpoint ready or not ready
       
   469 // ---------------------------------------------------------------------------
       
   470 //
       
   471 void CDunSignalCopy::ReportEndpointReady( TBool aReady )
       
   472     {
       
   473     FTRACE(FPrint( _L("CDunSignalCopy::ReportEndpointReady()" ) ));
       
   474     TInt count = iERCallbacks.Count();
       
   475     for ( TInt i=0; i<count; i++ )
       
   476         {
       
   477         if ( aReady )
       
   478             {
       
   479             iERCallbacks[i]->NotifyEndpointReady();
       
   480             }
       
   481         else  // not ready
       
   482             {
       
   483             iERCallbacks[i]->NotifyEndpointNotReady();
       
   484             }
       
   485         }
       
   486     FTRACE(FPrint( _L("CDunSignalCopy::ReportEndpointReady() complete" ) ));
       
   487     }
   432     }
   488 
   433 
   489 // ---------------------------------------------------------------------------
   434 // ---------------------------------------------------------------------------
   490 // From class CActive.
   435 // From class CActive.
   491 // Gets called when line status changes
   436 // Gets called when line status changes