libktorrent  2.1.1
key.h
1 /***************************************************************************
2  * Copyright (C) 2005 by Joris Guisson *
3  * joris.guisson@gmail.com *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) any later version. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19  ***************************************************************************/
20 #ifndef DHTKEY_H
21 #define DHTKEY_H
22 
23 #include <QByteArray>
24 #include <util/sha1hash.h>
25 #include <ktorrent_export.h>
26 
27 
28 namespace dht
29 {
30 
38  class KTORRENT_EXPORT Key : public bt::SHA1Hash
39  {
40  public:
44  Key();
45 
51  Key(const bt::SHA1Hash & k);
52 
57  Key(const QByteArray & ba);
58 
63  Key(const bt::Uint8* d);
64 
66  ~Key() override;
67 
72  static Key random();
73 
75  static Key min();
76 
78  static Key max();
79 
85  bool operator == (const Key & other) const;
86 
92  bool operator != (const Key & other) const;
93 
99  bool operator < (const Key & other) const;
100 
101 
107  bool operator <= (const Key & other) const;
108 
109 
115  bool operator > (const Key & other) const;
116 
122  bool operator >= (const Key & other) const;
123 
127  Key operator / (int value) const;
128 
134  friend KTORRENT_EXPORT Key operator + (const Key & a, const Key & b);
135 
141  friend KTORRENT_EXPORT Key operator - (const Key & a, const Key & b);
142 
148  friend KTORRENT_EXPORT Key operator + (const Key & a, bt::Uint8 value);
149 
156  static Key distance(const Key & a, const Key & b);
157 
164  static Key mid(const Key & a, const Key & b);
165  };
166 
167 }
168 
169 #endif
dht::Key
Key in the distributed hash table.
Definition: key.h:57
bt::SHA1Hash
Stores a SHA1 hash.
Definition: sha1hash.h:41