comparison BitDecoder.cpp @ 49:f8d0ea827db3

Use BitArray.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Mon, 10 Sep 2012 23:59:46 +0200
parents 41cc0d8ac77f
children b9515dc35fe4
comparison
equal deleted inserted replaced
48:ef429402e03b 49:f8d0ea827db3
39 } 39 }
40 return result; 40 return result;
41 } 41 }
42 */ 42 */
43 43
44 QMap<QString, QBitArray> BitDecoder::createEncoder() const 44 QMap<QString, BitArray> BitDecoder::createEncoder() const
45 { 45 {
46 QMap<QString, QBitArray> retVal; 46 QMap<QString, BitArray> retVal;
47 if (!_data.isNull()) { 47 if (!_data.isNull()) {
48 retVal.insert(_data, QBitArray()); 48 retVal.insert(_data, BitArray());
49 } 49 }
50 if (low) { 50 if (low) {
51 QMap<QString, QBitArray> vals = low->createEncoder(); 51 QMap<QString, BitArray> vals = low->createEncoder();
52 for(QMap<QString, QBitArray>::const_iterator it = vals.begin(); 52 for(QMap<QString, BitArray>::const_iterator it = vals.begin();
53 it != vals.end(); ++it) { 53 it != vals.end(); ++it) {
54 retVal.insert(it.key(), unite(QBitArray(1, false), it.value())); 54 retVal.insert(it.key(), unite(BitArray(1, false), it.value()));
55 } 55 }
56 } 56 }
57 if (high) { 57 if (high) {
58 QMap<QString, QBitArray> vals = high->createEncoder(); 58 QMap<QString, BitArray> vals = high->createEncoder();
59 for(QMap<QString, QBitArray>::const_iterator it = vals.begin(); 59 for(QMap<QString, BitArray>::const_iterator it = vals.begin();
60 it != vals.end(); ++it) { 60 it != vals.end(); ++it) {
61 retVal.insert(it.key(), unite(QBitArray(1, true), it.value())); 61 retVal.insert(it.key(), unite(BitArray(1, true), it.value()));
62 } 62 }
63 } 63 }
64 return retVal; 64 return retVal;
65 } 65 }
66 66
67 QBitArray BitDecoder::bitsFromString(const QString& str) 67 BitArray BitDecoder::bitsFromString(const QString& str)
68 { 68 {
69 QBitArray bits(str.size()); 69 BitArray bits(str.size());
70 for (int i = 0; i < str.size(); ++i) { 70 for (int i = 0; i < str.size(); ++i) {
71 if (str[i] == '1') 71 if (str[i] == '1')
72 bits[i] = true; 72 bits.setBit(i, true);
73 else if (str[i] == '0') 73 else if (str[i] == '0')
74 bits[i] = false; 74 bits.setBit(i, false);
75 else 75 else
76 throw InvalidDataException(); 76 throw InvalidDataException();
77 } 77 }
78 return bits; 78 return bits;
79 } 79 }