cmmanager/cmmgr/cmmserver/src/cmmconnmethoditem.cpp
author hgs
Thu, 10 Jun 2010 16:00:16 +0300
changeset 40 c5b848e6c7d1
parent 20 9c97ad6591ae
permissions -rw-r--r--
201023
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
* Class representing any kind on connection method, including embedded
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
* destination. Used for priority based ordering of connection methods inside
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
* destinations.
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
*
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
*/
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
40
hgs
parents: 20
diff changeset
    22
#include <cmmanagerdef.h>
hgs
parents: 20
diff changeset
    23
#include <cmpluginembdestinationdef.h>
hgs
parents: 20
diff changeset
    24
20
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "cmmconnmethoditem.h"
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
// ---------------------------------------------------------------------------
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
// Constructor.
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
// ---------------------------------------------------------------------------
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
//
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
TCmmConnMethodItem::TCmmConnMethodItem()
40
hgs
parents: 20
diff changeset
    33
        :
hgs
parents: 20
diff changeset
    34
        iId( 0 ),
hgs
parents: 20
diff changeset
    35
        iBearerType( 0 ),
hgs
parents: 20
diff changeset
    36
        iBearerPriority( 0 ),
hgs
parents: 20
diff changeset
    37
        iPriority( 0 ),
hgs
parents: 20
diff changeset
    38
        iIsVirtual( 0 ),
hgs
parents: 20
diff changeset
    39
        iLinkedIapId( 0 ),
hgs
parents: 20
diff changeset
    40
        iLinkedSnapId( 0 )           
20
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    {
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
    }
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
// ---------------------------------------------------------------------------
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
// Constructor.
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
// ---------------------------------------------------------------------------
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
//
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
TCmmConnMethodItem::TCmmConnMethodItem(
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
        TUint32 aId,
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
        TUint32 aBearerType,
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
        TUint aBearerPriority,
40
hgs
parents: 20
diff changeset
    52
        TUint aPriority,
hgs
parents: 20
diff changeset
    53
        TBool aIsVirtual,
hgs
parents: 20
diff changeset
    54
        TUint32 aLinkedIapId,
hgs
parents: 20
diff changeset
    55
        TUint32 aLinkedSnapId )
20
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
        :
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
        iId( aId ),
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
        iBearerType( aBearerType ),
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
        iBearerPriority( aBearerPriority ),
40
hgs
parents: 20
diff changeset
    60
        iPriority( aPriority ),
hgs
parents: 20
diff changeset
    61
        iIsVirtual( aIsVirtual ),
hgs
parents: 20
diff changeset
    62
        iLinkedIapId( aLinkedIapId ),
hgs
parents: 20
diff changeset
    63
        iLinkedSnapId( aLinkedSnapId )
20
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
    {
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
    }
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
// ---------------------------------------------------------------------------
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
// A comparison function. Uses priority since items are in priority order.
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
// ---------------------------------------------------------------------------
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
//
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
TInt TCmmConnMethodItem::Compare(
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
        const TCmmConnMethodItem& aFirst,
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
        const TCmmConnMethodItem& aSecond )
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
    {
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
    // Zero if match, negative if first is smaller, positive otherwise.
40
hgs
parents: 20
diff changeset
    76
    TInt result = ( TInt )aFirst.iPriority - ( TInt )aSecond.iPriority;
hgs
parents: 20
diff changeset
    77
hgs
parents: 20
diff changeset
    78
    if ( result == 0 &&
hgs
parents: 20
diff changeset
    79
            aFirst.iPriority == CMManager::KDataMobilitySelectionPolicyPriorityWildCard )
hgs
parents: 20
diff changeset
    80
        {
hgs
parents: 20
diff changeset
    81
        // Embedded destination and virtual IAPs linking to SNAP have wildcard
hgs
parents: 20
diff changeset
    82
        // priority.
hgs
parents: 20
diff changeset
    83
        // If both connection methods have wildcard priority, only need to
hgs
parents: 20
diff changeset
    84
        // ensure that an embedded destination looses in priority to everything
hgs
parents: 20
diff changeset
    85
        // else.
hgs
parents: 20
diff changeset
    86
        if ( aFirst.iBearerType == KUidEmbeddedDestination )
hgs
parents: 20
diff changeset
    87
            {
hgs
parents: 20
diff changeset
    88
            result = 1; // Positive.
hgs
parents: 20
diff changeset
    89
            }
hgs
parents: 20
diff changeset
    90
        else if ( aSecond.iBearerType == KUidEmbeddedDestination )
hgs
parents: 20
diff changeset
    91
            {
hgs
parents: 20
diff changeset
    92
            result = -1; // Negative.
hgs
parents: 20
diff changeset
    93
            }
hgs
parents: 20
diff changeset
    94
        }
hgs
parents: 20
diff changeset
    95
    
hgs
parents: 20
diff changeset
    96
    return result;
20
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
    }
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
// ---------------------------------------------------------------------------
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
// A comparison function to find a specific item by ID.
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
// (Items are not sorted by ID in the array.)
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
// ---------------------------------------------------------------------------
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
//
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
TBool TCmmConnMethodItem::FindCompare(
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
        const TUint32* aKey,
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
        const TCmmConnMethodItem& aEntry )
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    {
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
    // True if match, false otherwise.
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
    TBool result( EFalse );
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
    if ( *aKey == aEntry.iId )
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
        {
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
        result = ETrue;
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
        }
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
    return result;
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
    }
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
40
hgs
parents: 20
diff changeset
   117
