presadap12/impsplugin/src/cimpspluginloginrequest.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 26 Jan 2010 11:50:09 +0200
changeset 2 7b3b89e6be20
parent 0 094583676ce7
permissions -rw-r--r--
Revision: 201001 Kit: 201004

/*
* 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: IMPS plugin login request
*
*/


#include <ximpprotocolconnectionhost.h>
#include "CImpsPluginLoginRequest.h"
#include "impsconnectionmanagercontrolif.h"
#include "impsdebugprint.h"
#include "CImpsPluginAccessHandler.h"



// ======== MEMBER FUNCTIONS ========

// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::CImpsPluginLoginRequest
// ---------------------------------------------------------------------------
//
CImpsPluginLoginRequest::CImpsPluginLoginRequest(
    MImpsPrtPluginConnectionManager& aConnMan,
    TXIMPRequestId aRequestId ) :
        CActive( EPriorityNormal ),
        iRequestId( aRequestId ),
        iConnMan( aConnMan )
    {
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::CImpsPluginLoginRequest Start" ) );
    CActiveScheduler::Add( this );
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::CImpsPluginLoginRequest End" ) );
    }


// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::ConstructL
// ---------------------------------------------------------------------------
//
void CImpsPluginLoginRequest::ConstructL()
    {
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::CImpsPluginLoginRequest Start-End" ) );
    }


// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::NewL
// ---------------------------------------------------------------------------
//
CImpsPluginLoginRequest* CImpsPluginLoginRequest::NewL(
    MImpsPrtPluginConnectionManager& aConnMan,
    TXIMPRequestId aRequestId )
    {
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::NewL Start" ) );

    CImpsPluginLoginRequest* self =
        new( ELeave ) CImpsPluginLoginRequest( aConnMan, aRequestId );
    CleanupStack::PushL( self );
    self->ConstructL();
    CleanupStack::Pop( self );

    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::NewL End" ) );
    return self;
    }


// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::NewLC
// ---------------------------------------------------------------------------
//
CImpsPluginLoginRequest* CImpsPluginLoginRequest::NewLC(
    MImpsPrtPluginConnectionManager& aConnMan,
    TXIMPRequestId aRequestId )
    {
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::NewLC Start" ) );

    CImpsPluginLoginRequest* self =
        CImpsPluginLoginRequest::NewL( aConnMan, aRequestId );
    CleanupStack::PushL( self );

    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::NewLC End" ) );
    return self;
    }

// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::~CImpsPluginLoginRequest
// ---------------------------------------------------------------------------
//
CImpsPluginLoginRequest::~CImpsPluginLoginRequest()
    {
    IMPS_DP( D_IMPS_LIT( "::~CImpsPluginLoginRequest Start-End" ) );
    CActive::Cancel();
    iConnMan.Remove( this );
    }


// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::DoCancel()
// ---------------------------------------------------------------------------
//
void CImpsPluginLoginRequest::DoCancel()
    {
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::DoCancel Start" ) );

    iConnMan.AccessHandler().Cancel( KErrCancel );

    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::DoCancel End" ) );
    }


// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::RunL()
// ---------------------------------------------------------------------------
//
void CImpsPluginLoginRequest::RunL()
    {
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::RunL Start" ) );

    User::LeaveIfError( iStatus.Int() );

    // complete prfw request

    iConnMan.HandleToHost().HandleRequestCompleted( iRequestId, KErrNone );

    delete this;

    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::Login successfully" ) );
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::RunL End" ) );
    }


// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::RunError
// ---------------------------------------------------------------------------
//
TInt CImpsPluginLoginRequest::RunError( TInt  aError )
    {
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::RunError Start" ) );

    iConnMan.HandleToHost().HandleRequestCompleted( iRequestId, aError );

    IMPS_DP( D_IMPS_LIT( "-------------------------------------------" ) );

    IMPS_DP( D_IMPS_LIT( "Data Back to Presence framwork" ) );

    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::RunError - id:  %d" ), aError );

    IMPS_DP( D_IMPS_LIT( "-------------------------------------------" ) );

    delete this;
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::RunError End" ) );
    return KErrNone;
    }

// ---------------------------------------------------------------------------
// CImpsPluginLoginRequest::IssueLoginRequest
// ---------------------------------------------------------------------------
//
void CImpsPluginLoginRequest::IssueLoginRequestL()
    {
    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::IssueLoginRequestL Start" ) );

    iConnMan.AccessHandler().LogInL( iStatus,
                                     iConnMan.Password(),
                                     iConnMan.UserName(),
                                     iConnMan.ServerAddress(),
                                     iConnMan.IapId()
                                   );
    // signal the scheduler
    SetActive();

    IMPS_DP( D_IMPS_LIT( "CImpsPluginLoginRequest::IssueLoginRequestL End" ) );
    }

// End of file