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

84 lines
1.7 KiB
C
Raw Normal View History

2014-09-11 21:44:34 +08:00
#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};
2014-09-12 21:23:20 +08:00
#define TOX_ID_PUBLIC_KEY_LENGTH 64
#define TOX_ID_NO_SPAM_LENGTH 8
#define TOX_ID_CHECKSUM_LENGTH 4
struct ToxID
{
2015-01-30 04:23:33 +08:00
ToxID()=default;
ToxID(const ToxID& other);
2014-09-12 21:23:20 +08:00
QString publicKey;
QString noSpam;
QString checkSum;
QString toString() const;
static ToxID fromString(QString id);
static bool isToxId(const QString& id);
2014-09-12 21:23:20 +08:00
bool operator==(const ToxID& other) const;
bool operator!=(const ToxID& other) const;
bool isMine() const;
2014-11-16 19:40:44 +08:00
void clear();
2014-09-12 21:23:20 +08:00
};
2014-09-11 21:44:34 +08:00
struct DhtServer
{
QString name;
QString userId;
QString address;
int port;
};
struct ToxFile
{
enum FileStatus
{
STOPPED,
PAUSED,
TRANSMITTING,
BROKEN
2014-09-11 21:44:34 +08:00
};
enum FileDirection : bool
{
SENDING,
RECEIVING
};
ToxFile()=default;
ToxFile(uint32_t FileNum, uint32_t FriendId, QByteArray FileName, QString FilePath, FileDirection Direction);
2014-09-11 21:44:34 +08:00
~ToxFile(){}
2014-11-17 23:05:14 +08:00
bool operator==(const ToxFile& other) const;
bool operator!=(const ToxFile& other) const;
2014-09-11 21:44:34 +08:00
void setFilePath(QString path);
bool open(bool write);
uint8_t fileKind; ///< Data file (default) or avatar
uint32_t fileNum;
uint32_t friendId;
2014-09-11 21:44:34 +08:00
QByteArray fileName;
QString filePath;
QFile* file;
quint64 bytesSent;
quint64 filesize;
2014-09-11 21:44:34 +08:00
FileStatus status;
FileDirection direction;
QTimer* sendTimer;
};
#endif // CORESTRUCTS_H