// ---------------------------------------------------------------------------
hgs
parents: 20
diff changeset
   118
// Return ETrue if this connection method item represents a virtual
hgs
parents: 20
diff changeset
   119
// destination.
hgs
parents: 20
diff changeset
   120
// ---------------------------------------------------------------------------
hgs
parents: 20
diff changeset
   121
//
hgs
parents: 20
diff changeset
   122
TBool TCmmConnMethodItem::IsVirtual() const
hgs
parents: 20
diff changeset
   123
    {
hgs
parents: 20
diff changeset
   124
    return iIsVirtual;
hgs
parents: 20
diff changeset
   125
    }
hgs
parents: 20
diff changeset
   126
hgs
parents: 20
diff changeset
   127
// ---------------------------------------------------------------------------
hgs
parents: 20
diff changeset
   128
// Return ETrue if this connection method item represents an embedded
hgs
parents: 20
diff changeset
   129
// destination.
hgs
parents: 20
diff changeset
   130
// ---------------------------------------------------------------------------
hgs
parents: 20
diff changeset
   131
//
hgs
parents: 20
diff changeset
   132
TBool TCmmConnMethodItem::IsEmbedded() const
hgs
parents: 20
diff changeset
   133
    {
hgs
parents: 20
diff changeset
   134
    // No traces.
hgs
parents: 20
diff changeset
   135
    TBool result( EFalse );
hgs
parents: 20
diff changeset
   136
    if ( iBearerType == KUidEmbeddedDestination )
hgs
parents: 20
diff changeset
   137
        {
hgs
parents: 20
diff changeset
   138
        result = ETrue;
hgs
parents: 20
diff changeset
   139
        }
hgs
parents: 20
diff changeset
   140
    return result;
hgs
parents: 20
diff changeset
   141
    }
hgs
parents: 20
diff changeset
   142
hgs
parents: 20
diff changeset
   143
// ---------------------------------------------------------------------------
hgs
parents: 20
diff changeset
   144
// If this is a virtual IAP that points to an IAP, returns the ID of that IAP,
hgs
parents: 20
diff changeset
   145
// 0 otherwise.
hgs
parents: 20
diff changeset
   146
// ---------------------------------------------------------------------------
hgs
parents: 20
diff changeset
   147
//
hgs
parents: 20
diff changeset
   148
TUint32 TCmmConnMethodItem::LinkedIapId() const
hgs
parents: 20
diff changeset
   149
    {
hgs
parents: 20
diff changeset
   150
    return iLinkedIapId;
hgs
parents: 20
diff changeset
   151
    }
hgs
parents: 20
diff changeset
   152
hgs
parents: 20
diff changeset
   153
// ---------------------------------------------------------------------------
hgs
parents: 20
diff changeset
   154
// If this is a virtual IAP that points to a SNAP, returns the ID of that SNAP,
hgs
parents: 20
diff changeset
   155
// 0 otherwise.
hgs
parents: 20
diff changeset
   156
// ---------------------------------------------------------------------------
hgs
parents: 20
diff changeset
   157
//
hgs
parents: 20
diff changeset
   158
TUint32 TCmmConnMethodItem::LinkedSnapId() const
hgs
parents: 20
diff changeset
   159
    {
hgs
parents: 20
diff changeset
   160
    return iLinkedSnapId;
hgs
parents: 20
diff changeset
   161
    }
hgs
parents: 20
diff changeset
   162
20
9c97ad6591ae Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
// End of file