828 resSB.Val( val64, EDecimal ); |
828 resSB.Val( val64, EDecimal ); |
829 TUint64 valU64( ( TUint64 ) val64 ); |
829 TUint64 valU64( ( TUint64 ) val64 ); |
830 TAccPolGenericIDAccessor::SetFeatureAttributeL( |
830 TAccPolGenericIDAccessor::SetFeatureAttributeL( |
831 genericID, KAccPolSBCapabilities, valU64 ); |
831 genericID, KAccPolSBCapabilities, valU64 ); |
832 |
832 |
833 ParseSubblocks( valU64, foundCapabilityGroups ); |
833 ParseSubblocksL( valU64, foundCapabilityGroups ); |
834 |
834 |
835 //set "values" to point to firts value |
835 //set "values" to point to firts value |
836 TLex8 values; |
836 TLex8 values; |
837 values.Assign( buf ); |
837 values.Assign( buf ); |
838 while ( ( values.Peek() != KLineEnd1 ) && |
838 while ( ( values.Peek() != KLineEnd1 ) && |
880 } |
880 } |
881 TLex lVal( capabilityGroupVal ); |
881 TLex lVal( capabilityGroupVal ); |
882 TUint32 capabilityGroupValue(0); |
882 TUint32 capabilityGroupValue(0); |
883 lVal.Val( capabilityGroupValue, EDecimal ); |
883 lVal.Val( capabilityGroupValue, EDecimal ); |
884 |
884 |
885 ParseNames( capabilityGroupValue, foundCapability ); |
885 ParseNamesL( capabilityGroupValue, foundCapability ); |
886 |
886 |
887 TInt capabilityIter(0); |
887 TInt capabilityIter(0); |
888 TInt foundCapabilityCount( foundCapability.Count() ); |
888 TInt foundCapabilityCount( foundCapability.Count() ); |
889 while ( capabilityIter < foundCapabilityCount ) |
889 while ( capabilityIter < foundCapabilityCount ) |
890 { |
890 { |
1013 |
1013 |
1014 API_TRACE_( "[AccFW:SrvUtil] CAccPolAccessoryPolicy::ParseGenericIDContentL - return void" ); |
1014 API_TRACE_( "[AccFW:SrvUtil] CAccPolAccessoryPolicy::ParseGenericIDContentL - return void" ); |
1015 } |
1015 } |
1016 |
1016 |
1017 // ----------------------------------------------------------------------------- |
1017 // ----------------------------------------------------------------------------- |
1018 // CAccPolAccessoryPolicy::ParseSubblocks |
1018 // CAccPolAccessoryPolicy::ParseSubblocksL |
1019 // Detecting subblocks and store them to destination array |
1019 // Detecting subblocks and store them to destination array |
1020 // (other items were commented in a header). |
1020 // (other items were commented in a header). |
1021 // ----------------------------------------------------------------------------- |
1021 // ----------------------------------------------------------------------------- |
1022 // |
1022 // |
1023 void CAccPolAccessoryPolicy::ParseSubblocks( const TUint64& aVal, RArray<TUint64>& aCaps ) |
1023 void CAccPolAccessoryPolicy::ParseSubblocksL( const TUint64& aVal, RArray<TUint64>& aCaps ) |
1024 { |
1024 { |
1025 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseSubblocks()" ); |
1025 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseSubblocksL()" ); |
1026 |
1026 |
1027 TUint64 sum( 0 ); |
1027 TUint64 sum( 0 ); |
1028 TUint64 curVal( 1 ); |
1028 TUint64 curVal( 1 ); |
1029 TInt curBit( 0 ); |
1029 TInt curBit( 0 ); |
1030 |
1030 |
1034 |
1034 |
1035 // Check if this subblock is defined in SB-def block |
1035 // Check if this subblock is defined in SB-def block |
1036 if ( ( curVal & aVal ) == curVal ) |
1036 if ( ( curVal & aVal ) == curVal ) |
1037 { |
1037 { |
1038 COM_TRACE_2( "[AccFW:SrvUtil] CAccConfigFileParser::(Cap) MATCH! HI:0x%x LO:0x%x", I64HIGH( curVal ), I64LOW( curVal ) ); |
1038 COM_TRACE_2( "[AccFW:SrvUtil] CAccConfigFileParser::(Cap) MATCH! HI:0x%x LO:0x%x", I64HIGH( curVal ), I64LOW( curVal ) ); |
1039 aCaps.Append( curVal ); // Append to found caps array |
1039 aCaps.AppendL( curVal ); // Append to found caps array |
1040 sum += curVal; |
1040 sum += curVal; |
1041 } |
1041 } |
1042 curBit++; |
1042 curBit++; |
1043 curVal = 2 * curVal; |
1043 curVal = 2 * curVal; |
1044 } |
1044 } |
1045 while ( sum < aVal && curBit < KAccConfigMaxCapabilityGroups ); |
1045 while ( sum < aVal && curBit < KAccConfigMaxCapabilityGroups ); |
1046 |
1046 |
1047 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseSubblocks - return void" ); |
1047 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseSubblocksL - return void" ); |
1048 } |
1048 } |
1049 |
1049 |
1050 // ----------------------------------------------------------------------------- |
1050 // ----------------------------------------------------------------------------- |
1051 // CAccPolAccessoryPolicy::ParseNames |
1051 // CAccPolAccessoryPolicy::ParseNamesL |
1052 // Detect all subblock names and append them to the gicen array. |
1052 // Detect all subblock names and append them to the gicen array. |
1053 // (other items were commented in a header). |
1053 // (other items were commented in a header). |
1054 // ----------------------------------------------------------------------------- |
1054 // ----------------------------------------------------------------------------- |
1055 // |
1055 // |
1056 void CAccPolAccessoryPolicy::ParseNames( const TUint32& aVal, RArray<TUint32>& aNames ) |
1056 void CAccPolAccessoryPolicy::ParseNamesL( const TUint32& aVal, RArray<TUint32>& aNames ) |
1057 { |
1057 { |
1058 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNames()" ); |
1058 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNamesL()" ); |
1059 TUint32 sum( 0 ); |
1059 TUint32 sum( 0 ); |
1060 TUint32 curVal( 1 ); |
1060 TUint32 curVal( 1 ); |
1061 TInt curBit( 0 ); |
1061 TInt curBit( 0 ); |
1062 |
1062 |
1063 do { |
1063 do { |
1064 COM_TRACE_2( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNames Binary for this roundtrip is 0x%x, total sum is 0x%x", curVal, sum ); |
1064 COM_TRACE_2( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNamesL Binary for this roundtrip is 0x%x, total sum is 0x%x", curVal, sum ); |
1065 COM_TRACE_1( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNames & 0x%x", curVal & aVal ); |
1065 COM_TRACE_1( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNamesL & 0x%x", curVal & aVal ); |
1066 // Check if this subblock is defined in SB-def block |
1066 // Check if this subblock is defined in SB-def block |
1067 |
1067 |
1068 if ( ( curVal & aVal ) == curVal ) |
1068 if ( ( curVal & aVal ) == curVal ) |
1069 { |
1069 { |
1070 COM_TRACE_1( "[AccFW:SrvUtil] (Name) MATCH! 0x%x",curVal ); |
1070 COM_TRACE_1( "[AccFW:SrvUtil] (Name) MATCH! 0x%x",curVal ); |
1071 aNames.Append( curVal ); // Append to found caps array |
1071 aNames.AppendL( curVal ); // Append to found caps array |
1072 sum += curVal; |
1072 sum += curVal; |
1073 } |
1073 } |
1074 curBit++; |
1074 curBit++; |
1075 curVal = 2 * curVal; |
1075 curVal = 2 * curVal; |
1076 } |
1076 } |
1077 while ( sum < aVal && curBit < KAccConfigMaxCapabilityGroups ); |
1077 while ( sum < aVal && curBit < KAccConfigMaxCapabilityGroups ); |
1078 |
1078 |
1079 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNames - return void" ); |
1079 COM_TRACE_( "[AccFW:SrvUtil] CAccConfigFileParser::ParseNamesL - return void" ); |
1080 } |
1080 } |
1081 |
1081 |
1082 // ----------------------------------------------------------------------------- |
1082 // ----------------------------------------------------------------------------- |
1083 // CAccPolAccessoryPolicy::BitNumber |
1083 // CAccPolAccessoryPolicy::BitNumber |
1084 // Find a bit from aBitmask. |
1084 // Find a bit from aBitmask. |