Other: C++ Code reformat.

This commit is contained in:
Xavier Michelon
2023-01-05 08:37:38 +01:00
parent bb07138fb0
commit 8790d3cfcf
58 changed files with 1348 additions and 1692 deletions

View File

@ -19,19 +19,16 @@
#include "EventFactory.h"
namespace bridgepp
{
namespace bridgepp {
namespace
{
namespace {
//****************************************************************************************************************************************************
/// \return a new SPStreamEvent
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent newStreamEvent()
{
bridgepp::SPStreamEvent newStreamEvent() {
return std::make_shared<grpc::StreamEvent>();
}
@ -40,8 +37,7 @@ bridgepp::SPStreamEvent newStreamEvent()
/// \param[in] appEvent The app event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapAppEvent(grpc::AppEvent *appEvent)
{
bridgepp::SPStreamEvent wrapAppEvent(grpc::AppEvent *appEvent) {
auto event = newStreamEvent();
event->set_allocated_app(appEvent);
return event;
@ -52,8 +48,7 @@ bridgepp::SPStreamEvent wrapAppEvent(grpc::AppEvent *appEvent)
/// \param[in] loginEvent The login event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapLoginEvent(grpc::LoginEvent *loginEvent)
{
bridgepp::SPStreamEvent wrapLoginEvent(grpc::LoginEvent *loginEvent) {
auto event = newStreamEvent();
event->set_allocated_login(loginEvent);
return event;
@ -64,8 +59,7 @@ bridgepp::SPStreamEvent wrapLoginEvent(grpc::LoginEvent *loginEvent)
/// \param[in] updateEvent The app event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapUpdateEvent(grpc::UpdateEvent *updateEvent)
{
bridgepp::SPStreamEvent wrapUpdateEvent(grpc::UpdateEvent *updateEvent) {
auto event = newStreamEvent();
event->set_allocated_update(updateEvent);
return event;
@ -76,8 +70,7 @@ bridgepp::SPStreamEvent wrapUpdateEvent(grpc::UpdateEvent *updateEvent)
/// \param[in] cacheEvent The cache event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapCacheEvent(grpc::DiskCacheEvent *cacheEvent)
{
bridgepp::SPStreamEvent wrapCacheEvent(grpc::DiskCacheEvent *cacheEvent) {
auto event = newStreamEvent();
event->set_allocated_cache(cacheEvent);
return event;
@ -88,8 +81,7 @@ bridgepp::SPStreamEvent wrapCacheEvent(grpc::DiskCacheEvent *cacheEvent)
/// \param[in] mailSettingsEvent The mail settings event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapMailServerSettingsEvent(grpc::MailServerSettingsEvent *mailServerSettingsEvent)
{
bridgepp::SPStreamEvent wrapMailServerSettingsEvent(grpc::MailServerSettingsEvent *mailServerSettingsEvent) {
auto event = newStreamEvent();
event->set_allocated_mailserversettings(mailServerSettingsEvent);
return event;
@ -100,8 +92,7 @@ bridgepp::SPStreamEvent wrapMailServerSettingsEvent(grpc::MailServerSettingsEven
/// \param[in] keychainEvent The keychain event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapKeychainEvent(grpc::KeychainEvent *keychainEvent)
{
bridgepp::SPStreamEvent wrapKeychainEvent(grpc::KeychainEvent *keychainEvent) {
auto event = newStreamEvent();
event->set_allocated_keychain(keychainEvent);
return event;
@ -112,8 +103,7 @@ bridgepp::SPStreamEvent wrapKeychainEvent(grpc::KeychainEvent *keychainEvent)
/// \param[in] mailEvent The mail event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapMailEvent(grpc::MailEvent *mailEvent)
{
bridgepp::SPStreamEvent wrapMailEvent(grpc::MailEvent *mailEvent) {
auto event = newStreamEvent();
event->set_allocated_mail(mailEvent);
return event;
@ -124,8 +114,7 @@ bridgepp::SPStreamEvent wrapMailEvent(grpc::MailEvent *mailEvent)
/// \param[in] userEvent The user event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapUserEvent(grpc::UserEvent *userEvent)
{
bridgepp::SPStreamEvent wrapUserEvent(grpc::UserEvent *userEvent) {
auto event = newStreamEvent();
event->set_allocated_user(userEvent);
return event;
@ -136,8 +125,7 @@ bridgepp::SPStreamEvent wrapUserEvent(grpc::UserEvent *userEvent)
/// \param[in] genericErrorEvent The generic error event.
/// \return The stream event.
//****************************************************************************************************************************************************
bridgepp::SPStreamEvent wrapGenericErrorEvent(grpc::GenericErrorEvent *genericErrorEvent)
{
bridgepp::SPStreamEvent wrapGenericErrorEvent(grpc::GenericErrorEvent *genericErrorEvent) {
auto event = newStreamEvent();
event->set_allocated_genericerror(genericErrorEvent);
return event;
@ -150,8 +138,7 @@ bridgepp::SPStreamEvent wrapGenericErrorEvent(grpc::GenericErrorEvent *genericEr
/// \param[in] connected The internet status.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newInternetStatusEvent(bool connected)
{
SPStreamEvent newInternetStatusEvent(bool connected) {
auto *internetStatusEvent = new grpc::InternetStatusEvent();
internetStatusEvent->set_connected(connected);
auto appEvent = new grpc::AppEvent;
@ -163,8 +150,7 @@ SPStreamEvent newInternetStatusEvent(bool connected)
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newToggleAutostartFinishedEvent()
{
SPStreamEvent newToggleAutostartFinishedEvent() {
auto *event = new grpc::ToggleAutostartFinishedEvent;
auto appEvent = new grpc::AppEvent;
appEvent->set_allocated_toggleautostartfinished(event);
@ -175,8 +161,7 @@ SPStreamEvent newToggleAutostartFinishedEvent()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newResetFinishedEvent()
{
SPStreamEvent newResetFinishedEvent() {
auto event = new grpc::ResetFinishedEvent;
auto appEvent = new grpc::AppEvent;
appEvent->set_allocated_resetfinished(event);
@ -187,8 +172,7 @@ SPStreamEvent newResetFinishedEvent()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newReportBugFinishedEvent()
{
SPStreamEvent newReportBugFinishedEvent() {
auto event = new grpc::ReportBugFinishedEvent;
auto appEvent = new grpc::AppEvent;
appEvent->set_allocated_reportbugfinished(event);
@ -199,8 +183,7 @@ SPStreamEvent newReportBugFinishedEvent()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newReportBugSuccessEvent()
{
SPStreamEvent newReportBugSuccessEvent() {
auto event = new grpc::ReportBugSuccessEvent;
auto appEvent = new grpc::AppEvent;
appEvent->set_allocated_reportbugsuccess(event);
@ -211,8 +194,7 @@ SPStreamEvent newReportBugSuccessEvent()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newReportBugErrorEvent()
{
SPStreamEvent newReportBugErrorEvent() {
auto event = new grpc::ReportBugErrorEvent;
auto appEvent = new grpc::AppEvent;
appEvent->set_allocated_reportbugerror(event);
@ -223,8 +205,7 @@ SPStreamEvent newReportBugErrorEvent()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newShowMainWindowEvent()
{
SPStreamEvent newShowMainWindowEvent() {
auto event = new grpc::ShowMainWindowEvent;
auto appEvent = new grpc::AppEvent;
appEvent->set_allocated_showmainwindow(event);
@ -237,8 +218,7 @@ SPStreamEvent newShowMainWindowEvent()
/// \param[in] message The message.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newLoginError(grpc::LoginErrorType error, QString const &message)
{
SPStreamEvent newLoginError(grpc::LoginErrorType error, QString const &message) {
auto event = new ::grpc::LoginErrorEvent;
event->set_type(error);
event->set_message(message.toStdString());
@ -252,8 +232,7 @@ SPStreamEvent newLoginError(grpc::LoginErrorType error, QString const &message)
/// \param[in] username The username.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newLoginTfaRequestedEvent(QString const &username)
{
SPStreamEvent newLoginTfaRequestedEvent(QString const &username) {
auto event = new ::grpc::LoginTfaRequestedEvent;
event->set_username(username.toStdString());
auto loginEvent = new grpc::LoginEvent;
@ -266,8 +245,7 @@ SPStreamEvent newLoginTfaRequestedEvent(QString const &username)
/// \param[in] username The username.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newLoginTwoPasswordsRequestedEvent()
{
SPStreamEvent newLoginTwoPasswordsRequestedEvent() {
auto event = new ::grpc::LoginTwoPasswordsRequestedEvent;
auto loginEvent = new grpc::LoginEvent;
loginEvent->set_allocated_twopasswordrequested(event);
@ -280,8 +258,7 @@ SPStreamEvent newLoginTwoPasswordsRequestedEvent()
/// \param[in] wasSignedOut Was the user signed-out.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newLoginFinishedEvent(QString const &userID, bool wasSignedOut)
{
SPStreamEvent newLoginFinishedEvent(QString const &userID, bool wasSignedOut) {
auto event = new ::grpc::LoginFinishedEvent;
event->set_userid(userID.toStdString());
event->set_wassignedout(wasSignedOut);
@ -295,8 +272,7 @@ SPStreamEvent newLoginFinishedEvent(QString const &userID, bool wasSignedOut)
/// \param[in] userID The userID.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newLoginAlreadyLoggedInEvent(QString const &userID)
{
SPStreamEvent newLoginAlreadyLoggedInEvent(QString const &userID) {
auto event = new ::grpc::LoginFinishedEvent;
event->set_userid(userID.toStdString());
auto loginEvent = new grpc::LoginEvent;
@ -309,8 +285,7 @@ SPStreamEvent newLoginAlreadyLoggedInEvent(QString const &userID)
/// \param[in] errorType The error type.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newUpdateErrorEvent(grpc::UpdateErrorType errorType)
{
SPStreamEvent newUpdateErrorEvent(grpc::UpdateErrorType errorType) {
auto event = new grpc::UpdateErrorEvent;
event->set_type(errorType);
auto updateEvent = new grpc::UpdateEvent;
@ -323,8 +298,7 @@ SPStreamEvent newUpdateErrorEvent(grpc::UpdateErrorType errorType)
/// \param[in] version The version.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newUpdateManualReadyEvent(QString const &version)
{
SPStreamEvent newUpdateManualReadyEvent(QString const &version) {
auto event = new grpc::UpdateManualReadyEvent;
event->set_version(version.toStdString());
auto updateEvent = new grpc::UpdateEvent;
@ -336,8 +310,7 @@ SPStreamEvent newUpdateManualReadyEvent(QString const &version)
//****************************************************************************************************************************************************
/// \return the event.
//****************************************************************************************************************************************************
SPStreamEvent newUpdateManualRestartNeededEvent()
{
SPStreamEvent newUpdateManualRestartNeededEvent() {
auto event = new grpc::UpdateManualRestartNeededEvent;
auto updateEvent = new grpc::UpdateEvent;
updateEvent->set_allocated_manualrestartneeded(event);
@ -349,8 +322,7 @@ SPStreamEvent newUpdateManualRestartNeededEvent()
/// \param[in] version The version.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newUpdateForceEvent(QString const &version)
{
SPStreamEvent newUpdateForceEvent(QString const &version) {
auto event = new grpc::UpdateForceEvent;
event->set_version(version.toStdString());
auto updateEvent = new grpc::UpdateEvent;
@ -362,8 +334,7 @@ SPStreamEvent newUpdateForceEvent(QString const &version)
//****************************************************************************************************************************************************
/// \return the event.
//****************************************************************************************************************************************************
SPStreamEvent newUpdateSilentRestartNeeded()
{
SPStreamEvent newUpdateSilentRestartNeeded() {
auto event = new grpc::UpdateSilentRestartNeeded;
auto updateEvent = new grpc::UpdateEvent;
updateEvent->set_allocated_silentrestartneeded(event);
@ -374,8 +345,7 @@ SPStreamEvent newUpdateSilentRestartNeeded()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newUpdateIsLatestVersion()
{
SPStreamEvent newUpdateIsLatestVersion() {
auto event = new grpc::UpdateIsLatestVersion;
auto updateEvent = new grpc::UpdateEvent;
updateEvent->set_allocated_islatestversion(event);
@ -386,8 +356,7 @@ SPStreamEvent newUpdateIsLatestVersion()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newUpdateCheckFinished()
{
SPStreamEvent newUpdateCheckFinished() {
auto event = new grpc::UpdateCheckFinished;
auto updateEvent = new grpc::UpdateEvent;
updateEvent->set_allocated_checkfinished(event);
@ -399,8 +368,7 @@ SPStreamEvent newUpdateCheckFinished()
/// \param[in] errorType The error type.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newDiskCacheErrorEvent(grpc::DiskCacheErrorType errorType)
{
SPStreamEvent newDiskCacheErrorEvent(grpc::DiskCacheErrorType errorType) {
auto event = new grpc::DiskCacheErrorEvent;
event->set_type(errorType);
auto cacheEvent = new grpc::DiskCacheEvent;
@ -413,8 +381,7 @@ SPStreamEvent newDiskCacheErrorEvent(grpc::DiskCacheErrorType errorType)
/// \param[in] path The path of the cache.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newDiskCachePathChangedEvent(QString const &path)
{
SPStreamEvent newDiskCachePathChangedEvent(QString const &path) {
auto event = new grpc::DiskCachePathChangedEvent;
event->set_path(path.toStdString());
auto cacheEvent = new grpc::DiskCacheEvent;
@ -426,20 +393,19 @@ SPStreamEvent newDiskCachePathChangedEvent(QString const &path)
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newDiskCachePathChangeFinishedEvent()
{
SPStreamEvent newDiskCachePathChangeFinishedEvent() {
auto event = new grpc::DiskCachePathChangeFinishedEvent;
auto cacheEvent = new grpc::DiskCacheEvent;
cacheEvent->set_allocated_pathchangefinished(event);
return wrapCacheEvent(cacheEvent);
}
//****************************************************************************************************************************************************
/// \param[in] errorType The error type.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newMailServerSettingsErrorEvent(grpc::MailServerSettingsErrorType errorType)
{
SPStreamEvent newMailServerSettingsErrorEvent(grpc::MailServerSettingsErrorType errorType) {
auto event = new grpc::MailServerSettingsErrorEvent;
event->set_type(errorType);
auto mailServerSettingsEvent = new grpc::MailServerSettingsEvent;
@ -452,8 +418,7 @@ SPStreamEvent newMailServerSettingsErrorEvent(grpc::MailServerSettingsErrorType
/// \param[in] settings The settings.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newMailServerSettingsChanged(grpc::ImapSmtpSettings const &settings)
{
SPStreamEvent newMailServerSettingsChanged(grpc::ImapSmtpSettings const &settings) {
auto event = new grpc::MailServerSettingsChangedEvent;
event->set_allocated_settings(new grpc::ImapSmtpSettings(settings));
auto mailServerSettingsEvent = new grpc::MailServerSettingsEvent;
@ -465,8 +430,7 @@ SPStreamEvent newMailServerSettingsChanged(grpc::ImapSmtpSettings const &setting
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newChangeMailServerSettingsFinished()
{
SPStreamEvent newChangeMailServerSettingsFinished() {
auto event = new grpc::ChangeMailServerSettingsFinishedEvent;
auto mailServerSettingsEvent = new grpc::MailServerSettingsEvent;
mailServerSettingsEvent->set_allocated_changemailserversettingsfinished(event);
@ -477,8 +441,7 @@ SPStreamEvent newChangeMailServerSettingsFinished()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newChangeKeychainFinishedEvent()
{
SPStreamEvent newChangeKeychainFinishedEvent() {
auto event = new grpc::ChangeKeychainFinishedEvent;
auto keychainEvent = new grpc::KeychainEvent;
keychainEvent->set_allocated_changekeychainfinished(event);
@ -489,8 +452,7 @@ SPStreamEvent newChangeKeychainFinishedEvent()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newHasNoKeychainEvent()
{
SPStreamEvent newHasNoKeychainEvent() {
auto event = new grpc::HasNoKeychainEvent;
auto keychainEvent = new grpc::KeychainEvent;
keychainEvent->set_allocated_hasnokeychain(event);
@ -501,8 +463,7 @@ SPStreamEvent newHasNoKeychainEvent()
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newRebuildKeychainEvent()
{
SPStreamEvent newRebuildKeychainEvent() {
auto event = new grpc::RebuildKeychainEvent;
auto keychainEvent = new grpc::KeychainEvent;
keychainEvent->set_allocated_rebuildkeychain(event);
@ -514,8 +475,7 @@ SPStreamEvent newRebuildKeychainEvent()
/// \param[in] email The email.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newNoActiveKeyForRecipientEvent(QString const &email)
{
SPStreamEvent newNoActiveKeyForRecipientEvent(QString const &email) {
auto event = new grpc::NoActiveKeyForRecipientEvent;
event->set_email(email.toStdString());
auto mailEvent = new grpc::MailEvent;
@ -528,8 +488,7 @@ SPStreamEvent newNoActiveKeyForRecipientEvent(QString const &email)
/// \param[in] address The address.
/// /// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newAddressChangedEvent(QString const &address)
{
SPStreamEvent newAddressChangedEvent(QString const &address) {
auto event = new grpc::AddressChangedEvent;
event->set_address(address.toStdString());
auto mailEvent = new grpc::MailEvent;
@ -542,8 +501,7 @@ SPStreamEvent newAddressChangedEvent(QString const &address)
/// \param[in] address The address.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newAddressChangedLogoutEvent(QString const &address)
{
SPStreamEvent newAddressChangedLogoutEvent(QString const &address) {
auto event = new grpc::AddressChangedLogoutEvent;
event->set_address(address.toStdString());
auto mailEvent = new grpc::MailEvent;
@ -555,8 +513,7 @@ SPStreamEvent newAddressChangedLogoutEvent(QString const &address)
//****************************************************************************************************************************************************
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newApiCertIssueEvent()
{
SPStreamEvent newApiCertIssueEvent() {
auto event = new grpc::ApiCertIssueEvent;
auto mailEvent = new grpc::MailEvent;
mailEvent->set_allocated_apicertissue(event);
@ -568,8 +525,7 @@ SPStreamEvent newApiCertIssueEvent()
/// \param[in] userID The userID.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newToggleSplitModeFinishedEvent(QString const &userID)
{
SPStreamEvent newToggleSplitModeFinishedEvent(QString const &userID) {
auto event = new grpc::ToggleSplitModeFinishedEvent;
event->set_userid(userID.toStdString());
auto userEvent = new grpc::UserEvent;
@ -582,8 +538,7 @@ SPStreamEvent newToggleSplitModeFinishedEvent(QString const &userID)
/// \param[in] username The username.
/// /// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newUserDisconnectedEvent(QString const &username)
{
SPStreamEvent newUserDisconnectedEvent(QString const &username) {
auto event = new grpc::UserDisconnectedEvent;
event->set_username(username.toStdString());
auto userEvent = new grpc::UserEvent;
@ -596,8 +551,7 @@ SPStreamEvent newUserDisconnectedEvent(QString const &username)
/// \param[in] userID The userID.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newUserChangedEvent(QString const &userID)
{
SPStreamEvent newUserChangedEvent(QString const &userID) {
auto event = new grpc::UserChangedEvent;
event->set_userid(userID.toStdString());
auto userEvent = new grpc::UserEvent;
@ -610,8 +564,7 @@ SPStreamEvent newUserChangedEvent(QString const &userID)
/// \param[in] errorCode The error errorCode.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newGenericErrorEvent(grpc::ErrorCode errorCode)
{
SPStreamEvent newGenericErrorEvent(grpc::ErrorCode errorCode) {
auto event = new grpc::GenericErrorEvent;
event->set_code(errorCode);
return wrapGenericErrorEvent(event);

View File

@ -24,8 +24,7 @@
#include "GRPCUtils.h"
namespace bridgepp
{
namespace bridgepp {
// App events

View File

@ -28,8 +28,7 @@
#include "grpc++/grpc++.h"
namespace bridgepp
{
namespace bridgepp {
typedef grpc::Status (grpc::Bridge::Stub::*SimpleMethod)(grpc::ClientContext *, const google::protobuf::Empty &, google::protobuf::Empty *);
@ -46,8 +45,7 @@ typedef std::unique_ptr<grpc::ClientContext> UPClientContext;
//****************************************************************************************************************************************************
/// \brief gRPC client class. This class encapsulate the gRPC service, abstracting all data type conversions.
//****************************************************************************************************************************************************
class GRPCClient : public QObject
{
class GRPCClient : public QObject {
Q_OBJECT
public: // static member functions
static void removeServiceConfigFile(); ///< Delete the service config file.
@ -209,7 +207,7 @@ public:
grpc::Status stopEventStreamReader(); ///< Stop the event stream.
private:
void log(Log::Level level, QString const & message); ///< Log an event.
void log(Log::Level level, QString const &message); ///< Log an event.
void logTrace(QString const &message); ///< Log a trace event.
void logDebug(QString const &message); ///< Log a debug event.
void logError(QString const &message); ///< Log an error event.

View File

@ -23,8 +23,7 @@
using namespace bridgepp;
namespace
{
namespace {
Exception const invalidFileException("The service configuration file is invalid"); // Exception for invalid config.
Exception const couldNotSaveException("The service configuration file could not be saved"); ///< Exception for write errors.
@ -42,11 +41,11 @@ QString const keyFileSocketPath = "fileSocketPath"; ///< The JSON key for the fi
/// \param[in] object The JSON object containing the value.
/// \param[in] key The key under which the value is stored.
//****************************************************************************************************************************************************
QString jsonStringValue(QJsonObject const &object, QString const &key)
{
QString jsonStringValue(QJsonObject const &object, QString const &key) {
QJsonValue const v = object[key];
if (!v.isString())
if (!v.isString()) {
throw invalidFileException;
}
return v.toString();
}
@ -59,11 +58,11 @@ QString jsonStringValue(QJsonObject const &object, QString const &key)
/// \param[in] object The JSON object containing the value.
/// \param[in] key The key under which the value is stored.
//****************************************************************************************************************************************************
qint32 jsonIntValue(QJsonObject const &object, QString const &key)
{
qint32 jsonIntValue(QJsonObject const &object, QString const &key) {
QJsonValue const v = object[key];
if (!v.isDouble())
if (!v.isDouble()) {
throw invalidFileException;
}
return v.toInt();
}
@ -76,13 +75,12 @@ qint32 jsonIntValue(QJsonObject const &object, QString const &key)
/// \param[out] outError if not null and an error occurs, this variable contains a description of the error.
/// \return true iff the operation was successful.
//****************************************************************************************************************************************************
bool GRPCConfig::load(QString const &path, QString *outError)
{
try
{
bool GRPCConfig::load(QString const &path, QString *outError) {
try {
QFile file(path);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
throw Exception("Could not open gRPC service config file.");
}
QJsonDocument const doc = QJsonDocument::fromJson(file.readAll());
QJsonObject const object = doc.object();
@ -93,10 +91,10 @@ bool GRPCConfig::load(QString const &path, QString *outError)
return true;
}
catch (Exception const &e)
{
if (outError)
catch (Exception const &e) {
if (outError) {
*outError = e.qwhat();
}
return false;
}
}
@ -107,10 +105,8 @@ bool GRPCConfig::load(QString const &path, QString *outError)
/// \param[out] outError if not null and an error occurs, this variable contains a description of the error.
/// \return true iff the operation was successful.
//****************************************************************************************************************************************************
bool GRPCConfig::save(QString const &path, QString *outError)
{
try
{
bool GRPCConfig::save(QString const &path, QString *outError) {
try {
QJsonObject object;
object.insert(keyPort, port);
object.insert(keyCert, cert);
@ -118,19 +114,21 @@ bool GRPCConfig::save(QString const &path, QString *outError)
object.insert(keyFileSocketPath, fileSocketPath);
QFile file(path);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
throw couldNotSaveException;
}
QByteArray const array = QJsonDocument(object).toJson();
if (array.size() != file.write(array))
if (array.size() != file.write(array)) {
throw couldNotSaveException;
}
return true;
}
catch (Exception const &e)
{
if (outError)
catch (Exception const &e) {
if (outError) {
*outError = e.qwhat();
}
return false;
}
}

View File

@ -23,8 +23,7 @@
//****************************************************************************************************************************************************
/// Service configuration class.
//****************************************************************************************************************************************************
struct GRPCConfig
{
struct GRPCConfig {
public: // data members
qint32 port; ///< The port.
QString cert; ///< The server TLS certificate.
@ -36,5 +35,4 @@ public: // data members
};
#endif //BRIDGE_PP_GRPC_CONFIG_H

View File

@ -22,12 +22,10 @@
using namespace grpc;
namespace bridgepp
{
namespace bridgepp {
namespace
{
namespace {
ErrorInfo const unknownError { UNKNOWN_ERROR, QObject::tr("Unknown error"), QObject::tr("An unknown error occurred.") }; // Unknown error
@ -36,7 +34,7 @@ ErrorInfo const unknownError { UNKNOWN_ERROR, QObject::tr("Unknown error"), QObj
QList<ErrorInfo> const errorList {
unknownError,
{ TLS_CERT_EXPORT_ERROR, QObject::tr("Export error"), QObject::tr("The TLS certificate could not be exported.") },
{ TLS_KEY_EXPORT_ERROR, QObject::tr("Export error"), QObject::tr("The TLS private key could not be exported.") },
{ TLS_KEY_EXPORT_ERROR, QObject::tr("Export error"), QObject::tr("The TLS private key could not be exported.") },
};
@ -46,9 +44,8 @@ QList<ErrorInfo> const errorList {
//****************************************************************************************************************************************************
/// \param[in] error
//****************************************************************************************************************************************************
ErrorInfo errorInfo(grpc::ErrorCode code)
{
QList<ErrorInfo>::const_iterator it = std::find_if(errorList.begin(), errorList.end(), [code](ErrorInfo info) -> bool { return code == info.code;});
ErrorInfo errorInfo(grpc::ErrorCode code) {
QList<ErrorInfo>::const_iterator it = std::find_if(errorList.begin(), errorList.end(), [code](ErrorInfo info) -> bool { return code == info.code; });
return errorList.end() == it ? unknownError : *it;
}

View File

@ -22,22 +22,19 @@
#include "../BridgeUtils.h"
namespace bridgepp
{
namespace bridgepp {
std::string const grpcMetadataServerTokenKey = "server-token";
namespace
{
namespace {
//****************************************************************************************************************************************************
/// \return the gRPC server config file name
//****************************************************************************************************************************************************
QString grpcServerConfigFilename()
{
QString grpcServerConfigFilename() {
return "grpcServerConfig.json";
}
@ -45,8 +42,7 @@ QString grpcServerConfigFilename()
//****************************************************************************************************************************************************
/// \return the gRPC client config file name
//****************************************************************************************************************************************************
QString grpcClientConfigBaseFilename()
{
QString grpcClientConfigBaseFilename() {
return "grpcClientConfig_%1.json";
}
@ -54,8 +50,7 @@ QString grpcClientConfigBaseFilename()
//****************************************************************************************************************************************************
/// \return The server certificate file name
//****************************************************************************************************************************************************
QString serverCertificateFilename()
{
QString serverCertificateFilename() {
return "cert.pem";
}
@ -63,8 +58,7 @@ QString serverCertificateFilename()
//****************************************************************************************************************************************************
//
//****************************************************************************************************************************************************
QString serverKeyFilename()
{
QString serverKeyFilename() {
return "key.pem";
}
@ -83,8 +77,7 @@ bool useFileSocketForGRPC() {
//****************************************************************************************************************************************************
/// \return The absolute path of the service config path.
//****************************************************************************************************************************************************
QString grpcServerConfigPath()
{
QString grpcServerConfigPath() {
return QDir(userConfigDir()).absoluteFilePath(grpcServerConfigFilename());
}
@ -92,8 +85,7 @@ QString grpcServerConfigPath()
//****************************************************************************************************************************************************
/// \return The absolute path of the service config path.
//****************************************************************************************************************************************************
QString grpcClientConfigBasePath()
{
QString grpcClientConfigBasePath() {
return QDir(userConfigDir()).absoluteFilePath(grpcClientConfigBaseFilename());
}
@ -101,8 +93,7 @@ QString grpcClientConfigBasePath()
//****************************************************************************************************************************************************
/// \return The absolute path of the server certificate.
//****************************************************************************************************************************************************
QString serverCertificatePath()
{
QString serverCertificatePath() {
return QDir(userConfigDir()).absoluteFilePath(serverCertificateFilename());
}
@ -110,8 +101,7 @@ QString serverCertificatePath()
//****************************************************************************************************************************************************
/// \return The absolute path of the server key.
//****************************************************************************************************************************************************
QString serverKeyPath()
{
QString serverKeyPath() {
return QDir(userConfigDir()).absoluteFilePath(serverKeyFilename());
}
@ -122,19 +112,18 @@ QString serverKeyPath()
/// \return The path of the created file.
/// \return A null string if the file could not be saved..
//****************************************************************************************************************************************************
QString createClientConfigFile(QString const &token)
{
QString createClientConfigFile(QString const &token) {
QString const basePath = grpcClientConfigBasePath();
QString path, error;
for (qint32 i = 0; i < 1000; ++i) // we try a decent amount of times
{
path = basePath.arg(i);
if (!QFileInfo(path).exists())
{
if (!QFileInfo(path).exists()) {
GRPCConfig config;
config.token = token;
if (!config.save(path))
if (!config.save(path)) {
return QString();
}
return path;
}
}
@ -147,10 +136,8 @@ QString createClientConfigFile(QString const &token)
/// \param[in] level The Log::Level.
/// \return The grpc::LogLevel.
//****************************************************************************************************************************************************
grpc::LogLevel logLevelToGRPC(Log::Level level)
{
switch (level)
{
grpc::LogLevel logLevelToGRPC(Log::Level level) {
switch (level) {
case Log::Level::Panic:
return grpc::LogLevel::LOG_PANIC;
case Log::Level::Fatal:
@ -175,10 +162,8 @@ grpc::LogLevel logLevelToGRPC(Log::Level level)
/// \param[in] level The level::LogLevel.
/// \return The Log::Level.
//****************************************************************************************************************************************************
Log::Level logLevelFromGRPC(grpc::LogLevel level)
{
switch (level)
{
Log::Level logLevelFromGRPC(grpc::LogLevel level) {
switch (level) {
case grpc::LOG_PANIC:
return Log::Level::Panic;
case grpc::LOG_FATAL:
@ -203,10 +188,8 @@ Log::Level logLevelFromGRPC(grpc::LogLevel level)
/// \param[in] state The user state.
/// \return The gRPC user state.
//****************************************************************************************************************************************************
grpc::UserState userStateToGRPC(UserState state)
{
switch (state)
{
grpc::UserState userStateToGRPC(UserState state) {
switch (state) {
case UserState::SignedOut:
return grpc::UserState::SIGNED_OUT;
case UserState::Locked:
@ -223,16 +206,14 @@ grpc::UserState userStateToGRPC(UserState state)
/// \param[in] state The gRPC user state
/// \return the user state
//****************************************************************************************************************************************************
UserState userStateFromGRPC(grpc::UserState state)
{
switch (state)
{
UserState userStateFromGRPC(grpc::UserState state) {
switch (state) {
case grpc::UserState::SIGNED_OUT:
return UserState::SignedOut;
case grpc::UserState::LOCKED:
return UserState::Locked;
case grpc::UserState::CONNECTED:
return UserState ::Connected;
return UserState::Connected;
default:
throw Exception(QString("unknown gRPC user state %1.").arg(qint32(state)));
}
@ -243,16 +224,16 @@ UserState userStateFromGRPC(grpc::UserState state)
/// \param[in] grpcUser The gRPC user.
/// \return user The user.
//****************************************************************************************************************************************************
SPUser userFromGRPC(grpc::User const &grpcUser)
{
SPUser userFromGRPC(grpc::User const &grpcUser) {
SPUser user = User::newUser(nullptr);
user->setID(QString::fromStdString(grpcUser.id()));
user->setUsername(QString::fromStdString(grpcUser.username()));
user->setPassword(QString::fromStdString(grpcUser.password()));
QStringList addresses;
for (int j = 0; j < grpcUser.addresses_size(); ++j)
for (int j = 0; j < grpcUser.addresses_size(); ++j) {
addresses.append(QString::fromStdString(grpcUser.addresses(j)));
}
user->setAddresses(addresses);
user->setAvatarText(QString::fromStdString(grpcUser.avatartext()));
user->setState(userStateFromGRPC(grpcUser.state()));
@ -268,14 +249,14 @@ SPUser userFromGRPC(grpc::User const &grpcUser)
/// \param[in] user the user.
/// \param[out] outGRPCUser The GRPC user.
//****************************************************************************************************************************************************
void userToGRPC(User const &user, grpc::User &outGRPCUser)
{
void userToGRPC(User const &user, grpc::User &outGRPCUser) {
outGRPCUser.set_id(user.id().toStdString());
outGRPCUser.set_username(user.username().toStdString());
outGRPCUser.set_password(user.password().toStdString());
outGRPCUser.clear_addresses();
for (QString const& address: user.addresses())
for (QString const &address: user.addresses()) {
outGRPCUser.add_addresses(address.toStdString());
}
outGRPCUser.set_avatartext(user.avatarText().toStdString());
outGRPCUser.set_state(userStateToGRPC(user.state()));
outGRPCUser.set_splitmode(user.splitMode());
@ -288,14 +269,14 @@ void userToGRPC(User const &user, grpc::User &outGRPCUser)
/// \return The path to a file that can be used for a gRPC file socket.
/// \return A null string if no path could be found.
//****************************************************************************************************************************************************
QString getAvailableFileSocketPath()
{
QString getAvailableFileSocketPath() {
QDir const tempDir(QStandardPaths::writableLocation(QStandardPaths::TempLocation));
for (qint32 i = 0; i < 10000; i++) {
QString const path = tempDir.absoluteFilePath(QString("bridge_%1.sock").arg(qint32(i), 4, 10, QChar('0')));
QFile f(path);
if ((!f.exists()) || f.remove())
if ((!f.exists()) || f.remove()) {
return path;
}
}
return QString();

View File

@ -25,8 +25,7 @@
#include "bridge.grpc.pb.h"
namespace bridgepp
{
namespace bridgepp {
extern std::string const grpcMetadataServerTokenKey; ///< The key for the server token stored in the gRPC calls context metadata.