btobexprofiles/obexsendservices/obexservicesendutils/src/BTSUPassKeyRequest.cpp
author hgs
Fri, 28 May 2010 17:03:06 +0300
changeset 32 19bd632b5100
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  CBTSUPasskeyRequest implementation
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
// INCLUDE FILES
hgs
parents:
diff changeset
    20
#include "BTSUPassKeyRequest.h"
hgs
parents:
diff changeset
    21
#include "BTSUDebug.h"
hgs
parents:
diff changeset
    22
#include "BTServiceUtils.h"
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
#include <utf.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    29
// CBTSUPasskeyRequest::CBTSUPasskeyRequest
hgs
parents:
diff changeset
    30
// C++ default constructor can NOT contain any code, that
hgs
parents:
diff changeset
    31
// might leave.
hgs
parents:
diff changeset
    32
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    33
//
hgs
parents:
diff changeset
    34
CBTSUPasskeyRequest::CBTSUPasskeyRequest() : CActive(EPriorityNormal)
hgs
parents:
diff changeset
    35
    {
hgs
parents:
diff changeset
    36
    CActiveScheduler::Add( this );
hgs
parents:
diff changeset
    37
    }
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// Destructor
hgs
parents:
diff changeset
    40
CBTSUPasskeyRequest::~CBTSUPasskeyRequest()
hgs
parents:
diff changeset
    41
    {
hgs
parents:
diff changeset
    42
    FLOG(_L("[BTSU]\t CBTSUPasskeyRequest::~CBTSUPasskeyRequest"));
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
    Cancel(); // Make sure we're cancelled
hgs
parents:
diff changeset
    45
    iNotif.Close();
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
    FLOG(_L("[BTSU]\t CBTSUPasskeyRequest:~CBTSUPasskeyRequest completed"));
hgs
parents:
diff changeset
    48
    }
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    51
// CBTSUPasskeyRequest::DoCancel()
hgs
parents:
diff changeset
    52
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    53
//
hgs
parents:
diff changeset
    54
void CBTSUPasskeyRequest::DoCancel()
hgs
parents:
diff changeset
    55
    {
hgs
parents:
diff changeset
    56
    FLOG(_L("[BTSU]\t CBTSUPasskeyRequest::DoCancel"));
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
    iNotif.CancelNotifier( KBTObexPasskeyQueryNotifierUid );
hgs
parents:
diff changeset
    59
    iNotif.Close();
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
    FLOG(_L("[BTSU]\t CBTSUPasskeyRequest::DoCancel completed"));
hgs
parents:
diff changeset
    62
    }
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    65
// CBTSUPasskeyRequest::RunL()
hgs
parents:
diff changeset
    66
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    67
//
hgs
parents:
diff changeset
    68
void CBTSUPasskeyRequest::RunL()
hgs
parents:
diff changeset
    69
    {
hgs
parents:
diff changeset
    70
    FTRACE(FPrint(_L( "[BTSU]\t CBTSUPasskeyRequest::RunL status %d"), iStatus.Int() ));
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
    if ( iStatus.Int() == KErrNone )
hgs
parents:
diff changeset
    73
        {
hgs
parents:
diff changeset
    74
        TBuf<KBTObexPasskeyMaxLength> tempResultBuffer;
hgs
parents:
diff changeset
    75
        CnvUtfConverter::ConvertToUnicodeFromUtf8( tempResultBuffer, iObexPasskey() );
hgs
parents:
diff changeset
    76
        iObexClient->UserPasswordL( tempResultBuffer );
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
        FTRACE(FPrint(_L("[BTSU]\t CBTSUPasskeyRequest::RunL user entered '%S'"), &tempResultBuffer ));
hgs
parents:
diff changeset
    79
        }
hgs
parents:
diff changeset
    80
    else
hgs
parents:
diff changeset
    81
        {
hgs
parents:
diff changeset
    82
        iObexClient->Error( KErrCancel );
hgs
parents:
diff changeset
    83
        }
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    iNotif.CancelNotifier( KBTObexPasskeyQueryNotifierUid );
hgs
parents:
diff changeset
    86
    iNotif.Close();
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
    FLOG(_L("[BTSU]\t CBTSUPasskeyRequest::RunL completed"));
hgs
parents:
diff changeset
    89
    }
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    92
// CBTSUPasskeyRequest::RunError()
hgs
parents:
diff changeset
    93
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    94
//
hgs
parents:
diff changeset
    95
TInt CBTSUPasskeyRequest::RunError()
hgs
parents:
diff changeset
    96
    {
hgs
parents:
diff changeset
    97
    FLOG(_L("[BTSU]\t CBTSUPasskeyRequest::RunError"));
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
    iNotif.CancelNotifier( KBTObexPasskeyQueryNotifierUid );
hgs
parents:
diff changeset
   100
    iNotif.Close();
hgs
parents:
diff changeset
   101
    return KErrNone;
hgs
parents:
diff changeset
   102
    }
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   105
// CBTSUPasskeyRequest::StartPassKeyRequestL()
hgs
parents:
diff changeset
   106
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   107
//
hgs
parents:
diff changeset
   108
void CBTSUPasskeyRequest::StartPassKeyRequestL( CObexClient* aObexClient )
hgs
parents:
diff changeset
   109
    {
hgs
parents:
diff changeset
   110
    FLOG(_L("[BTSU]\t CBTSUPasskeyRequest::StartPassKeyRequestL"));
hgs
parents:
diff changeset
   111
    __ASSERT_DEBUG( aObexClient != NULL, BTSUPanic( EBTSUPanicNullPointer ) );
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    User::LeaveIfError( iNotif.Connect() );
hgs
parents:
diff changeset
   114
    TPtrC8 dummy( KNullDesC8 );
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
    // Starts notifier and gets the passkey for Obex
hgs
parents:
diff changeset
   117
    iNotif.StartNotifierAndGetResponse( iStatus, KBTObexPasskeyQueryNotifierUid, dummy, iObexPasskey );
hgs
parents:
diff changeset
   118
    iObexClient = aObexClient;
hgs
parents:
diff changeset
   119
    SetActive();
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    FLOG(_L("[BTSU]\t CBTSUPasskeyRequest::StartPassKeyRequestL completed"));
hgs
parents:
diff changeset
   122
    }
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
//  End of File