equal
deleted
inserted
replaced
1 // Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of "Eclipse Public License v1.0" |
4 // under the terms of "Eclipse Public License v1.0" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
19 // |
19 // |
20 |
20 |
21 |
21 |
22 |
22 |
23 // Include Files |
23 // Include Files |
24 |
24 #include "tflogger.h" // For logging |
25 #include "OstTraceDefinitions.h" |
|
26 #ifdef OST_TRACE_COMPILER_IN_USE |
|
27 #include "ctlvTraces.h" |
|
28 #endif |
|
29 |
|
30 #include "CTlv.h" // Header of this class |
25 #include "CTlv.h" // Header of this class |
31 #include "TSatUtility.h" // Utility methods |
26 #include "TSatUtility.h" // Utility methods |
32 |
27 |
33 // ----------------------------------------------------------------------------- |
28 // ----------------------------------------------------------------------------- |
34 // CTlvBase::CTlvBase |
29 // CTlvBase::CTlvBase |
51 EXPORT_C TPtrC8 CTlvBase::Data |
46 EXPORT_C TPtrC8 CTlvBase::Data |
52 ( |
47 ( |
53 // None |
48 // None |
54 ) const |
49 ) const |
55 { |
50 { |
56 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLVBASE_DATA_1, "UTILITY: CTlvBase::Data"); |
51 TFLOGSTRING("UTILITY: CTlvBase::Data"); |
57 return iData; |
52 return iData; |
58 } |
53 } |
59 |
54 |
60 |
55 |
61 // ----------------------------------------------------------------------------- |
56 // ----------------------------------------------------------------------------- |
66 EXPORT_C void CTlvBase::SetData |
61 EXPORT_C void CTlvBase::SetData |
67 ( |
62 ( |
68 TPtrC8 aData |
63 TPtrC8 aData |
69 ) |
64 ) |
70 { |
65 { |
71 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLVBASE_SETDATA_1, "UTILITY: CTlvBase::SetData"); |
66 TFLOGSTRING("UTILITY: CTlvBase::SetData"); |
72 iData.Set( aData ); |
67 iData.Set( aData ); |
73 } |
68 } |
74 |
69 |
75 // ----------------------------------------------------------------------------- |
70 // ----------------------------------------------------------------------------- |
76 // CTlvBase::GetSize |
71 // CTlvBase::GetSize |
80 EXPORT_C TInt CTlvBase::GetSize |
75 EXPORT_C TInt CTlvBase::GetSize |
81 ( |
76 ( |
82 // None |
77 // None |
83 ) const |
78 ) const |
84 { |
79 { |
85 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLVBASE_GETSIZE_1, "UTILITY: CTlvBase::GetSize"); |
80 TFLOGSTRING("UTILITY: CTlvBase::GetSize"); |
86 return iData.Length(); |
81 return iData.Length(); |
87 } |
82 } |
88 |
83 |
89 // ----------------------------------------------------------------------------- |
84 // ----------------------------------------------------------------------------- |
90 // CTlvBase::GetTag |
85 // CTlvBase::GetTag |
94 EXPORT_C TUint8 CTlvBase::GetTag |
89 EXPORT_C TUint8 CTlvBase::GetTag |
95 ( |
90 ( |
96 // None |
91 // None |
97 ) const |
92 ) const |
98 { |
93 { |
99 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLVBASE_GETTAG_1, "UTILITY: CTlvBase::GetTag"); |
94 TFLOGSTRING("UTILITY: CTlvBase::GetTag"); |
100 return TUint8(iData[0] & KTagValueMask); |
95 return TUint8(iData[0] & KTagValueMask); |
101 } |
96 } |
102 |
97 |
103 // ----------------------------------------------------------------------------- |
98 // ----------------------------------------------------------------------------- |
104 // CTlvBase::GetComprehensionRequired |
99 // CTlvBase::GetComprehensionRequired |
108 EXPORT_C TBool CTlvBase::GetComprehensionRequired |
103 EXPORT_C TBool CTlvBase::GetComprehensionRequired |
109 ( |
104 ( |
110 // None |
105 // None |
111 ) const |
106 ) const |
112 { |
107 { |
113 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLVBASE_GETCOMPREHENSIONREQUIRED_1, "UTILITY: CTlvBase::GetComprehensionRequired"); |
108 TFLOGSTRING("UTILITY: CTlvBase::GetComprehensionRequired"); |
114 return (iData[0] & KTagCrMask) ? ETrue : EFalse; |
109 return (iData[0] & KTagCrMask) ? ETrue : EFalse; |
115 } |
110 } |
116 |
111 |
117 // ----------------------------------------------------------------------------- |
112 // ----------------------------------------------------------------------------- |
118 // CTlvBase::GetLength |
113 // CTlvBase::GetLength |
122 EXPORT_C TUint8 CTlvBase::GetLength |
117 EXPORT_C TUint8 CTlvBase::GetLength |
123 ( |
118 ( |
124 // None |
119 // None |
125 ) const |
120 ) const |
126 { |
121 { |
127 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLVBASE_GETLENGTH_1, "UTILITY: CTlvBase::GetLength"); |
122 TFLOGSTRING("UTILITY: CTlvBase::GetLength"); |
128 return (KTwoByteLengthCoding == iData[KTlvLengthStartPosition]) ? |
123 return (KTwoByteLengthCoding == iData[KTlvLengthStartPosition]) ? |
129 iData[KTlvLengthStartPosition + 1] : |
124 iData[KTlvLengthStartPosition + 1] : |
130 iData[KTlvLengthStartPosition]; |
125 iData[KTlvLengthStartPosition]; |
131 } |
126 } |
132 |
127 |
138 EXPORT_C TPtrC8 CTlvBase::GetValue |
133 EXPORT_C TPtrC8 CTlvBase::GetValue |
139 ( |
134 ( |
140 // None |
135 // None |
141 ) const |
136 ) const |
142 { |
137 { |
143 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLVBASE_GETVALUE_1, "UTILITY: CTlvBase::GetValue"); |
138 TFLOGSTRING("UTILITY: CTlvBase::GetValue"); |
144 TInt offset = (KTwoByteLengthCoding == iData[1]) ? 1 : 0; |
139 TInt offset = (KTwoByteLengthCoding == iData[1]) ? 1 : 0; |
145 return iData.Mid(2+offset, iData[1+offset]); |
140 return iData.Mid(2+offset, iData[1+offset]); |
146 } |
141 } |
147 |
142 |
148 // ----------------------------------------------------------------------------- |
143 // ----------------------------------------------------------------------------- |
166 EXPORT_C TUint8 CTlv::GetShortInfo |
161 EXPORT_C TUint8 CTlv::GetShortInfo |
167 ( |
162 ( |
168 TTlvSpesificDataType aType // Info spesific data type |
163 TTlvSpesificDataType aType // Info spesific data type |
169 ) |
164 ) |
170 { |
165 { |
171 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLV_GETSHORTINFO_1, "UTILITY: CTlv::GetShortInfo, type: %d", aType); |
166 TFLOGSTRING2("UTILITY: CTlv::GetShortInfo, type: %d", aType); |
172 // Information is generally at index 2. |
167 // Information is generally at index 2. |
173 TInt ind ( KTlvDataAreaStartPosition ); |
168 TInt ind ( KTlvDataAreaStartPosition ); |
174 TUint8 offset( 0 ); |
169 TUint8 offset( 0 ); |
175 |
170 |
176 // First determine if the length of the TLV is coded with 1 or 2 bytes to |
171 // First determine if the length of the TLV is coded with 1 or 2 bytes to |
270 ind = KTlvDataAreaStartPosition + offset + GetLength() - 2 + 2; |
265 ind = KTlvDataAreaStartPosition + offset + GetLength() - 2 + 2; |
271 break; |
266 break; |
272 } |
267 } |
273 default: |
268 default: |
274 { |
269 { |
275 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLV_GETSHORTINFO_2, "UTILITY: CTlv::GetShortInfo, Type unknown"); |
270 TFLOGSTRING("UTILITY: CTlv::GetShortInfo, Type unknown"); |
276 break; |
271 break; |
277 } |
272 } |
278 } |
273 } |
279 |
274 |
280 return iData[ind]; |
275 return iData[ind]; |
288 EXPORT_C TPtrC8 CTlv::GetData |
283 EXPORT_C TPtrC8 CTlv::GetData |
289 ( |
284 ( |
290 TTlvSpesificDataType aType //Info spesific data type |
285 TTlvSpesificDataType aType //Info spesific data type |
291 ) |
286 ) |
292 { |
287 { |
293 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLV_GETDATA_1, "UTILITY: CTlv::GetData, Data length: %d", iData.Length()); |
288 TFLOGSTRING2("UTILITY: CTlv::GetData, Data length: %d", iData.Length()); |
294 // Information is generally at index 2. |
289 // Information is generally at index 2. |
295 TInt ind ( 2 ); |
290 TInt ind ( 2 ); |
296 TUint8 offset( 0 ); |
291 TUint8 offset( 0 ); |
297 TInt length( 1 ); |
292 TInt length( 1 ); |
298 |
293 |
382 ind = KTlvDataAreaStartPosition + offset + 5; |
377 ind = KTlvDataAreaStartPosition + offset + 5; |
383 length = dataLength; |
378 length = dataLength; |
384 } |
379 } |
385 else |
380 else |
386 { |
381 { |
387 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLV_GETDATA_2, "UTILITY: CTlv::GetData, Data length 0"); |
382 TFLOGSTRING("UTILITY: CTlv::GetData, Data length 0"); |
388 return 0; |
383 return 0; |
389 } |
384 } |
390 break; |
385 break; |
391 } |
386 } |
392 default: |
387 default: |
393 { |
388 { |
394 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLV_GETDATA_3, "UTILITY: CTlv::GetData, Type unknown"); |
389 TFLOGSTRING("UTILITY: CTlv::GetData, Type unknown"); |
395 break; |
390 break; |
396 } |
391 } |
397 } |
392 } |
398 |
393 |
399 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLV_GETDATA_4, "UTILITY: CTlv::GetData, length: %d, ind: %d", length, ind); |
394 TFLOGSTRING3("UTILITY: CTlv::GetData, length: %d, ind: %d", |
|
395 length, ind); |
400 return iData.Mid( ind, length ); |
396 return iData.Mid( ind, length ); |
401 } |
397 } |
402 |
398 |
403 // ----------------------------------------------------------------------------- |
399 // ----------------------------------------------------------------------------- |
404 // CTlv::GetLongInfo |
400 // CTlv::GetLongInfo |
408 EXPORT_C TUint16 CTlv::GetLongInfo |
404 EXPORT_C TUint16 CTlv::GetLongInfo |
409 ( |
405 ( |
410 TTlvSpesificDataType aType // Info spesific data type |
406 TTlvSpesificDataType aType // Info spesific data type |
411 ) |
407 ) |
412 { |
408 { |
413 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLV_GETLONGINFO_1, "UTILITY: CTlv::GetLongInfo, type: %d", aType); |
409 TFLOGSTRING2("UTILITY: CTlv::GetLongInfo, type: %d", aType); |
414 TUint16 ret( 0x0000 ); |
410 TUint16 ret( 0x0000 ); |
415 |
411 |
416 switch( aType ) |
412 switch( aType ) |
417 { |
413 { |
418 case ETLV_LocationAreaCode: |
414 case ETLV_LocationAreaCode: |
452 KTlvDataAreaStartPosition + 1 ); |
448 KTlvDataAreaStartPosition + 1 ); |
453 break; |
449 break; |
454 } |
450 } |
455 default: |
451 default: |
456 { |
452 { |
457 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CTLV_GETLONGINFO_2, "UTILITY: CTlv::GetLongInfo, Type unknown"); |
453 TFLOGSTRING("UTILITY: CTlv::GetLongInfo, Type unknown"); |
458 break; |
454 break; |
459 } |
455 } |
460 } |
456 } |
461 |
457 |
462 return ret; |
458 return ret; |