Skip to content

Commit

Permalink
Start using NewSimpleFuture in ServerConnection
Browse files Browse the repository at this point in the history
  • Loading branch information
hyperquantum committed Jul 17, 2024
1 parent 24ededb commit 044ac8f
Show file tree
Hide file tree
Showing 24 changed files with 132 additions and 87 deletions.
7 changes: 4 additions & 3 deletions src/client/generalcontroller.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 21,7 @@
#define PMP_GENERALCONTROLLER_H

#include "common/future.h"
#include "common/newfuture.h"
#include "common/resultmessageerrorcode.h"
#include "common/serverhealthstatus.h"
#include "common/startstopeventstatus.h"
Expand All @@ -41,9 42,9 @@ namespace PMP::Client

virtual qint64 clientClockTimeOffsetMs() const = 0;

virtual SimpleFuture<AnyResultMessageCode> startFullIndexation() = 0;
virtual SimpleFuture<AnyResultMessageCode> startQuickScanForNewFiles() = 0;
virtual SimpleFuture<AnyResultMessageCode> reloadServerSettings() = 0;
virtual NewSimpleFuture<AnyResultMessageCode> startFullIndexation() = 0;
virtual NewSimpleFuture<AnyResultMessageCode> startQuickScanForNewFiles() = 0;
virtual NewSimpleFuture<AnyResultMessageCode> reloadServerSettings() = 0;

virtual Future<VersionInfo, ResultMessageErrorCode> getServerVersionInfo() = 0;

Expand Down
7 changes: 4 additions & 3 deletions src/client/generalcontrollerimpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 76,18 @@ namespace PMP::Client
return _clientClockTimeOffsetMs;
}

SimpleFuture<AnyResultMessageCode> GeneralControllerImpl::startFullIndexation()
NewSimpleFuture<AnyResultMessageCode> GeneralControllerImpl::startFullIndexation()
{
return _connection->startFullIndexation();
}

SimpleFuture<AnyResultMessageCode> GeneralControllerImpl::startQuickScanForNewFiles()
NewSimpleFuture<AnyResultMessageCode>
GeneralControllerImpl::startQuickScanForNewFiles()
{
return _connection->startQuickScanForNewFiles();
}

SimpleFuture<AnyResultMessageCode> GeneralControllerImpl::reloadServerSettings()
NewSimpleFuture<AnyResultMessageCode> GeneralControllerImpl::reloadServerSettings()
{
return _connection->reloadServerSettings();
}
Expand Down
6 changes: 3 additions & 3 deletions src/client/generalcontrollerimpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 38,9 @@ namespace PMP::Client

qint64 clientClockTimeOffsetMs() const override;

SimpleFuture<AnyResultMessageCode> startFullIndexation() override;
SimpleFuture<AnyResultMessageCode> startQuickScanForNewFiles() override;
SimpleFuture<AnyResultMessageCode> reloadServerSettings() override;
NewSimpleFuture<AnyResultMessageCode> startFullIndexation() override;
NewSimpleFuture<AnyResultMessageCode> startQuickScanForNewFiles() override;
NewSimpleFuture<AnyResultMessageCode> reloadServerSettings() override;

Future<VersionInfo, ResultMessageErrorCode> getServerVersionInfo() override;

