1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
qTox/corestructs.h

82 lines
1.6 KiB
C++

#ifndef CORESTRUCTS_H
#define CORESTRUCTS_H
// Some headers use Core structs but don't need to include all of core.h
// They should include this file directly instead to reduce compilation times
#include <QString>
class QFile;
class QTimer;
enum class Status : int {Online = 0, Away, Busy, Offline};
#define TOX_ID_PUBLIC_KEY_LENGTH 64
#define TOX_ID_NO_SPAM_LENGTH 8
#define TOX_ID_CHECKSUM_LENGTH 4
struct ToxID
{
QString publicKey;
QString noSpam;
QString checkSum;
QString toString() const
{
return publicKey + noSpam + checkSum;
}
ToxID static fromString(QString id)
{
ToxID toxID;
toxID.publicKey = id.left(TOX_ID_PUBLIC_KEY_LENGTH);
toxID.noSpam = id.mid(TOX_ID_PUBLIC_KEY_LENGTH, TOX_ID_NO_SPAM_LENGTH);
toxID.checkSum = id.right(TOX_ID_CHECKSUM_LENGTH);
return toxID;
}
};
struct DhtServer
{
QString name;
QString userId;
QString address;
int port;
};
struct ToxFile
{
enum FileStatus
{
STOPPED,
PAUSED,
TRANSMITTING,
BROKEN
};
enum FileDirection : bool
{
SENDING,
RECEIVING
};
ToxFile()=default;
ToxFile(int FileNum, int FriendId, QByteArray FileName, QString FilePath, FileDirection Direction);
~ToxFile(){}
void setFilePath(QString path);
bool open(bool write);
int fileNum;
int friendId;
QByteArray fileName;
QString filePath;
QFile* file;
long long bytesSent;
long long filesize;
FileStatus status;
FileDirection direction;
QTimer* sendTimer;
};
#endif // CORESTRUCTS_H