mirror of https://github.com/qTox/qTox.git
3 changed files with 89 additions and 2 deletions
@ -0,0 +1,59 @@ |
|||||||
|
#include "toxid.h" |
||||||
|
|
||||||
|
#include <tox/tox.h> |
||||||
|
#include <qregularexpression.h> |
||||||
|
|
||||||
|
#define TOX_ID_PUBLIC_KEY_LENGTH 64 |
||||||
|
#define TOX_ID_NO_SPAM_LENGTH 8 |
||||||
|
#define TOX_ID_CHECKSUM_LENGTH 4 |
||||||
|
#define TOX_HEX_ID_LENGTH 2*TOX_ADDRESS_SIZE |
||||||
|
|
||||||
|
ToxId::ToxId() |
||||||
|
: publicKey(), noSpam(), checkSum() |
||||||
|
{} |
||||||
|
|
||||||
|
ToxId::ToxId(const ToxId &other) |
||||||
|
: publicKey(other.publicKey), noSpam(other.noSpam), checkSum(other.checkSum) |
||||||
|
{} |
||||||
|
|
||||||
|
ToxId::ToxId(const QString &id) |
||||||
|
{ |
||||||
|
if (isToxId(id)) |
||||||
|
{ |
||||||
|
publicKey = id.left(TOX_ID_PUBLIC_KEY_LENGTH); |
||||||
|
noSpam = id.mid(TOX_ID_PUBLIC_KEY_LENGTH, TOX_ID_NO_SPAM_LENGTH); |
||||||
|
checkSum = id.mid(TOX_ID_PUBLIC_KEY_LENGTH + TOX_ID_NO_SPAM_LENGTH, TOX_ID_CHECKSUM_LENGTH); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
publicKey = id; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
bool ToxId::operator==(const ToxId& other) const |
||||||
|
{ |
||||||
|
return publicKey == other.publicKey; |
||||||
|
} |
||||||
|
|
||||||
|
bool ToxId::operator!=(const ToxId &other) const |
||||||
|
{ |
||||||
|
return publicKey != other.publicKey; |
||||||
|
} |
||||||
|
|
||||||
|
QString ToxId::toString() const |
||||||
|
{ |
||||||
|
return publicKey + noSpam + checkSum; |
||||||
|
} |
||||||
|
|
||||||
|
void ToxId::clear() |
||||||
|
{ |
||||||
|
publicKey.clear(); |
||||||
|
noSpam.clear(); |
||||||
|
checkSum.clear(); |
||||||
|
} |
||||||
|
|
||||||
|
bool ToxId::isToxId(const QString &id) |
||||||
|
{ |
||||||
|
const QRegularExpression hexRegExp("^[A-Fa-f0-9]+$"); |
||||||
|
return id.length() == TOX_HEX_ID_LENGTH && id.contains(hexRegExp); |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
#ifndef TOXID_H |
||||||
|
#define TOXID_H |
||||||
|
|
||||||
|
#include <QString> |
||||||
|
|
||||||
|
class ToxId |
||||||
|
{ |
||||||
|
public: |
||||||
|
ToxId(); |
||||||
|
ToxId(const ToxId& other); |
||||||
|
ToxId(const QString& id); |
||||||
|
|
||||||
|
bool operator==(const ToxId& other) const; |
||||||
|
bool operator!=(const ToxId& other) const; |
||||||
|
QString toString() const; |
||||||
|
void clear(); |
||||||
|
|
||||||
|
static bool isToxId(const QString& id); |
||||||
|
|
||||||
|
public: |
||||||
|
QString publicKey; |
||||||
|
QString noSpam; |
||||||
|
QString checkSum; |
||||||
|
}; |
||||||
|
|
||||||
|
#endif // TOXID_H
|
Loading…
Reference in new issue