phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdSatClient.cpp
changeset 46 2fa1fa551b0b
parent 42 35488577e233
child 48 78df25012fda
--- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdSatClient.cpp	Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-/*
-* Copyright (c) 2002 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:  Ussd Sat Client.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "cphcltussdimp.h" 
-#include    "phcltclientserver.h" 
-#include    <cphcltussdsatclient.h> 
-#include    <cphcltussd.h> 
-
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-#ifndef CPHCLTUSSDSATACTIVE_H
-#define CPHCLTUSSDSATACTIVE_H
-
-/**
-* The waiter class for SAT sessions.
-*/
-NONSHARABLE_CLASS( CPhCltUssdSatActive ) : public CActive
-    {
-    public:
-
-        /**
-        * Constructor.
-        */
-        CPhCltUssdSatActive();
-
-        /**
-        * Destructor.
-        */
-        ~CPhCltUssdSatActive();
-
-        /**
-        * Set this active object active.
-        * Hides the function derived from CActive.
-        */
-        void SetActive();
-
-        /**
-        * Wait until the Sat Session is ended.
-        * @return The error code of the session.
-        */
-        TInt WaitSatSessionToEnd();
-
-
-    protected:  // From base classes
-
-        /**
-        * @see CActive::RunL
-        */
-        void RunL();
-
-        /**
-        * @see CActive::DoCancel
-        */
-        void DoCancel();
-
-
-    private:
-
-        // The Active scheduler waiter.
-        CActiveSchedulerWait iSatWaiter;
-
-        // The error code storage place.
-        TInt* iError;
-    };
-
-#endif // CPHCLTUSSDSATACTIVE_H
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatActive::CPhCltUssdSatActive
-//
-// -----------------------------------------------------------------------------
-//
-CPhCltUssdSatActive::CPhCltUssdSatActive() : CActive( EPriorityStandard )
-    {
-    CActiveScheduler::Add( this );
-    }
-
-
-// Destructor
-CPhCltUssdSatActive::~CPhCltUssdSatActive()
-    {
-    Cancel();
-    if ( iSatWaiter.IsStarted() )
-        {
-        iSatWaiter.AsyncStop();
-        }
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatActive::SetActive
-//
-// -----------------------------------------------------------------------------
-//
-void CPhCltUssdSatActive::SetActive()
-    {
-    CActive::SetActive();
-    iError = NULL;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatActive::WaitSatSessionToEnd
-//
-// -----------------------------------------------------------------------------
-//
-TInt CPhCltUssdSatActive::WaitSatSessionToEnd()
-    {
-    if ( !IsActive() )
-        {
-        if ( iError )
-            {
-            return *iError;
-            }
-        else
-            {
-            return KErrNone;
-            }
-        }
-
-    TInt error = KErrNone;
-    iError = &error;
-    iSatWaiter.Start();
-    return error;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatActive::RunL
-//
-// -----------------------------------------------------------------------------
-//
-void CPhCltUssdSatActive::RunL()
-    {
-    if ( iError )
-        {
-        *iError = iStatus.Int();
-        }
-    if ( iSatWaiter.IsStarted() )
-        {
-        iSatWaiter.AsyncStop();
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatActive::DoCancel
-//
-// -----------------------------------------------------------------------------
-//
-void CPhCltUssdSatActive::DoCancel()
-    {
-    if ( iError )
-        {
-        *iError = KErrCancel;
-        }
-    }
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatClient::CPhCltUssdSatClient
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CPhCltUssdSatClient::CPhCltUssdSatClient()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatClient::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CPhCltUssdSatClient::ConstructL( TBool aShowNotes )
-    {
-    iUssdWrapper = CPhCltUssdImp::NewL( aShowNotes );
-
-    iShowNotes = aShowNotes;
-
-    iSatActive = new( ELeave ) CPhCltUssdSatActive();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatClient::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CPhCltUssdSatClient* CPhCltUssdSatClient::NewL( TBool aShowNotes )
-    {
-    CPhCltUssdSatClient* self = new ( ELeave ) CPhCltUssdSatClient;
-    
-    CleanupStack::PushL( self );
-    self->ConstructL( aShowNotes );
-    CleanupStack::Pop();
-    
-    return self;
-    }
-
-
-// Destructor
-EXPORT_C CPhCltUssdSatClient::~CPhCltUssdSatClient()
-    {
-    if ( iSatActive )
-        {
-        if ( iSatActive->IsActive() )
-            {
-            iUssdWrapper->StopSAT();
-            }
-        delete iSatActive;
-        iSatActive = NULL;
-        }
-
-    delete iUssdWrapper;
-    iUssdWrapper = NULL;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatClient::SendSatMessage
-// Send SAT message and receive the last message.
-// 
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TInt CPhCltUssdSatClient::SendSatMessage( 
-    const TDesC& aSendMessage, 
-    const TUint8 iSendDcs,
-    TDes& aReceiveMessage,
-    TBool& aSendCompletedFirst,
-    TUint8& aReceivedDcs) 
-    {
-    // Do not process request if earlier request is ongoing.
-    if ( iSatActive->IsActive() )
-        {
-        // Stop (complete) the earlier request so that we can send new
-        // SATmessage during next function call.
-        iUssdWrapper->StopSAT();
-        return KErrInUse;
-        }
-    iUssdWrapper->SetDCS( iSendDcs );
-    iSatError = KErrNone;
-    iSendCompletedFirst = &aSendCompletedFirst;
-    *iSendCompletedFirst = ETrue;
-    iReceiveMessage.Set( aReceiveMessage );
-    aReceiveMessage.Zero();
-    aReceivedDcs = EPhCltDcsUnknown;
-    
-    iShowNotesAndDcs = 0; // reset the variable
-    if ( iShowNotes )
-        {
-        iShowNotesAndDcs = KPhCltShowNotes;
-        }
-
-    TPckg< TUint > showNotesAndDcs( iShowNotesAndDcs );
-
-    // Send receive message to the server. status is completed when Ussd session
-    // ends.
-    iUssdWrapper->StartSAT( 
-        iSatActive->iStatus, 
-        aReceiveMessage , 
-        showNotesAndDcs );
-
-    iSatActive->SetActive();
-
-    
-    // Now send the string according to the parameter.
-    TPtrC pMessage( aSendMessage );
-    iSatError = iUssdWrapper->SendUssd( pMessage );
-
-    if ( iSatError != KErrNone )
-        {
-        iSendCompletedFirst = NULL;
-        iUssdWrapper->StopSAT();
-
-        iSatActive->WaitSatSessionToEnd();
-        return iSatError; // Message send error
-        }
-    
-    // Wait until the Ussd conversation is over:
-    TInt satWaiterError = iSatActive->WaitSatSessionToEnd();
-    if ( satWaiterError > KErrNone )
-        {
-        *iSendCompletedFirst = EFalse;
-        }
-    
-    // Get the error code:
-    iSatError = Min ( iSatError, satWaiterError );
-    
-    iSendCompletedFirst = NULL;
-
-    // Return the DCS to the caller.
-    DecodeDcs( aReceivedDcs );
-    aReceivedDcs = iShowNotesAndDcs;
-    return iSatError; // Receive error code
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatClient::SendSatMessageCancel
-// 
-// Cancels the out-standing request.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CPhCltUssdSatClient::SendSatMessageCancel()
-    {
-    iUssdWrapper->SendUssdCancel();
-    iSendCompletedFirst = NULL;
-    iUssdWrapper->StopSAT();
-    iSatActive->Cancel();
-    }
-
-// -----------------------------------------------------------------------------
-// CPhCltUssdSatClient::DecodeDcs
-// 
-// In this function the DCS received from PhoneServer is decoded.
-// -----------------------------------------------------------------------------
-//
-void CPhCltUssdSatClient::DecodeDcs( TUint8& aReceivedDcs ) 
-    {
-    // Check what DCS was used, and update aReceivedDcs
-    if ( iShowNotesAndDcs == KPhCltDcs7Bit )
-        {
-        aReceivedDcs = EPhCltDcs7Bit;
-        }
-    else if ( iShowNotesAndDcs == KPhCltDcs8Bit )
-        {
-        aReceivedDcs = EPhCltDcs8Bit;
-        }
-    else if ( iShowNotesAndDcs == KPhCltDcsUcs2 )
-        {
-        aReceivedDcs = EPhCltDcsUCS2;
-        }
-    else
-        {
-        aReceivedDcs = EPhCltDcsUnknown;
-        }
-    }
-
-
-//  End of File