--- a/cmmanager/cmmgr/cmmserver/src/cmmconnmethoditem.cpp Thu Jun 17 22:32:02 2010 +0100
+++ b/cmmanager/cmmgr/cmmserver/src/cmmconnmethoditem.cpp Thu Jul 22 16:37:38 2010 +0100
@@ -19,6 +19,9 @@
*/
+#include <cmmanagerdef.h>
+#include <cmpluginembdestinationdef.h>
+
#include "cmmconnmethoditem.h"
@@ -27,11 +30,15 @@
// ---------------------------------------------------------------------------
//
TCmmConnMethodItem::TCmmConnMethodItem()
+ :
+ iId( 0 ),
+ iBearerType( 0 ),
+ iBearerPriority( 0 ),
+ iPriority( 0 ),
+ iIsVirtual( 0 ),
+ iLinkedIapId( 0 ),
+ iLinkedSnapId( 0 )
{
- iId = 0;
- iBearerType = 0;
- iBearerPriority = 0;
- iPriority = 0;
}
// ---------------------------------------------------------------------------
@@ -42,12 +49,18 @@
TUint32 aId,
TUint32 aBearerType,
TUint aBearerPriority,
- TUint aPriority )
+ TUint aPriority,
+ TBool aIsVirtual,
+ TUint32 aLinkedIapId,
+ TUint32 aLinkedSnapId )
:
iId( aId ),
iBearerType( aBearerType ),
iBearerPriority( aBearerPriority ),
- iPriority( aPriority )
+ iPriority( aPriority ),
+ iIsVirtual( aIsVirtual ),
+ iLinkedIapId( aLinkedIapId ),
+ iLinkedSnapId( aLinkedSnapId )
{
}
@@ -60,7 +73,27 @@
const TCmmConnMethodItem& aSecond )
{
// Zero if match, negative if first is smaller, positive otherwise.
- return ( TInt )aFirst.iPriority - ( TInt )aSecond.iPriority;
+ TInt result = ( TInt )aFirst.iPriority - ( TInt )aSecond.iPriority;
+
+ if ( result == 0 &&
+ aFirst.iPriority == CMManager::KDataMobilitySelectionPolicyPriorityWildCard )
+ {
+ // Embedded destination and virtual IAPs linking to SNAP have wildcard
+ // priority.
+ // If both connection methods have wildcard priority, only need to
+ // ensure that an embedded destination looses in priority to everything
+ // else.
+ if ( aFirst.iBearerType == KUidEmbeddedDestination )
+ {
+ result = 1; // Positive.
+ }
+ else if ( aSecond.iBearerType == KUidEmbeddedDestination )
+ {
+ result = -1; // Negative.
+ }
+ }
+
+ return result;
}
// ---------------------------------------------------------------------------
@@ -81,4 +114,50 @@
return result;
}
+// ---------------------------------------------------------------------------
+// Return ETrue if this connection method item represents a virtual
+// destination.
+// ---------------------------------------------------------------------------
+//
+TBool TCmmConnMethodItem::IsVirtual() const
+ {
+ return iIsVirtual;
+ }
+
+// ---------------------------------------------------------------------------
+// Return ETrue if this connection method item represents an embedded
+// destination.
+// ---------------------------------------------------------------------------
+//
+TBool TCmmConnMethodItem::IsEmbedded() const
+ {
+ // No traces.
+ TBool result( EFalse );
+ if ( iBearerType == KUidEmbeddedDestination )
+ {
+ result = ETrue;
+ }
+ return result;
+ }
+
+// ---------------------------------------------------------------------------
+// If this is a virtual IAP that points to an IAP, returns the ID of that IAP,
+// 0 otherwise.
+// ---------------------------------------------------------------------------
+//
+TUint32 TCmmConnMethodItem::LinkedIapId() const
+ {
+ return iLinkedIapId;
+ }
+
+// ---------------------------------------------------------------------------
+// If this is a virtual IAP that points to a SNAP, returns the ID of that SNAP,
+// 0 otherwise.
+// ---------------------------------------------------------------------------
+//
+TUint32 TCmmConnMethodItem::LinkedSnapId() const
+ {
+ return iLinkedSnapId;
+ }
+
// End of file