|
1 /* |
|
2 * Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Implementation for bearer and bearer group mapping. |
|
15 * |
|
16 */ |
|
17 |
|
18 #include "ConnMonBearerGroupManager.h" |
|
19 #include "log.h" |
|
20 |
|
21 // --------------------------------------------------------------------------- |
|
22 // Constructor |
|
23 // --------------------------------------------------------------------------- |
|
24 // |
|
25 CConnMonBearerGroupManager::CConnMonBearerGroupManager() |
|
26 { |
|
27 } |
|
28 |
|
29 // --------------------------------------------------------------------------- |
|
30 // Constructor |
|
31 // --------------------------------------------------------------------------- |
|
32 // |
|
33 CConnMonBearerGroupManager* CConnMonBearerGroupManager::NewL() |
|
34 { |
|
35 CConnMonBearerGroupManager* bgm = new( ELeave ) CConnMonBearerGroupManager(); |
|
36 |
|
37 CleanupStack::PushL( bgm ); |
|
38 bgm->ConstructL(); |
|
39 CleanupStack::Pop( bgm ); |
|
40 |
|
41 return bgm; |
|
42 } |
|
43 |
|
44 // --------------------------------------------------------------------------- |
|
45 // Constructor |
|
46 // --------------------------------------------------------------------------- |
|
47 // |
|
48 void CConnMonBearerGroupManager::ConstructL() |
|
49 { |
|
50 // Create group masks for each bearer |
|
51 // NOTE: Masks must be appended in correct order to be able to use |
|
52 // TConnMonDetailedBearer enumeration as indexes |
|
53 |
|
54 iBearerGroupMasks1.Reset(); |
|
55 // EBearerUnknown |
|
56 TUint unknown( 0 ); |
|
57 User::LeaveIfError( iBearerGroupMasks1.Append( unknown ) ); |
|
58 |
|
59 //EBearerCSD |
|
60 TUint csd = EBearerGroupCellular | EBearerGroupCircuitSwitched | EBearerGroup2G; |
|
61 User::LeaveIfError( iBearerGroupMasks1.Append( csd ) ); |
|
62 |
|
63 // EBearerWCDMA |
|
64 TUint wcdma = EBearerGroupCellular | EBearerGroupCellularPacket | EBearerGroup3G; |
|
65 User::LeaveIfError( iBearerGroupMasks1.Append( wcdma ) ); |
|
66 |
|
67 // EBearerLAN |
|
68 TUint lan = EBearerGroupNonCellular | EBearerGroupLANBased | EBearerGroupWired; |
|
69 User::LeaveIfError( iBearerGroupMasks1.Append( lan ) ); |
|
70 |
|
71 // EBearerCDMA2000 |
|
72 TUint cdma2000 = 0; |
|
73 User::LeaveIfError( iBearerGroupMasks1.Append( cdma2000 ) ); |
|
74 |
|
75 // EBearerGPRS |
|
76 TUint gprs = EBearerGroupCellular | EBearerGroupCellularPacket | |
|
77 EBearerGroup2G | EBearerGroup2GPacket; |
|
78 User::LeaveIfError( iBearerGroupMasks1.Append( gprs ) ); |
|
79 |
|
80 // EBearerHSCSD |
|
81 TUint hscsd = EBearerGroupCellular | EBearerGroupCircuitSwitched | EBearerGroup2G; |
|
82 User::LeaveIfError( iBearerGroupMasks1.Append( hscsd ) ); |
|
83 |
|
84 // EBearerEdgeGPRS |
|
85 TUint egprs = EBearerGroupCellular | EBearerGroupCellularPacket | |
|
86 EBearerGroup2G | EBearerGroup2GPacket; |
|
87 User::LeaveIfError( iBearerGroupMasks1.Append( egprs ) ); |
|
88 |
|
89 // EBearerWLAN |
|
90 TUint wlan = EBearerGroupNonCellular | EBearerGroupLANBased | EBearerGroupWLAN; |
|
91 User::LeaveIfError( iBearerGroupMasks1.Append( wlan ) ); |
|
92 |
|
93 // EBearerBluetooth |
|
94 TUint bt = EBearerGroupNonCellular | EBearerGroupIPOverConnectivityProtocol; |
|
95 User::LeaveIfError( iBearerGroupMasks1.Append( bt ) ); |
|
96 |
|
97 // EBearerVirtual |
|
98 TUint virt = EBearerGroupVirtual; |
|
99 User::LeaveIfError( iBearerGroupMasks1.Append( virt ) ); |
|
100 |
|
101 // EBearerVirtualVPN |
|
102 TUint virtVPN = EBearerGroupVirtual; |
|
103 User::LeaveIfError( iBearerGroupMasks1.Append( virtVPN ) ); |
|
104 |
|
105 // EBearerWcdmaCSD |
|
106 TUint wcdmaCSD = EBearerGroupCellular | EBearerGroupCircuitSwitched | EBearerGroup3G; |
|
107 User::LeaveIfError( iBearerGroupMasks1.Append( wcdmaCSD ) ); |
|
108 |
|
109 // EBearerHSDPA |
|
110 TUint hsdpa = EBearerGroupCellular | EBearerGroupCellularPacket | |
|
111 EBearerGroup3G | EBearerGroup3GPacket | EBearerGroupHSPA; |
|
112 User::LeaveIfError( iBearerGroupMasks1.Append( hsdpa ) ); |
|
113 |
|
114 // EBearerHSUPA (== EBearerHSDPA in this sense) |
|
115 TUint hsupa = hsdpa; |
|
116 User::LeaveIfError( iBearerGroupMasks1.Append( hsupa ) ); |
|
117 |
|
118 // EBearerHSxPA (== EBearerHSDPA and EBearerHSUPA in this sense) |
|
119 TUint hsxpa = hsdpa; |
|
120 User::LeaveIfError( iBearerGroupMasks1.Append( hsxpa ) ); |
|
121 } |
|
122 |
|
123 // --------------------------------------------------------------------------- |
|
124 // Destructor |
|
125 // --------------------------------------------------------------------------- |
|
126 // |
|
127 CConnMonBearerGroupManager::~CConnMonBearerGroupManager() |
|
128 { |
|
129 iBearerGroupMasks1.Close(); |
|
130 iBearerGroupMasks2.Close(); |
|
131 } |
|
132 |
|
133 // --------------------------------------------------------------------------- |
|
134 // GetBearerGroups |
|
135 // --------------------------------------------------------------------------- |
|
136 // |
|
137 TInt CConnMonBearerGroupManager::GetBearerGroups( |
|
138 const TConnMonBearerInfo aBearer, |
|
139 TUint& aBearerGroups1, |
|
140 TUint& aBearerGroups2 ) |
|
141 { |
|
142 // Check first group mask |
|
143 if ( iBearerGroupMasks1.Count() > 0 ) |
|
144 { |
|
145 if ( iBearerGroupMasks1.Count() >= aBearer ) |
|
146 { |
|
147 aBearerGroups1 = iBearerGroupMasks1[aBearer]; |
|
148 } |
|
149 else |
|
150 { |
|
151 return KErrNotFound; |
|
152 } |
|
153 } |
|
154 else |
|
155 { |
|
156 return KErrNotFound; |
|
157 } |
|
158 |
|
159 // And second |
|
160 if ( iBearerGroupMasks2.Count() > 0 ) |
|
161 { |
|
162 if ( iBearerGroupMasks2.Count() >= aBearer ) |
|
163 { |
|
164 aBearerGroups2 = iBearerGroupMasks2[aBearer]; |
|
165 } |
|
166 else |
|
167 { |
|
168 return KErrNotFound; |
|
169 } |
|
170 } |
|
171 |
|
172 return KErrNone; |
|
173 } |
|
174 |
|
175 // End of file |