: Transfer(uuid, parent),
_file(0)
{
- connect(this, SIGNAL(stateChanged(Transfer::State)), SLOT(onStateChanged(Transfer::State)));
+ connect(this, SIGNAL(statusChanged(Transfer::Status)), SLOT(onStatusChanged(Transfer::Status)));
}
}
-void ClientTransfer::onStateChanged(Transfer::State state)
+void ClientTransfer::onStatusChanged(Transfer::Status status)
{
- switch(state) {
- case State::Completed:
+ switch(status) {
+ case Status::Completed:
if (_file)
_file->close();
break;
- case State::Failed:
+ case Status::Failed:
if (_file)
_file->remove();
break;
INIT_SYNCABLE_OBJECT(Transfer)
Transfer::Transfer(const QUuid &uuid, QObject *parent)
: SyncableObject(parent),
- _state(State::New),
+ _status(Status::New),
_direction(Direction::Receive),
_port(0),
_fileSize(0),
Transfer::Transfer(Direction direction, const QString &nick, const QString &fileName, const QHostAddress &address, quint16 port, quint64 fileSize, QObject *parent)
: SyncableObject(parent),
- _state(State::New),
+ _status(Status::New),
_direction(direction),
_fileName(fileName),
_address(address),
void Transfer::init()
{
static auto regTypes = []() -> bool {
- qRegisterMetaType<State>("Transfer::State");
+ qRegisterMetaType<Status>("Transfer::Status");
qRegisterMetaType<Direction>("Transfer::Direction");
- qRegisterMetaTypeStreamOperators<State>("Transfer::State");
+ qRegisterMetaTypeStreamOperators<Status>("Transfer::Status");
qRegisterMetaTypeStreamOperators<Direction>("Transfer::Direction");
return true;
}();
}
-Transfer::State Transfer::state() const
+Transfer::Status Transfer::status() const
{
- return _state;
+ return _status;
}
-void Transfer::setState(Transfer::State state)
+void Transfer::setStatus(Transfer::Status status)
{
- if (_state != state) {
- _state = state;
- SYNC(ARG(state));
- emit stateChanged(state);
+ if (_status != status) {
+ _status = status;
+ SYNC(ARG(status));
+ emit statusChanged(status);
}
}
{
qWarning() << Q_FUNC_INFO << errorString;
emit error(errorString);
- setState(State::Failed);
+ setStatus(Status::Failed);
cleanUp();
}
-QDataStream &operator<<(QDataStream &out, Transfer::State state) {
+QDataStream &operator<<(QDataStream &out, Transfer::Status state) {
out << static_cast<qint8>(state);
return out;
}
-QDataStream &operator>>(QDataStream &in, Transfer::State &state) {
+QDataStream &operator>>(QDataStream &in, Transfer::Status &state) {
qint8 s;
in >> s;
- state = static_cast<Transfer::State>(s);
+ state = static_cast<Transfer::Status>(s);
return in;
}
SYNCABLE_OBJECT
Q_PROPERTY(QUuid uuid READ uuid);
- Q_PROPERTY(Transfer::State state READ state WRITE setState NOTIFY stateChanged);
+ Q_PROPERTY(Transfer::Status status READ status WRITE setStatus NOTIFY statusChanged);
Q_PROPERTY(Transfer::Direction direction READ direction WRITE setDirection NOTIFY directionChanged);
Q_PROPERTY(QHostAddress address READ address WRITE setAddress NOTIFY addressChanged);
Q_PROPERTY(quint16 port READ port WRITE setPort NOTIFY portChanged);
Q_PROPERTY(QString nick READ nick WRITE setNick NOTIFY nickChanged);
public:
- enum class State {
+ enum class Status {
New,
Pending,
Connecting,
inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
QUuid uuid() const;
- State state() const;
+ Status status() const;
Direction direction() const;
QString fileName() const;
QHostAddress address() const;
virtual void requestRejected(PeerPtr peer) { Q_UNUSED(peer); }
signals:
- void stateChanged(Transfer::State state);
+ void statusChanged (Transfer::Status state);
void directionChanged(Transfer::Direction direction);
void addressChanged(const QHostAddress &address);
void portChanged(quint16 port);
void rejected(PeerPtr peer = 0) const;
protected slots:
- void setState(Transfer::State state);
+ void setStatus(Transfer::Status status);
void setError(const QString &errorString);
// called on the client side through sync calls
void setNick(const QString &nick);
- State _state;
+ Status _status;
Direction _direction;
QString _fileName;
QHostAddress _address;
QUuid _uuid;
};
-Q_DECLARE_METATYPE(Transfer::State)
+Q_DECLARE_METATYPE(Transfer::Status)
Q_DECLARE_METATYPE(Transfer::Direction)
-QDataStream &operator<<(QDataStream &out, Transfer::State state);
-QDataStream &operator>>(QDataStream &in, Transfer::State &state);
+QDataStream &operator<<(QDataStream &out, Transfer::Status state);
+QDataStream &operator>>(QDataStream &in, Transfer::Status &state);
QDataStream &operator<<(QDataStream &out, Transfer::Direction direction);
QDataStream &operator>>(QDataStream &in, Transfer::Direction &direction);
void CoreTransfer::onSocketDisconnected()
{
- if (state() == State::Connecting || state() == State::Transferring) {
+ if (status() == Status::Connecting || status() == Status::Transferring) {
setError(tr("Socket closed while still transferring!"));
}
else
{
Q_UNUSED(error)
- if (state() == State::Connecting || state() == State::Transferring) {
+ if (status() == Status::Connecting || status() == Status::Transferring) {
setError(tr("DCC connection error: %1").arg(_socket->errorString()));
}
}
void CoreTransfer::requestAccepted(PeerPtr peer)
{
- if (_peer || !peer || state() != State::New)
+ if (_peer || !peer || status() != Status::New)
return; // transfer was already accepted
_peer = peer;
- setState(State::Pending);
+ setStatus(Status::Pending);
emit accepted(peer);
void CoreTransfer::requestRejected(PeerPtr peer)
{
- if (_peer || state() != State::New)
+ if (_peer || status() != Status::New)
return;
_peer = peer;
- setState(State::Rejected);
+ setStatus(Status::Rejected);
emit rejected(peer);
}
void CoreTransfer::start()
{
- if (!_peer || state() != State::Pending || direction() != Direction::Receive)
+ if (!_peer || status() != Status::Pending || direction() != Direction::Receive)
return;
setupConnectionForReceive();
return;
}
- setState(State::Connecting);
+ setStatus(Status::Connecting);
_socket = new QTcpSocket(this);
connect(_socket, SIGNAL(connected()), SLOT(startReceiving()));
void CoreTransfer::startReceiving()
{
- setState(State::Transferring);
+ setStatus(Status::Transferring);
}
else if (_pos == fileSize()) {
qDebug() << "DCC Receive: Transfer finished";
if (relayData(QByteArray(), false)) // empty buffer
- setState(State::Completed);
+ setStatus(Status::Completed);
}
_reading = false;