Mercurial > dedupe
annotate HuffmanString.cpp @ 115:404795616b1e default tip
Added a lot of common files to ignore
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Sat, 25 Mar 2017 17:43:57 +0100 |
| parents | 76846cb92b5c |
| children |
| rev | line source |
|---|---|
|
21
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 #include "HuffmanString.hpp" |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
2 |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
3 HuffmanSet* HuffmanString::set = 0; |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
4 |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
5 HuffmanString::HuffmanString(const QString& str, HuffmanSet* set) |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
6 { |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
7 set = this->set; |
|
56
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
8 if (!set) { |
|
21
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
9 set = new HuffmanSet(); |
|
56
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
10 atexit(&atExit); |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
11 } |
|
21
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
12 this->set = set; |
|
34
fda70a362ed5
Remove whitespace.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
21
diff
changeset
|
13 |
|
21
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
14 key = set->insert(str); |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
15 } |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
16 |
|
56
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
17 void HuffmanString::atExit() |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
18 { |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
19 delete set; |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
20 set = 0; |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
21 } |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
22 |
|
21
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
23 QString HuffmanString::toString() const |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
24 { |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
25 return set->value(key); |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
26 } |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
27 |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
28 HuffmanString::operator QString() const |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
29 { |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
30 return toString(); |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
31 } |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
32 |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
33 bool HuffmanString::operator<(const HuffmanString& rhs) const |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
34 { |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
35 return this->toString() < rhs.toString(); |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
36 } |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
37 |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
38 bool HuffmanString::operator==(const HuffmanString& rhs) const |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
39 { |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
40 return this->toString() == rhs.toString(); |
|
3bcdb8bb6914
Huffman representations.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
41 } |
|
56
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
42 |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
43 HuffmanSet& HuffmanString::getSet() |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
44 { |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
45 return *set; |
|
76846cb92b5c
Clean up at exit.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
46 } |
