bluetoothengine/btnotif/btnotifwrapper/src/btnotifwrapperproxy.cpp
author hgs
Mon, 03 May 2010 14:36:07 +0300
changeset 29 48ae3789ce00
child 31 a0ea99b6fa53
permissions -rw-r--r--
201017_2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     1
/*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     2
* ============================================================================
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     3
*  Name        : btnotifwrapperproxy.cpp
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     4
*  Part of     : bluetoothengine / btnotifwrapper
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     5
*  Description : ECOM plug-in entry implementation.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     6
*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     7
*  Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies).
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     8
*  All rights reserved.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
     9
*  This component and the accompanying materials are made available
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    10
*  under the terms of "Eclipse Public License v1.0"
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    11
*  which accompanies this distribution, and is available
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    12
*  at the URL "http://www.eclipse.org/legal/epl-v10.html".
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    13
*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    14
*  Initial Contributors:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    15
*  Nokia Corporation - initial contribution.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    16
*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    17
*  Contributors:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    18
*  Nokia Corporation
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    19
* ============================================================================
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    20
* Template version: 4.1
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    21
*/
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    22
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    23
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    24
#include <ecom/implementationproxy.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    25
#include <btmanclient.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    26
#include <btextnotifiers.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    27
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    28
#include <btextnotifierspartner.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    29
#endif
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    30
#include <btnotifierapi.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    31
//#include <networking/panuiinterfaces.h>
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    32
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    33
#include "btnotifwrapper.h"
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    34
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    35
/**  Granularity for constructing the array of notifiers */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    36
const TInt KBTNotifWrapperArraySize = 11;
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    37
/** Channel for discovery notifiers */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    38
const TUid KBTDiscoveryChannel = { 0x00000601 };
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    39
/** Channel for authentication and authorisation notifiers */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    40
const TUid KBTAuthChannel = {0x00000602};
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    41
/** Channel for OBEX passkey notifiers */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    42
//const TUid KBTObexAuthChannel = {0x00000603};
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    43
/** Channel for power mode query */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    44
//const TUid KBTPowerModeChannel = {0x00000605};
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    45
/** Channel for query notifiers */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    46
//const TUid KBTQueryChannel = {0x00000606};
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    47
/** Channel for power mode query */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    48
//const TUid KBTInfoChannel = {0x00000610};
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    49
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    50
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    51
// ======== LOCAL FUNCTIONS ========
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    52
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    53
// ---------------------------------------------------------------------------
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    54
// ?description
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    55
// ---------------------------------------------------------------------------
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    56
//
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    57
void CreateAndAppendNotifierLC( CArrayPtr<MEikSrvNotifierBase2>& aArray,
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    58
    const TUid& aUid, const TUid& aChannel )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    59
    {
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    60
    CBTNotifWrapper* notifier = CBTNotifWrapper::NewLC( aUid, aChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    61
    aArray.AppendL( notifier );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    62
    }
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    63
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    64
// ---------------------------------------------------------------------------
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    65
// ?description
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    67
//
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    68
CArrayPtr<MEikSrvNotifierBase2>* CreateNotifierArrayL()
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    69
    {
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    70
    CArrayPtrFlat<MEikSrvNotifierBase2>* notifiers = 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    71
        new( ELeave ) CArrayPtrFlat<MEikSrvNotifierBase2>( KBTNotifWrapperArraySize );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    72
    CleanupStack::PushL( notifiers );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    73
    // Create all the notifiers:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    74
    // Connection authorization notifier
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    75
    CreateAndAppendNotifierLC( *notifiers, KBTManAuthNotifierUid, KBTAuthChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    76
    // Old and new PIN notifiers
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    77
    CreateAndAppendNotifierLC( *notifiers, KBTManPinNotifierUid, KBTAuthChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    78
    CreateAndAppendNotifierLC( *notifiers, KBTPinCodeEntryNotifierUid, KBTAuthChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    79
    // Secure simple pairing notifiers
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    80
    CreateAndAppendNotifierLC( *notifiers, KBTNumericComparisonNotifierUid, KBTAuthChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    81
    CreateAndAppendNotifierLC( *notifiers, KBTPasskeyDisplayNotifierUid, KBTAuthChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    82
    
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    83
    CreateAndAppendNotifierLC( *notifiers, KDeviceSelectionNotifierUid, KBTDiscoveryChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    84
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    85
    /*
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    86
     * Other notifiers to be migrated:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    87
     * 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    88
     * existing stack notifiers:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    89
     * CreateAndAppendNotifierL( aArray, KPbapAuthNotifierUid, KBTObexPINChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    90
     * 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    91
     * S60 SDK API:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    92
     * CreateAndAppendNotifierL( aArray, KPowerModeSettingNotifierUid, KBTPowerModeChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    93
     *
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    94
     * S60-defined platform:
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    95
     * CreateAndAppendNotifierL( aArray, KBTObexPasskeyQueryNotifierUid, KBTObexPINChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    96
     * CreateAndAppendNotifierL( aArray, KBTGenericInfoNotifierUid, KBTInfoChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    97
     * CreateAndAppendNotifierL( aArray, KBTGenericQueryNotifierUid, KBTQueryChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    98
     * 
48ae3789ce00 201017_2
hgs
parents:
diff changeset
    99
     * new (PAN-related):
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   100
     * CreateAndAppendNotifierL( aArray, KBTPanDeviceSelectionNotifierUid, KBTDiscoveryChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   101
     * CreateAndAppendNotifierL( aArray, KBTPanNapUplinkAuthorisationNotifierUid, KBTAuthChannel );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   102
     */
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   103
    CleanupStack::Pop( notifiers->Count() + 1, notifiers );  // Each notifier + notifier array itself
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   104
    return notifiers;
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   105
    }
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   106
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   107
// ---------------------------------------------------------------------------
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   108
// ECOM entry point.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   109
// ---------------------------------------------------------------------------
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   110
//
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   111
const TImplementationProxy ImplementationTable[] =
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   112
    {
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   113
    IMPLEMENTATION_PROXY_ENTRY( 0x20026FEE, CreateNotifierArrayL )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   114
    };
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   115
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   116
// ======== GLOBAL FUNCTIONS ========
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   117
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   118
// ---------------------------------------------------------------------------
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   119
// ECOM factory method.
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   120
// ---------------------------------------------------------------------------
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   121
//
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   122
EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   123
    {
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   124
    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   125
    return ImplementationTable;
48ae3789ce00 201017_2
hgs
parents:
diff changeset
   126
    }