Expand Down
10 changes: 5 additions & 5 deletions src/client/playercontroller.h
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
/*
Copyright (C) 2017-2023, Kevin Andre <[email protected]>
Copyright (C) 2017-2024, Kevin Andre <[email protected]>
This file is part of PMP (Party Music Player).
Expand All @@ -21,7 21,7 @@
#define PMP_PLAYERCONTROLLER_H

#include "common/tribool.h"
#include "common/future.h"
#include "common/newfuture.h"
#include "common/playermode.h"
#include "common/playerstate.h"
#include "common/resultmessageerrorcode.h"
Expand Down Expand Up @@ -54,11 54,11 @@ namespace PMP::Client
virtual int volume() const = 0;

virtual QDateTime delayedStartServerDeadline() = 0;
virtual SimpleFuture<AnyResultMessageCode> activateDelayedStart(
virtual NewSimpleFuture<AnyResultMessageCode> activateDelayedStart(
qint64 delayMilliseconds) = 0;
virtual SimpleFuture<AnyResultMessageCode> activateDelayedStart(
virtual NewSimpleFuture<AnyResultMessageCode> activateDelayedStart(
QDateTime startTime) = 0;
virtual SimpleFuture<AnyResultMessageCode> deactivateDelayedStart() = 0;
virtual NewSimpleFuture<AnyResultMessageCode> deactivateDelayedStart() = 0;

public Q_SLOTS:
virtual void play() = 0;
Expand Down
8 changes: 4 additions & 4 deletions src/client/playercontrollerimpl.cpp
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
/*
Copyright (C) 2020-2022, Kevin Andre <[email protected]>
Copyright (C) 2020-2024, Kevin Andre <[email protected]>
This file is part of PMP (Party Music Player).
Expand Down Expand Up @@ -145,13 145,13 @@ namespace PMP::Client
return _delayedStartServerDeadline;
}

SimpleFuture<AnyResultMessageCode> PlayerControllerImpl::activateDelayedStart(
NewSimpleFuture<AnyResultMessageCode> PlayerControllerImpl::activateDelayedStart(
qint64 delayMilliseconds)
{
return _connection->activateDelayedStart(delayMilliseconds);
}

SimpleFuture<AnyResultMessageCode> PlayerControllerImpl::activateDelayedStart(
NewSimpleFuture<AnyResultMessageCode> PlayerControllerImpl::activateDelayedStart(
QDateTime startTime)
{
auto delayMilliseconds =
Expand All @@ -160,7 160,7 @@ namespace PMP::Client
return activateDelayedStart(delayMilliseconds);
}

SimpleFuture<AnyResultMessageCode> PlayerControllerImpl::deactivateDelayedStart()
NewSimpleFuture<AnyResultMessageCode> PlayerControllerImpl::deactivateDelayedStart()
{
return _connection->deactivateDelayedStart();
}
Expand Down
6 changes: 3 additions & 3 deletions src/client/playercontrollerimpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 50,11 @@ namespace PMP::Client
int volume() const override;

QDateTime delayedStartServerDeadline() override;
SimpleFuture<AnyResultMessageCode> activateDelayedStart(
NewSimpleFuture<AnyResultMessageCode> activateDelayedStart(
qint64 delayMilliseconds) override;
SimpleFuture<AnyResultMessageCode> activateDelayedStart(
NewSimpleFuture<AnyResultMessageCode> activateDelayedStart(
QDateTime startTime) override;
SimpleFuture<AnyResultMessageCode> deactivateDelayedStart() override;
NewSimpleFuture<AnyResultMessageCode> deactivateDelayedStart() override;

public Q_SLOTS:
void play() override;
Expand Down
6 changes: 3 additions & 3 deletions src/client/scrobblingcontroller.h
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
/*
Copyright (C) 2022-2023, Kevin Andre <[email protected]>
Copyright (C) 2022-2024, Kevin Andre <[email protected]>
This file is part of PMP (Party Music Player).
Expand All @@ -20,7 20,7 @@
#ifndef PMP_SCROBBLINGCONTROLLER_H
#define PMP_SCROBBLINGCONTROLLER_H

#include "common/future.h"
#include "common/newfuture.h"
#include "common/nullable.h"
#include "common/resultmessageerrorcode.h"
#include "common/scrobblerstatus.h"
Expand All @@ -38,7 38,7 @@ namespace PMP::Client
virtual Nullable<bool> lastFmEnabled() const = 0;
virtual ScrobblerStatus lastFmStatus() const = 0;

virtual SimpleFuture<AnyResultMessageCode> authenticateLastFm(
virtual NewSimpleFuture<AnyResultMessageCode> authenticateLastFm(
QString usernameOrEmail,
QString password) = 0;

Expand Down
4 changes: 2 additions & 2 deletions src/client/scrobblingcontrollerimpl.cpp
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
/*
Copyright (C) 2022-2023, Kevin Andre <[email protected]>
Copyright (C) 2022-2024, Kevin Andre <[email protected]>
This file is part of PMP (Party Music Player).
Expand Down Expand Up @@ -91,7 91,7 @@ namespace PMP::Client
return _lastFmStatus;
}

SimpleFuture<AnyResultMessageCode> ScrobblingControllerImpl::authenticateLastFm(
NewSimpleFuture<AnyResultMessageCode> ScrobblingControllerImpl::authenticateLastFm(
QString usernameOrEmail,
QString password)
{
Expand Down
4 changes: 2 additions & 2 deletions src/client/scrobblingcontrollerimpl.h
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
/*
Copyright (C) 2022-2023, Kevin Andre <[email protected]>
Copyright (C) 2022-2024, Kevin Andre <[email protected]>
This file is part of PMP (Party Music Player).
Expand Down Expand Up @@ -35,7 35,7 @@ namespace PMP::Client
Nullable<bool> lastFmEnabled() const override;
ScrobblerStatus lastFmStatus() const override;

SimpleFuture<AnyResultMessageCode> authenticateLastFm(QString usernameOrEmail,
NewSimpleFuture<AnyResultMessageCode> authenticateLastFm(QString usernameOrEmail,
QString password) override;

public Q_SLOTS:
Expand Down
42 changes: 23 additions & 19 deletions src/client/serverconnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 21,7 @@

#include "common/networkprotocol.h"
#include "common/networkutil.h"
#include "common/newasync.h"
#include "common/promise.h"
#include "common/startstopeventstatus.h"
#include "common/util.h"
Expand Down Expand Up @@ -215,7 216,7 @@ namespace PMP::Client
public:
PromiseResultHandler(ServerConnection* parent);

SimpleFuture<AnyResultMessageCode> future() const;
NewSimpleFuture<AnyResultMessageCode> future() const;

void handleResult(ResultMessageData const& data) override;
void handleExtensionResult(ExtensionResultMessageData const& data) override;
Expand All @@ -226,16 227,17 @@ namespace PMP::Client
ExtensionResultMessageData const& data);

private:
SimplePromise<AnyResultMessageCode> _promise;
NewSimplePromise<AnyResultMessageCode> _promise;
};

ServerConnection::PromiseResultHandler::PromiseResultHandler(ServerConnection* parent)
: ResultHandler(parent)
: ResultHandler(parent),
_promise(NewAsync::createSimplePromise<AnyResultMessageCode>())
{
//
}

SimpleFuture<AnyResultMessageCode> ServerConnection::PromiseResultHandler::future(
NewSimpleFuture<AnyResultMessageCode> ServerConnection::PromiseResultHandler::future(
) const
{
return _promise.future();
Expand All @@ -255,15 257,15 @@ namespace PMP::Client
<< errorDescription(data);
}

_promise.setResult(data.errorType);
_promise.setOutcome(data.errorType);
}

void ServerConnection::PromiseResultHandler::handleExtensionResult(
const ExtensionResultMessageData& data)
{
auto code = convertExtensionResultCode(data);

_promise.setResult(code);
_promise.setOutcome(code);
}

QString ServerConnection::PromiseResultHandler::getActionDetail() const
Expand Down Expand Up @@ -1088,8 1090,8 @@ namespace PMP::Client
sendBinaryMessage(message);
}

SimpleFuture<AnyResultMessageCode> ServerConnection::sendParameterlessActionRequest(
ParameterlessActionCode code)
NewSimpleFuture<AnyResultMessageCode>
ServerConnection::sendParameterlessActionRequest(ParameterlessActionCode code)
{
if (NetworkProtocol::isSupported(code, _serverProtocolNo) == false)
return serverTooOldFutureResult();
Expand Down Expand Up @@ -1226,22 1228,24 @@ namespace PMP::Client
return signalRequestError(ResultMessageErrorCode::ServerTooOld, errorSignal);
}

FutureResult<AnyResultMessageCode> ServerConnection::noErrorFutureResult()
NewSimpleFuture<AnyResultMessageCode> ServerConnection::noErrorFutureResult()
{
return FutureResult(AnyResultMessageCode(ResultMessageErrorCode::NoError));
return NewSimpleFuture<AnyResultMessageCode>::fromOutcome(
ResultMessageErrorCode::NoError);
}

FutureResult<AnyResultMessageCode> ServerConnection::serverTooOldFutureResult()
NewSimpleFuture<AnyResultMessageCode> ServerConnection::serverTooOldFutureResult()
{
return FutureResult(AnyResultMessageCode(ResultMessageErrorCode::ServerTooOld));
return NewSimpleFuture<AnyResultMessageCode>::fromOutcome(
ResultMessageErrorCode::ServerTooOld);
}

FutureError<AnyResultMessageCode> ServerConnection::serverTooOldFutureError()
{
return FutureError(AnyResultMessageCode(ResultMessageErrorCode::ServerTooOld));
}

SimpleFuture<AnyResultMessageCode> ServerConnection::reloadServerSettings()
NewSimpleFuture<AnyResultMessageCode> ServerConnection::reloadServerSettings()
{
if (!serverCapabilities().supportsReloadingServerSettings())
return serverTooOldFutureResult();
Expand All @@ -1252,7 1256,7 @@ namespace PMP::Client
ParameterlessActionCode::ReloadServerSettings);
}

SimpleFuture<AnyResultMessageCode> ServerConnection::startFullIndexation()
NewSimpleFuture<AnyResultMessageCode> ServerConnection::startFullIndexation()
{
qDebug() << "sending request to start a full indexation";

Expand All @@ -1267,15 1271,15 @@ namespace PMP::Client
return noErrorFutureResult();
}

SimpleFuture<AnyResultMessageCode> ServerConnection::startQuickScanForNewFiles()
NewSimpleFuture<AnyResultMessageCode> ServerConnection::startQuickScanForNewFiles()
{
qDebug() << "sending request to start a quick scan for new files";

return sendParameterlessActionRequest(
ParameterlessActionCode::StartQuickScanForNewFiles);
}

SimpleFuture<AnyResultMessageCode> ServerConnection::activateDelayedStart(
NewSimpleFuture<AnyResultMessageCode> ServerConnection::activateDelayedStart(
qint64 delayMilliseconds)
{
if (!serverCapabilities().supportsDelayedStart())
Expand All @@ -1300,7 1304,7 @@ namespace PMP::Client
return handler->future();
}

SimpleFuture<AnyResultMessageCode> ServerConnection::deactivateDelayedStart()
NewSimpleFuture<AnyResultMessageCode> ServerConnection::deactivateDelayedStart()
{
if (!serverCapabilities().supportsDelayedStart())
return serverTooOldFutureResult();
Expand Down Expand Up @@ -1644,7 1648,7 @@ namespace PMP::Client
sendUserScrobblingEnableDisableRequest(provider, false);
}

SimpleFuture<AnyResultMessageCode> ServerConnection::authenticateScrobbling(
NewSimpleFuture<AnyResultMessageCode> ServerConnection::authenticateScrobbling(
ScrobblingProvider provider,
QString username,
QString password)
Expand Down Expand Up @@ -1791,7 1795,7 @@ namespace PMP::Client
sendBinaryMessage(message);
}

SimpleFuture<AnyResultMessageCode>
NewSimpleFuture<AnyResultMessageCode>
ServerConnection::sendScrobblingAuthenticationMessage(ScrobblingProvider provider,
QString username,
QString password)
Expand Down
Loading

0 comments on commit 044ac8f

Please sign in to comment.