diff --git a/cmd/launcher/main.go b/cmd/launcher/main.go index 06b34250..bca84f57 100644 --- a/cmd/launcher/main.go +++ b/cmd/launcher/main.go @@ -42,6 +42,10 @@ const ( appName = "Proton Mail Launcher" configName = "bridge" exeName = "proton-bridge" + guiName = "proton-bridge-gui" + + FlagCLI = "--cli" + FlagLauncher = "--launcher" ) func main() { //nolint:funlen @@ -86,9 +90,15 @@ func main() { //nolint:funlen versioner := versioner.New(updatesPath) - exe, err := getPathToUpdatedExecutable(exeName, versioner, kr, reporter) + exeToLaunch := guiName + args := os.Args[1:] + if isCliMode(&args) { + exeToLaunch = exeName + } + + exe, err := getPathToUpdatedExecutable(exeToLaunch, versioner, kr, reporter) if err != nil { - if exe, err = getFallbackExecutable(exeName, versioner); err != nil { + if exe, err = getFallbackExecutable(exeToLaunch, versioner); err != nil { logrus.WithError(err).Fatal("Failed to find any launchable executable") } } @@ -98,7 +108,7 @@ func main() { //nolint:funlen logrus.WithError(err).Fatal("Failed to determine path to launcher") } - cmd := execabs.Command(exe, appendLauncherPath(launcher, os.Args[1:])...) //nolint:gosec + cmd := execabs.Command(exe, appendLauncherPath(launcher, args)...) //nolint:gosec cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout @@ -122,7 +132,7 @@ func appendLauncherPath(path string, args []string) []string { hasFlag := false for k, v := range res { - if v != "--launcher" { + if v != FlagLauncher { continue } @@ -136,12 +146,22 @@ func appendLauncherPath(path string, args []string) []string { } if !hasFlag { - res = append(res, "--launcher", path) + res = append(res, FlagLauncher, path) } return res } +func isCliMode(args *[]string) bool { + for _, v := range *args { + if v == FlagCLI { + return true + } + } + + return false +} + func getPathToUpdatedExecutable( name string, versioner *versioner.Versioner, diff --git a/internal/app/base/base.go b/internal/app/base/base.go index 372f6c88..9dc5ec7e 100644 --- a/internal/app/base/base.go +++ b/internal/app/base/base.go @@ -93,10 +93,11 @@ type Base struct { TLS *tls.TLS Autostart *autostart.App - Name string // the app's name - usage string // the app's usage description - command string // the command used to launch the app (either the exe path or the launcher path) - restart bool // whether the app is currently set to restart + Name string // the app's name + usage string // the app's usage description + command string // the command used to launch the app (either the exe path or the launcher path) + restart bool // whether the app is currently set to restart + launcher string // launcher to be used if not set in args teardown []func() error // actions to perform when app is exiting } @@ -322,6 +323,11 @@ func (b *Base) SetToRestart() { b.restart = true } +func (b *Base) ForceLauncher(launcher string) { + b.launcher = launcher + b.setupLauncher(launcher) +} + // AddTeardownAction adds an action to perform during app teardown. func (b *Base) AddTeardownAction(fn func() error) { b.teardown = append(b.teardown, fn) @@ -335,10 +341,7 @@ func (b *Base) wrapMainLoop(appMainLoop func(*Base, *cli.Context) error) cli.Act // If launcher was used to start the app, use that for restart // and autostart. if launcher := c.String(FlagLauncher); launcher != "" { - b.command = launcher - // Bridge supports no-window option which we should use - // for autostart. - b.Autostart.Exec = []string{launcher, "--" + FlagNoWindow} + b.setupLauncher(launcher) } if c.Bool(flagCPUProfile) { @@ -402,3 +405,10 @@ func (b *Base) doTeardown() error { return nil } + +func (b *Base) setupLauncher(launcher string) { + b.command = launcher + // Bridge supports no-window option which we should use + // for autostart. + b.Autostart.Exec = []string{launcher, "--" + FlagNoWindow} +} diff --git a/internal/app/base/restart.go b/internal/app/base/restart.go index ebfd0808..a7014d60 100644 --- a/internal/app/base/restart.go +++ b/internal/app/base/restart.go @@ -38,6 +38,10 @@ func (b *Base) restartApp(crash bool) error { args = os.Args[1:] } + if b.launcher != "" { + args = forceLauncherFlag(args, b.launcher) + } + logrus. WithField("command", b.command). WithField("args", args). @@ -78,3 +82,29 @@ func incrementRestartFlag(args []string) []string { return res } + +// forceLauncherFlag replace or add the launcher args with the one set in the app. +func forceLauncherFlag(args []string, launcher string) []string { + res := append([]string{}, args...) + + hasFlag := false + + for k, v := range res { + if v != "--launcher" { + continue + } + + if k+1 >= len(res) { + continue + } + + hasFlag = true + res[k+1] = launcher + } + + if !hasFlag { + res = append(res, "--launcher", launcher) + } + + return res +} diff --git a/internal/frontend/.gitignore b/internal/frontend/.gitignore index 1619873b..13e783fc 100644 --- a/internal/frontend/.gitignore +++ b/internal/frontend/.gitignore @@ -9,8 +9,6 @@ rcc.qrc rcc_cgo_*.go *.qmlc -# QtCreator env -CMakeLists.txt.user - # Generated file bridge-gui/Version.h +bridge-gui/Config.h diff --git a/internal/frontend/bridge-gui/BridgeMonitor.cpp b/internal/frontend/bridge-gui/BridgeMonitor.cpp index 435ebd6e..d69bf8a1 100644 --- a/internal/frontend/bridge-gui/BridgeMonitor.cpp +++ b/internal/frontend/bridge-gui/BridgeMonitor.cpp @@ -34,7 +34,7 @@ QString const exeSuffix = ".exe"; QString const exeSuffix; #endif -QString const exeName = "bridge" + exeSuffix; ///< The bridge executable file name. +QString const exeName = "proton-bridge" + exeSuffix; ///< The bridge executable file name.* } @@ -55,9 +55,10 @@ QString BridgeMonitor::locateBridgeExe() /// \param[in] exePath The path of the Bridge executable. /// \param[in] parent The parent object of the worker. //**************************************************************************************************************************************************** -BridgeMonitor::BridgeMonitor(QString const &exePath, QObject *parent) +BridgeMonitor::BridgeMonitor(QString const &exePath, QStringList const &args, QObject *parent) : Worker(parent) , exePath_(exePath) + , args_(args) { QFileInfo fileInfo(exePath); if (!fileInfo.exists()) @@ -77,16 +78,23 @@ void BridgeMonitor::run() emit started(); QProcess p; - p.start(exePath_, QStringList()); + p.start(exePath_, args_); p.waitForStarted(); + status_.running = true; + status_.pid = p.processId(); + while (!p.waitForFinished(100)) { // we discard output from bridge, it's logged to file on bridge side. p.readAllStandardError(); p.readAllStandardOutput(); } - emit processExited(p.exitCode()); + + status_.running = false; + status_.returnCode = p.exitCode(); + + emit processExited(status_.returnCode ); emit finished(); } catch (Exception const &e) @@ -94,3 +102,11 @@ void BridgeMonitor::run() emit error(e.qwhat()); } } + +//**************************************************************************************************************************************************** +/// \return status of the monitored process +//**************************************************************************************************************************************************** +const BridgeMonitor::MonitorStatus& BridgeMonitor::getStatus() +{ + return status_; +} diff --git a/internal/frontend/bridge-gui/BridgeMonitor.h b/internal/frontend/bridge-gui/BridgeMonitor.h index f3e1f640..948f4966 100644 --- a/internal/frontend/bridge-gui/BridgeMonitor.h +++ b/internal/frontend/bridge-gui/BridgeMonitor.h @@ -33,8 +33,14 @@ class BridgeMonitor: public bridgepp::Worker public: // static member functions static QString locateBridgeExe(); ///< Try to find the bridge executable path. + struct MonitorStatus { + bool running = false; + int returnCode = 0; + qint64 pid = 0; + }; + public: // member functions. - BridgeMonitor(QString const& exePath, QObject *parent); ///< Default constructor. + BridgeMonitor(QString const& exePath, QStringList const &args, QObject *parent); ///< Default constructor. BridgeMonitor(BridgeMonitor const&) = delete; ///< Disabled copy-constructor. BridgeMonitor(BridgeMonitor&&) = delete; ///< Disabled assignment copy-constructor. ~BridgeMonitor() override = default; ///< Destructor. @@ -42,11 +48,14 @@ public: // member functions. BridgeMonitor& operator=(BridgeMonitor&&) = delete; ///< Disabled move assignment operator. void run() override; ///< Run the worker. + const MonitorStatus& getStatus(); signals: - void processExited(int code); ///< Slot for the exiting of the process + void processExited(int code); ///< Slot for the exiting of the process. private: // data members QString const exePath_; ///< The path to the bridge executable. + QStringList args_; ///< arguments to be passed to the brigde. + MonitorStatus status_; ///< Status of the monitoring. }; diff --git a/internal/frontend/bridge-gui/CMakeLists.txt b/internal/frontend/bridge-gui/CMakeLists.txt index 45ce73c8..6bd5c6fe 100644 --- a/internal/frontend/bridge-gui/CMakeLists.txt +++ b/internal/frontend/bridge-gui/CMakeLists.txt @@ -34,6 +34,7 @@ else() message(STATUS "Bridge version is ${BRIDGE_APP_VERSION}") endif() +configure_file(Version.h.in ${CMAKE_SOURCE_DIR}/Version.h) if (APPLE) # On macOS, we have some Objective-C++ code in DockIcon to deal with the dock icon. enable_language(OBJC OBJCXX) endif() @@ -90,7 +91,7 @@ add_executable(bridge-gui QMLBackend.cpp QMLBackend.h UserList.cpp UserList.h ${DOCK_ICON_SRC_FILE} DockIcon/DockIcon.h - ) + UserDirectories.h) target_precompile_headers(bridge-gui PRIVATE Pch.h) target_include_directories(bridge-gui PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/internal/frontend/bridge-gui/Config.h.in b/internal/frontend/bridge-gui/Config.h.in new file mode 100644 index 00000000..db360297 --- /dev/null +++ b/internal/frontend/bridge-gui/Config.h.in @@ -0,0 +1,24 @@ +// Copyright (c) 2022 Proton AG +// +// This file is part of Proton Mail Bridge. +// +// Proton Mail Bridge is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Proton Mail Bridge is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Proton Mail Bridge. If not, see . + + +#ifndef BRIDGE_GUI_CONFIG_H +#define BRIDGE_GUI_CONFIG_H + +#cmakedefine ATTACH_MODE @ATTACH_MODE@ + +#endif // BRIDGE_GUI_CONFIG_H diff --git a/internal/frontend/bridge-gui/QMLBackend.cpp b/internal/frontend/bridge-gui/QMLBackend.cpp index 21fbd80c..34e59a12 100644 --- a/internal/frontend/bridge-gui/QMLBackend.cpp +++ b/internal/frontend/bridge-gui/QMLBackend.cpp @@ -83,7 +83,7 @@ void QMLBackend::connectGrpcEvents() // app events connect(client, &GRPCClient::internetStatus, this, [&](bool isOn) { if (isOn) emit internetOn(); else emit internetOff(); }); connect(client, &GRPCClient::toggleAutostartFinished, this, &QMLBackend::toggleAutostartFinished); - connect(client, &GRPCClient::resetFinished, this, &QMLBackend::resetFinished); + connect(client, &GRPCClient::resetFinished, this, &QMLBackend::onResetFinished); connect(client, &GRPCClient::reportBugFinished, this, &QMLBackend::reportBugFinished); connect(client, &GRPCClient::reportBugSuccess, this, &QMLBackend::bugReportSendSuccess); connect(client, &GRPCClient::reportBugError, this, &QMLBackend::bugReportSendError); @@ -220,7 +220,12 @@ void QMLBackend::quit() void QMLBackend::restart() { app().grpc().restart(); - app().log().error("RESTART is not implemented"); /// \todo GODT-1671 implement restart. + app().grpc().quit(); +} + +void QMLBackend::forceLauncher(QString launcher) +{ + app().grpc().forceLauncher(launcher); } @@ -333,3 +338,12 @@ void QMLBackend::triggerReset() { app().grpc().triggerReset(); } + +//**************************************************************************************************************************************************** +// +//**************************************************************************************************************************************************** +void QMLBackend::onResetFinished() +{ + emit resetFinished(); + this->restart(); +} \ No newline at end of file diff --git a/internal/frontend/bridge-gui/QMLBackend.h b/internal/frontend/bridge-gui/QMLBackend.h index 204b99c5..b31c3d40 100644 --- a/internal/frontend/bridge-gui/QMLBackend.h +++ b/internal/frontend/bridge-gui/QMLBackend.h @@ -150,11 +150,13 @@ public slots: // slot for signals received from QML -> To be forwarded to Bridge void guiReady(); // _ func() `slot:"guiReady"` void quit(); // _ func() `slot:"quit"` void restart(); // _ func() `slot:"restart"` + void forceLauncher(QString launcher); // _ func() `slot:"forceLauncher"` void checkUpdates(); // _ func() `slot:"checkUpdates"` void installUpdate(); // _ func() `slot:"installUpdate"` void triggerReset(); // _ func() `slot:"triggerReset"` void reportBug(QString const &description, QString const& address, QString const &emailClient, bool includeLogs) { app().grpc().reportBug(description, address, emailClient, includeLogs); } // _ func(description, address, emailClient string, includeLogs bool) `slot:"reportBug"` + void onResetFinished(); signals: // Signals received from the Go backend, to be forwarded to QML void toggleAutostartFinished(); // _ func() `signal:"toggleAutostartFinished"` diff --git a/internal/frontend/bridge-gui/UserDirectories.h b/internal/frontend/bridge-gui/UserDirectories.h new file mode 100644 index 00000000..4a78767e --- /dev/null +++ b/internal/frontend/bridge-gui/UserDirectories.h @@ -0,0 +1,79 @@ +// +// Created by romain on 01/08/22. +// + +#ifndef PROTON_BRIDGE_GUI_USERDIRECTORIES_H +#define PROTON_BRIDGE_GUI_USERDIRECTORIES_H + +#include + +using namespace bridgepp; + +namespace UserDirectories { + + QString const configFolder = "protonmail/bridge"; + +//**************************************************************************************************************************************************** +/// \return user configuration directory used by bridge (based on Golang OS/File's UserConfigDir). +//**************************************************************************************************************************************************** + static const QString UserConfigDir() + { + QString dir; +#ifdef Q_OS_WIN + dir = qgetenv ("AppData"); + if (dir.isEmpty()) + throw Exception("%AppData% is not defined."); +#elif defined(Q_OS_IOS) || defined(Q_OS_DARWIN) + dir = qgetenv ("HOME"); + if (dir.isEmpty()) + throw Exception("$HOME is not defined."); + dir += "/Library/Application Support"; +#else + dir = qgetenv ("XDG_CONFIG_HOME"); + if (dir.isEmpty()) + dir = qgetenv ("HOME"); + if (dir.isEmpty()) + throw Exception("neither $XDG_CONFIG_HOME nor $HOME are defined"); + dir += "/.config"; +#endif + QString folder = dir + "/" + configFolder; + QDir().mkpath(folder); + + return folder; + } + + +//**************************************************************************************************************************************************** +/// \return user configuration directory used by bridge (based on Golang OS/File's UserCacheDir). +//**************************************************************************************************************************************************** + static const QString UserCacheDir() + { + QString dir; + +#ifdef Q_OS_WIN + dir = qgetenv ("LocalAppData"); + if (dir.isEmpty()) + throw Exception("%LocalAppData% is not defined."); +#elif defined(Q_OS_IOS) || defined(Q_OS_DARWIN) + dir = qgetenv ("HOME"); + if (dir.isEmpty()) + throw Exception("$HOME is not defined."); + dir += "/Library/Caches"; +#else + dir = qgetenv ("XDG_CACHE_HOME"); + if (dir.isEmpty()) + dir = qgetenv ("HOME"); + if (dir.isEmpty()) + throw Exception("neither XDG_CACHE_HOME nor $HOME are defined"); + dir += "/.cache"; +#endif + QString folder = dir + "/" + configFolder; + QDir().mkpath(folder); + + return folder; + } + +}; + + +#endif //PROTON_BRIDGE_GUI_USERDIRECTORIES_H diff --git a/internal/frontend/bridge-gui/main.cpp b/internal/frontend/bridge-gui/main.cpp index 23d55a29..a9e9d730 100644 --- a/internal/frontend/bridge-gui/main.cpp +++ b/internal/frontend/bridge-gui/main.cpp @@ -19,6 +19,7 @@ #include "QMLBackend.h" #include "BridgeMonitor.h" #include "Version.h" +#include "UserDirectories.h" #include #include @@ -26,6 +27,13 @@ using namespace bridgepp; +namespace +{ + QString const launcherFlag = "--launcher"; ///< launcher flag parameter used for bridge. + QString const bridgeLock = "bridge-gui.lock"; ///< file name used for the lock file. +} + + //**************************************************************************************************************************************************** /// // initialize the Qt application. //**************************************************************************************************************************************************** @@ -84,56 +92,94 @@ QQmlComponent *createRootQmlComponent(QQmlApplicationEngine &engine) //**************************************************************************************************************************************************** -/// \param[in] exePath The path of the Bridge executable. If empty, the function will try to locate the bridge application. +/// \param[in] lock The lock file to be checked. +/// \return True if the lock can be taken, false otherwize. //**************************************************************************************************************************************************** -void launchBridge(QString const &exePath) +bool checkSingleInstance(QLockFile &lock) +{ + lock.setStaleLockTime(0); + if (!lock.tryLock()) + { + qint64 pid; + QString hostname, appName, details; + if (lock.getLockInfo(&pid, &hostname, &appName)) + details = QString("(PID : %1 - Host : %2 - App : %3)").arg(pid).arg(hostname, appName); + + app().log().error(QString("Instance already exists %1 %2").arg(lock.fileName(), details)); + return false; + } + else + { + app().log().info(QString("lock file created %1").arg(lock.fileName())); + } + return true; +} + + +//**************************************************************************************************************************************************** +/// \param [in] argc number of arguments passed to the application. +/// \param [in] argv list of arguments passed to the application. +/// \param [out] args list of arguments passed to the application as a QStringList. +/// \param [out] launcher launcher used in argument, forced to self application if not specify. +/// \param[out] outAttach The value for the 'attach' command-line parameter. +//**************************************************************************************************************************************************** +void parseArguments(int argc, char *argv[], QStringList& args, QString& launcher, bool &outAttach) { + bool flagFound = false; + launcher = QString::fromLocal8Bit(argv[0]); + // for unknown reasons, on Windows QCoreApplication::arguments() frequently returns an empty list, which is incorrect, so we rebuild the argument + // list from the original argc and argv values. + for (int i = 1; i < argc; i++) { + QString const &arg = QString::fromLocal8Bit(argv[i]); + // we can't use QCommandLineParser here since it will fails on unknown options. + // Arguments may contain some bridge flags. + if (arg == launcherFlag) + { + args.append(arg); + launcher = QString::fromLocal8Bit(argv[++i]); + args.append(launcher); + flagFound = true; + } +#ifdef QT_DEBUG + else if (arg == "--attach" || arg == "-a") + { + // we don't keep the attach mode within the args since we don't need it for Bridge. + outAttach = true; + } +#endif + else + { + args.append(arg); + } + } + if (!flagFound) + { + // add bridge-gui as launcher + args.append(launcherFlag); + args.append(launcher); + } +} + + +//**************************************************************************************************************************************************** +/// \param [in] args list of arguments to pass to bridge. +//**************************************************************************************************************************************************** +void launchBridge(QStringList const &args) { UPOverseer& overseer = app().bridgeOverseer(); overseer.reset(); - QString bridgeExePath = exePath; - if (exePath.isEmpty()) - bridgeExePath = BridgeMonitor::locateBridgeExe(); + const QString bridgeExePath = BridgeMonitor::locateBridgeExe(); if (bridgeExePath.isEmpty()) throw Exception("Could not locate the bridge executable path"); else app().log().debug(QString("Bridge executable path: %1").arg(QDir::toNativeSeparators(bridgeExePath))); - overseer = std::make_unique(new BridgeMonitor(bridgeExePath, nullptr), nullptr); + overseer = std::make_unique(new BridgeMonitor(bridgeExePath, args, nullptr), nullptr); overseer->startWorker(true); } -//**************************************************************************************************************************************************** -/// \param[in] argc The number of command-line arguments. -/// \param[in] argv The list of command line arguments. -/// \param[out] outAttach The value for the 'attach' command-line parameter. -/// \param[out] outExePath The value for the 'bridge-exe-path' command-line parameter. -//**************************************************************************************************************************************************** -void parseArguments(int argc, char **argv, bool &outAttach, QString &outExePath) -{ - // for unknown reasons, on Windows QCoreApplication::arguments() frequently returns an empty list, which is incorrect, so we rebuild the argument - // list from the original argc and argv values. - QStringList args; - for (int i = 0; i < argc; i++) - args.append(QString::fromLocal8Bit(argv[i])); - - // We do not want to 'advertise' the following switches, so we do not offer a '-h/--help' option. - // we have not yet connected to Bridge, we do not know the application version number, so we do not offer a -v/--version switch. - QCommandLineParser parser; - parser.setApplicationDescription("Proton Mail Bridge"); - QCommandLineOption attachOption(QStringList() << "attach" << "a", "attach to an existing bridge process"); - parser.addOption(attachOption); - QCommandLineOption exePathOption(QStringList() << "bridge-exe-path" << "b", "bridge executable path", "path", QString()); - parser.addOption(exePathOption); - - parser.process(args); - outAttach = parser.isSet(attachOption); - outExePath = parser.value(exePathOption); -} - - //**************************************************************************************************************************************************** // //**************************************************************************************************************************************************** @@ -166,14 +212,19 @@ int main(int argc, char *argv[]) QGuiApplication guiApp(argc, argv); initQtApplication(); - bool attach = false; - QString exePath; - parseArguments(argc, argv, attach, exePath); - Log &log = initLog(); + QLockFile lock(UserDirectories::UserCacheDir() + "/" + bridgeLock); + if (!checkSingleInstance(lock)) + return EXIT_FAILURE; + + QStringList args; + QString launcher; + bool attach = false; + parseArguments(argc, argv, args, launcher, attach); + if (!attach) - launchBridge(exePath); + launchBridge(args); app().backend().init(); @@ -185,15 +236,34 @@ int main(int argc, char *argv[]) BridgeMonitor *bridgeMonitor = app().bridgeMonitor(); bool bridgeExited = false; + bool startError = false; QMetaObject::Connection connection; if (bridgeMonitor) - connection = QObject::connect(bridgeMonitor, &BridgeMonitor::processExited, [&](int returnCode) { - // GODT-1671 We need to find a 'safe' way to check if Bridge crashed and restart instead of just quitting. Is returnCode enough? - bridgeExited = true;// clazy:exclude=lambda-in-connect - qGuiApp->exit(returnCode); - }); + { + const BridgeMonitor::MonitorStatus& status = bridgeMonitor->getStatus(); + if (!status.running && !attach) + { + // BridgeMonitor already stopped meaning we are attached to an orphan Bridge. + // Restart the full process to be sure there is no more bridge orphans + app().log().error("Found orphan bridge, need to restart."); + app().backend().forceLauncher(launcher); + app().backend().restart(); + bridgeExited = true; + startError = true; + } + else + { + app().log().debug(QString("Monitoring Bridge PID : %1").arg(status.pid)); + connection = QObject::connect(bridgeMonitor, &BridgeMonitor::processExited, [&](int returnCode) { + bridgeExited = true;// clazy:exclude=lambda-in-connect + qGuiApp->exit(returnCode); + }); + } + } - int const result = QGuiApplication::exec(); + int result = 0; + if (!startError) + result = QGuiApplication::exec(); QObject::disconnect(connection); app().grpc().stopEventStream(); @@ -204,7 +274,8 @@ int main(int argc, char *argv[]) if (!bridgeExited) closeBridgeApp(); - + // release the lock file + lock.unlock(); return result; } catch (Exception const &e) diff --git a/internal/frontend/bridge-gui/qml/Notifications/Notifications.qml b/internal/frontend/bridge-gui/qml/Notifications/Notifications.qml index 8f897239..6dd3f9ce 100644 --- a/internal/frontend/bridge-gui/qml/Notifications/Notifications.qml +++ b/internal/frontend/bridge-gui/qml/Notifications/Notifications.qml @@ -193,7 +193,7 @@ QtObject { onTriggered: { Qt.openUrlExternally(Backend.landingPageLink) root.updateManualError.active = false - root.backend.quit() + Backend.quit() } }, Action { diff --git a/internal/frontend/bridgepp/bridgepp/GRPC/GRPCClient.cpp b/internal/frontend/bridgepp/bridgepp/GRPC/GRPCClient.cpp index 4759217f..2a87ede2 100644 --- a/internal/frontend/bridgepp/bridgepp/GRPC/GRPCClient.cpp +++ b/internal/frontend/bridgepp/bridgepp/GRPC/GRPCClient.cpp @@ -387,6 +387,18 @@ grpc::Status GRPCClient::triggerReset() } +//**************************************************************************************************************************************************** +/// \return The status for the gRPC call. +//**************************************************************************************************************************************************** +grpc::Status GRPCClient::forceLauncher(QString const &launcher) +{ + grpc::ClientContext ctx; + StringValue s; + s.set_value(launcher.toStdString()); + return this->logGRPCCallStatus(stub_->ForceLauncher(&ctx, s, &empty), __FUNCTION__); +} + + //**************************************************************************************************************************************************** /// \param[in] port The port to check. /// \param[out] outFree The result of the check. @@ -1366,4 +1378,4 @@ void GRPCClient::processUserEvent(UserEvent const &event) } -} // namespace bridgepp \ No newline at end of file +} // namespace bridgepp diff --git a/internal/frontend/bridgepp/bridgepp/GRPC/GRPCClient.h b/internal/frontend/bridgepp/bridgepp/GRPC/GRPCClient.h index 6826dd6d..8010b7e8 100644 --- a/internal/frontend/bridgepp/bridgepp/GRPC/GRPCClient.h +++ b/internal/frontend/bridgepp/bridgepp/GRPC/GRPCClient.h @@ -70,6 +70,7 @@ public: // member functions. grpc::Status quit(); ///< Perform the "Quit" gRPC call. grpc::Status restart(); ///< Performs the Restart gRPC call. grpc::Status triggerReset(); ///< Performs the triggerReset gRPC call. + grpc::Status forceLauncher(QString const &launcher); ///< Performs the 'ForceLauncher' call. grpc::Status isPortFree(qint32 port, bool &outFree); ///< Performs the 'IsPortFree' call. grpc::Status showOnStartup(bool &outValue); ///< Performs the 'ShowOnStartup' call. grpc::Status showSplashScreen(bool &outValue); ///< Performs the 'ShowSplashScreen' call. diff --git a/internal/frontend/bridgepp/bridgepp/GRPC/bridge.grpc.pb.cc b/internal/frontend/bridgepp/bridgepp/GRPC/bridge.grpc.pb.cc index 4a8140ad..7731d0f6 100644 --- a/internal/frontend/bridgepp/bridgepp/GRPC/bridge.grpc.pb.cc +++ b/internal/frontend/bridgepp/bridgepp/GRPC/bridge.grpc.pb.cc @@ -45,6 +45,7 @@ static const char* Bridge_method_names[] = { "/grpc.Bridge/ColorSchemeName", "/grpc.Bridge/CurrentEmailClient", "/grpc.Bridge/ReportBug", + "/grpc.Bridge/ForceLauncher", "/grpc.Bridge/Login", "/grpc.Bridge/Login2FA", "/grpc.Bridge/Login2Passwords", @@ -108,37 +109,38 @@ Bridge::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, co , rpcmethod_ColorSchemeName_(Bridge_method_names[20], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_CurrentEmailClient_(Bridge_method_names[21], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_ReportBug_(Bridge_method_names[22], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_Login_(Bridge_method_names[23], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_Login2FA_(Bridge_method_names[24], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_Login2Passwords_(Bridge_method_names[25], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_LoginAbort_(Bridge_method_names[26], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_CheckUpdate_(Bridge_method_names[27], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_InstallUpdate_(Bridge_method_names[28], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_SetIsAutomaticUpdateOn_(Bridge_method_names[29], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_IsAutomaticUpdateOn_(Bridge_method_names[30], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_IsCacheOnDiskEnabled_(Bridge_method_names[31], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_DiskCachePath_(Bridge_method_names[32], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ChangeLocalCache_(Bridge_method_names[33], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_SetIsDoHEnabled_(Bridge_method_names[34], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_IsDoHEnabled_(Bridge_method_names[35], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_SetUseSslForSmtp_(Bridge_method_names[36], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_UseSslForSmtp_(Bridge_method_names[37], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_Hostname_(Bridge_method_names[38], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ImapPort_(Bridge_method_names[39], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_SmtpPort_(Bridge_method_names[40], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ChangePorts_(Bridge_method_names[41], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_IsPortFree_(Bridge_method_names[42], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_AvailableKeychains_(Bridge_method_names[43], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_SetCurrentKeychain_(Bridge_method_names[44], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_CurrentKeychain_(Bridge_method_names[45], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetUserList_(Bridge_method_names[46], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetUser_(Bridge_method_names[47], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_SetUserSplitMode_(Bridge_method_names[48], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_LogoutUser_(Bridge_method_names[49], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_RemoveUser_(Bridge_method_names[50], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ConfigureUserAppleMail_(Bridge_method_names[51], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_StartEventStream_(Bridge_method_names[52], options.suffix_for_stats(),::grpc::internal::RpcMethod::SERVER_STREAMING, channel) - , rpcmethod_StopEventStream_(Bridge_method_names[53], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ForceLauncher_(Bridge_method_names[23], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_Login_(Bridge_method_names[24], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_Login2FA_(Bridge_method_names[25], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_Login2Passwords_(Bridge_method_names[26], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_LoginAbort_(Bridge_method_names[27], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_CheckUpdate_(Bridge_method_names[28], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_InstallUpdate_(Bridge_method_names[29], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_SetIsAutomaticUpdateOn_(Bridge_method_names[30], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_IsAutomaticUpdateOn_(Bridge_method_names[31], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_IsCacheOnDiskEnabled_(Bridge_method_names[32], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DiskCachePath_(Bridge_method_names[33], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ChangeLocalCache_(Bridge_method_names[34], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_SetIsDoHEnabled_(Bridge_method_names[35], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_IsDoHEnabled_(Bridge_method_names[36], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_SetUseSslForSmtp_(Bridge_method_names[37], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UseSslForSmtp_(Bridge_method_names[38], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_Hostname_(Bridge_method_names[39], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ImapPort_(Bridge_method_names[40], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_SmtpPort_(Bridge_method_names[41], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ChangePorts_(Bridge_method_names[42], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_IsPortFree_(Bridge_method_names[43], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_AvailableKeychains_(Bridge_method_names[44], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_SetCurrentKeychain_(Bridge_method_names[45], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_CurrentKeychain_(Bridge_method_names[46], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetUserList_(Bridge_method_names[47], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetUser_(Bridge_method_names[48], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_SetUserSplitMode_(Bridge_method_names[49], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_LogoutUser_(Bridge_method_names[50], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_RemoveUser_(Bridge_method_names[51], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ConfigureUserAppleMail_(Bridge_method_names[52], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_StartEventStream_(Bridge_method_names[53], options.suffix_for_stats(),::grpc::internal::RpcMethod::SERVER_STREAMING, channel) + , rpcmethod_StopEventStream_(Bridge_method_names[54], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) {} ::grpc::Status Bridge::Stub::AddLogEntry(::grpc::ClientContext* context, const ::grpc::AddLogEntryRequest& request, ::google::protobuf::Empty* response) { @@ -670,6 +672,29 @@ void Bridge::Stub::async::ReportBug(::grpc::ClientContext* context, const ::grpc return result; } +::grpc::Status Bridge::Stub::ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::google::protobuf::Empty* response) { + return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ForceLauncher_, context, request, response); +} + +void Bridge::Stub::async::ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ForceLauncher_, context, request, response, std::move(f)); +} + +void Bridge::Stub::async::ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ForceLauncher_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Bridge::Stub::PrepareAsyncForceLauncherRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::protobuf::StringValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ForceLauncher_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Bridge::Stub::AsyncForceLauncherRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncForceLauncherRaw(context, request, cq); + result->StartCall(); + return result; +} + ::grpc::Status Bridge::Stub::Login(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::google::protobuf::Empty* response) { return ::grpc::internal::BlockingUnaryCall< ::grpc::LoginRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Login_, context, request, response); } @@ -1610,12 +1635,12 @@ Bridge::Service::Service() { AddMethod(new ::grpc::internal::RpcServiceMethod( Bridge_method_names[23], ::grpc::internal::RpcMethod::NORMAL_RPC, - new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::LoginRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, ::grpc::ServerContext* ctx, - const ::grpc::LoginRequest* req, + const ::google::protobuf::StringValue* req, ::google::protobuf::Empty* resp) { - return service->Login(ctx, req, resp); + return service->ForceLauncher(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( Bridge_method_names[24], @@ -1625,7 +1650,7 @@ Bridge::Service::Service() { ::grpc::ServerContext* ctx, const ::grpc::LoginRequest* req, ::google::protobuf::Empty* resp) { - return service->Login2FA(ctx, req, resp); + return service->Login(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( Bridge_method_names[25], @@ -1635,11 +1660,21 @@ Bridge::Service::Service() { ::grpc::ServerContext* ctx, const ::grpc::LoginRequest* req, ::google::protobuf::Empty* resp) { - return service->Login2Passwords(ctx, req, resp); + return service->Login2FA(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( Bridge_method_names[26], ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::LoginRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](Bridge::Service* service, + ::grpc::ServerContext* ctx, + const ::grpc::LoginRequest* req, + ::google::protobuf::Empty* resp) { + return service->Login2Passwords(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + Bridge_method_names[27], + ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::LoginAbortRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, ::grpc::ServerContext* ctx, @@ -1648,7 +1683,7 @@ Bridge::Service::Service() { return service->LoginAbort(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[27], + Bridge_method_names[28], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1658,7 +1693,7 @@ Bridge::Service::Service() { return service->CheckUpdate(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[28], + Bridge_method_names[29], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1668,7 +1703,7 @@ Bridge::Service::Service() { return service->InstallUpdate(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[29], + Bridge_method_names[30], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::BoolValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1678,7 +1713,7 @@ Bridge::Service::Service() { return service->SetIsAutomaticUpdateOn(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[30], + Bridge_method_names[31], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1688,7 +1723,7 @@ Bridge::Service::Service() { return service->IsAutomaticUpdateOn(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[31], + Bridge_method_names[32], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1698,7 +1733,7 @@ Bridge::Service::Service() { return service->IsCacheOnDiskEnabled(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[32], + Bridge_method_names[33], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::StringValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1708,7 +1743,7 @@ Bridge::Service::Service() { return service->DiskCachePath(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[33], + Bridge_method_names[34], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::ChangeLocalCacheRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1718,7 +1753,7 @@ Bridge::Service::Service() { return service->ChangeLocalCache(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[34], + Bridge_method_names[35], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::BoolValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1728,7 +1763,7 @@ Bridge::Service::Service() { return service->SetIsDoHEnabled(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[35], + Bridge_method_names[36], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1738,7 +1773,7 @@ Bridge::Service::Service() { return service->IsDoHEnabled(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[36], + Bridge_method_names[37], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::BoolValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1748,7 +1783,7 @@ Bridge::Service::Service() { return service->SetUseSslForSmtp(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[37], + Bridge_method_names[38], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1758,7 +1793,7 @@ Bridge::Service::Service() { return service->UseSslForSmtp(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[38], + Bridge_method_names[39], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::StringValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1768,7 +1803,7 @@ Bridge::Service::Service() { return service->Hostname(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[39], + Bridge_method_names[40], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Int32Value, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1778,7 +1813,7 @@ Bridge::Service::Service() { return service->ImapPort(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[40], + Bridge_method_names[41], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Int32Value, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1788,7 +1823,7 @@ Bridge::Service::Service() { return service->SmtpPort(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[41], + Bridge_method_names[42], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::ChangePortsRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1798,7 +1833,7 @@ Bridge::Service::Service() { return service->ChangePorts(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[42], + Bridge_method_names[43], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Int32Value, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1808,7 +1843,7 @@ Bridge::Service::Service() { return service->IsPortFree(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[43], + Bridge_method_names[44], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::grpc::AvailableKeychainsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1818,7 +1853,7 @@ Bridge::Service::Service() { return service->AvailableKeychains(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[44], + Bridge_method_names[45], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1828,7 +1863,7 @@ Bridge::Service::Service() { return service->SetCurrentKeychain(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[45], + Bridge_method_names[46], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::StringValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1838,7 +1873,7 @@ Bridge::Service::Service() { return service->CurrentKeychain(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[46], + Bridge_method_names[47], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::grpc::UserListResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1848,7 +1883,7 @@ Bridge::Service::Service() { return service->GetUserList(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[47], + Bridge_method_names[48], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::grpc::User, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1858,7 +1893,7 @@ Bridge::Service::Service() { return service->GetUser(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[48], + Bridge_method_names[49], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::UserSplitModeRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1868,7 +1903,7 @@ Bridge::Service::Service() { return service->SetUserSplitMode(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[49], + Bridge_method_names[50], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1878,7 +1913,7 @@ Bridge::Service::Service() { return service->LogoutUser(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[50], + Bridge_method_names[51], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1888,7 +1923,7 @@ Bridge::Service::Service() { return service->RemoveUser(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[51], + Bridge_method_names[52], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::ConfigureAppleMailRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -1898,7 +1933,7 @@ Bridge::Service::Service() { return service->ConfigureUserAppleMail(ctx, req, resp); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[52], + Bridge_method_names[53], ::grpc::internal::RpcMethod::SERVER_STREAMING, new ::grpc::internal::ServerStreamingHandler< Bridge::Service, ::grpc::EventStreamRequest, ::grpc::StreamEvent>( [](Bridge::Service* service, @@ -1908,7 +1943,7 @@ Bridge::Service::Service() { return service->StartEventStream(ctx, req, writer); }, this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - Bridge_method_names[53], + Bridge_method_names[54], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( [](Bridge::Service* service, @@ -2083,6 +2118,13 @@ Bridge::Service::~Service() { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } +::grpc::Status Bridge::Service::ForceLauncher(::grpc::ServerContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + ::grpc::Status Bridge::Service::Login(::grpc::ServerContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response) { (void) context; (void) request; diff --git a/internal/frontend/bridgepp/bridgepp/GRPC/bridge.grpc.pb.h b/internal/frontend/bridgepp/bridgepp/GRPC/bridge.grpc.pb.h index d652b909..c5d0b575 100644 --- a/internal/frontend/bridgepp/bridgepp/GRPC/bridge.grpc.pb.h +++ b/internal/frontend/bridgepp/bridgepp/GRPC/bridge.grpc.pb.h @@ -219,6 +219,13 @@ class Bridge final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncReportBug(::grpc::ClientContext* context, const ::grpc::ReportBugRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncReportBugRaw(context, request, cq)); } + virtual ::grpc::Status ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::google::protobuf::Empty* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(AsyncForceLauncherRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> PrepareAsyncForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncForceLauncherRaw(context, request, cq)); + } // login virtual ::grpc::Status Login(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::google::protobuf::Empty* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>> AsyncLogin(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::grpc::CompletionQueue* cq) { @@ -497,6 +504,8 @@ class Bridge final { virtual void CurrentEmailClient(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::StringValue* response, ::grpc::ClientUnaryReactor* reactor) = 0; virtual void ReportBug(::grpc::ClientContext* context, const ::grpc::ReportBugRequest* request, ::google::protobuf::Empty* response, std::function) = 0; virtual void ReportBug(::grpc::ClientContext* context, const ::grpc::ReportBugRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0; + virtual void ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, std::function) = 0; + virtual void ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0; // login virtual void Login(::grpc::ClientContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response, std::function) = 0; virtual void Login(::grpc::ClientContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0; @@ -617,6 +626,8 @@ class Bridge final { virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::StringValue>* PrepareAsyncCurrentEmailClientRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncReportBugRaw(::grpc::ClientContext* context, const ::grpc::ReportBugRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncReportBugRaw(::grpc::ClientContext* context, const ::grpc::ReportBugRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncForceLauncherRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncForceLauncherRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncLoginRaw(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncLoginRaw(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncLogin2FARaw(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::grpc::CompletionQueue* cq) = 0; @@ -845,6 +856,13 @@ class Bridge final { std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncReportBug(::grpc::ClientContext* context, const ::grpc::ReportBugRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncReportBugRaw(context, request, cq)); } + ::grpc::Status ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::google::protobuf::Empty* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncForceLauncherRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncForceLauncherRaw(context, request, cq)); + } ::grpc::Status Login(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::google::protobuf::Empty* response) override; std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> AsyncLogin(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(AsyncLoginRaw(context, request, cq)); @@ -1113,6 +1131,8 @@ class Bridge final { void CurrentEmailClient(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::StringValue* response, ::grpc::ClientUnaryReactor* reactor) override; void ReportBug(::grpc::ClientContext* context, const ::grpc::ReportBugRequest* request, ::google::protobuf::Empty* response, std::function) override; void ReportBug(::grpc::ClientContext* context, const ::grpc::ReportBugRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; + void ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, std::function) override; + void ForceLauncher(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; void Login(::grpc::ClientContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response, std::function) override; void Login(::grpc::ClientContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; void Login2FA(::grpc::ClientContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response, std::function) override; @@ -1231,6 +1251,8 @@ class Bridge final { ::grpc::ClientAsyncResponseReader< ::google::protobuf::StringValue>* PrepareAsyncCurrentEmailClientRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncReportBugRaw(::grpc::ClientContext* context, const ::grpc::ReportBugRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncReportBugRaw(::grpc::ClientContext* context, const ::grpc::ReportBugRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncForceLauncherRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncForceLauncherRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncLoginRaw(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncLoginRaw(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncLogin2FARaw(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::grpc::CompletionQueue* cq) override; @@ -1317,6 +1339,7 @@ class Bridge final { const ::grpc::internal::RpcMethod rpcmethod_ColorSchemeName_; const ::grpc::internal::RpcMethod rpcmethod_CurrentEmailClient_; const ::grpc::internal::RpcMethod rpcmethod_ReportBug_; + const ::grpc::internal::RpcMethod rpcmethod_ForceLauncher_; const ::grpc::internal::RpcMethod rpcmethod_Login_; const ::grpc::internal::RpcMethod rpcmethod_Login2FA_; const ::grpc::internal::RpcMethod rpcmethod_Login2Passwords_; @@ -1380,6 +1403,7 @@ class Bridge final { // TODO Color scheme should probably entirely be managed by the client. virtual ::grpc::Status CurrentEmailClient(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::StringValue* response); virtual ::grpc::Status ReportBug(::grpc::ServerContext* context, const ::grpc::ReportBugRequest* request, ::google::protobuf::Empty* response); + virtual ::grpc::Status ForceLauncher(::grpc::ServerContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response); // login virtual ::grpc::Status Login(::grpc::ServerContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response); virtual ::grpc::Status Login2FA(::grpc::ServerContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response); @@ -1881,12 +1905,32 @@ class Bridge final { } }; template + class WithAsyncMethod_ForceLauncher : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_ForceLauncher() { + ::grpc::Service::MarkMethodAsync(23); + } + ~WithAsyncMethod_ForceLauncher() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ForceLauncher(::grpc::ServerContext* /*context*/, const ::google::protobuf::StringValue* /*request*/, ::google::protobuf::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestForceLauncher(::grpc::ServerContext* context, ::google::protobuf::StringValue* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class WithAsyncMethod_Login : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_Login() { - ::grpc::Service::MarkMethodAsync(23); + ::grpc::Service::MarkMethodAsync(24); } ~WithAsyncMethod_Login() override { BaseClassMustBeDerivedFromService(this); @@ -1897,7 +1941,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLogin(::grpc::ServerContext* context, ::grpc::LoginRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1906,7 +1950,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_Login2FA() { - ::grpc::Service::MarkMethodAsync(24); + ::grpc::Service::MarkMethodAsync(25); } ~WithAsyncMethod_Login2FA() override { BaseClassMustBeDerivedFromService(this); @@ -1917,7 +1961,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLogin2FA(::grpc::ServerContext* context, ::grpc::LoginRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1926,7 +1970,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_Login2Passwords() { - ::grpc::Service::MarkMethodAsync(25); + ::grpc::Service::MarkMethodAsync(26); } ~WithAsyncMethod_Login2Passwords() override { BaseClassMustBeDerivedFromService(this); @@ -1937,7 +1981,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLogin2Passwords(::grpc::ServerContext* context, ::grpc::LoginRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(26, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1946,7 +1990,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_LoginAbort() { - ::grpc::Service::MarkMethodAsync(26); + ::grpc::Service::MarkMethodAsync(27); } ~WithAsyncMethod_LoginAbort() override { BaseClassMustBeDerivedFromService(this); @@ -1957,7 +2001,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLoginAbort(::grpc::ServerContext* context, ::grpc::LoginAbortRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(26, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1966,7 +2010,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_CheckUpdate() { - ::grpc::Service::MarkMethodAsync(27); + ::grpc::Service::MarkMethodAsync(28); } ~WithAsyncMethod_CheckUpdate() override { BaseClassMustBeDerivedFromService(this); @@ -1977,7 +2021,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCheckUpdate(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1986,7 +2030,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_InstallUpdate() { - ::grpc::Service::MarkMethodAsync(28); + ::grpc::Service::MarkMethodAsync(29); } ~WithAsyncMethod_InstallUpdate() override { BaseClassMustBeDerivedFromService(this); @@ -1997,7 +2041,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestInstallUpdate(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(29, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2006,7 +2050,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_SetIsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodAsync(29); + ::grpc::Service::MarkMethodAsync(30); } ~WithAsyncMethod_SetIsAutomaticUpdateOn() override { BaseClassMustBeDerivedFromService(this); @@ -2017,7 +2061,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetIsAutomaticUpdateOn(::grpc::ServerContext* context, ::google::protobuf::BoolValue* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(29, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2026,7 +2070,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_IsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodAsync(30); + ::grpc::Service::MarkMethodAsync(31); } ~WithAsyncMethod_IsAutomaticUpdateOn() override { BaseClassMustBeDerivedFromService(this); @@ -2037,7 +2081,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestIsAutomaticUpdateOn(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::BoolValue>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2046,7 +2090,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_IsCacheOnDiskEnabled() { - ::grpc::Service::MarkMethodAsync(31); + ::grpc::Service::MarkMethodAsync(32); } ~WithAsyncMethod_IsCacheOnDiskEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -2057,7 +2101,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestIsCacheOnDiskEnabled(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::BoolValue>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2066,7 +2110,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_DiskCachePath() { - ::grpc::Service::MarkMethodAsync(32); + ::grpc::Service::MarkMethodAsync(33); } ~WithAsyncMethod_DiskCachePath() override { BaseClassMustBeDerivedFromService(this); @@ -2077,7 +2121,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDiskCachePath(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::StringValue>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(33, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2086,7 +2130,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_ChangeLocalCache() { - ::grpc::Service::MarkMethodAsync(33); + ::grpc::Service::MarkMethodAsync(34); } ~WithAsyncMethod_ChangeLocalCache() override { BaseClassMustBeDerivedFromService(this); @@ -2097,7 +2141,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestChangeLocalCache(::grpc::ServerContext* context, ::grpc::ChangeLocalCacheRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(33, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2106,7 +2150,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_SetIsDoHEnabled() { - ::grpc::Service::MarkMethodAsync(34); + ::grpc::Service::MarkMethodAsync(35); } ~WithAsyncMethod_SetIsDoHEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -2117,7 +2161,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetIsDoHEnabled(::grpc::ServerContext* context, ::google::protobuf::BoolValue* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2126,7 +2170,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_IsDoHEnabled() { - ::grpc::Service::MarkMethodAsync(35); + ::grpc::Service::MarkMethodAsync(36); } ~WithAsyncMethod_IsDoHEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -2137,7 +2181,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestIsDoHEnabled(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::BoolValue>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(36, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2146,7 +2190,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_SetUseSslForSmtp() { - ::grpc::Service::MarkMethodAsync(36); + ::grpc::Service::MarkMethodAsync(37); } ~WithAsyncMethod_SetUseSslForSmtp() override { BaseClassMustBeDerivedFromService(this); @@ -2157,7 +2201,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetUseSslForSmtp(::grpc::ServerContext* context, ::google::protobuf::BoolValue* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(36, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2166,7 +2210,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_UseSslForSmtp() { - ::grpc::Service::MarkMethodAsync(37); + ::grpc::Service::MarkMethodAsync(38); } ~WithAsyncMethod_UseSslForSmtp() override { BaseClassMustBeDerivedFromService(this); @@ -2177,7 +2221,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUseSslForSmtp(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::BoolValue>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2186,7 +2230,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_Hostname() { - ::grpc::Service::MarkMethodAsync(38); + ::grpc::Service::MarkMethodAsync(39); } ~WithAsyncMethod_Hostname() override { BaseClassMustBeDerivedFromService(this); @@ -2197,7 +2241,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestHostname(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::StringValue>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2206,7 +2250,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_ImapPort() { - ::grpc::Service::MarkMethodAsync(39); + ::grpc::Service::MarkMethodAsync(40); } ~WithAsyncMethod_ImapPort() override { BaseClassMustBeDerivedFromService(this); @@ -2217,7 +2261,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestImapPort(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Int32Value>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2226,7 +2270,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_SmtpPort() { - ::grpc::Service::MarkMethodAsync(40); + ::grpc::Service::MarkMethodAsync(41); } ~WithAsyncMethod_SmtpPort() override { BaseClassMustBeDerivedFromService(this); @@ -2237,7 +2281,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSmtpPort(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Int32Value>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2246,7 +2290,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_ChangePorts() { - ::grpc::Service::MarkMethodAsync(41); + ::grpc::Service::MarkMethodAsync(42); } ~WithAsyncMethod_ChangePorts() override { BaseClassMustBeDerivedFromService(this); @@ -2257,7 +2301,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestChangePorts(::grpc::ServerContext* context, ::grpc::ChangePortsRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2266,7 +2310,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_IsPortFree() { - ::grpc::Service::MarkMethodAsync(42); + ::grpc::Service::MarkMethodAsync(43); } ~WithAsyncMethod_IsPortFree() override { BaseClassMustBeDerivedFromService(this); @@ -2277,7 +2321,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestIsPortFree(::grpc::ServerContext* context, ::google::protobuf::Int32Value* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::BoolValue>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2286,7 +2330,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_AvailableKeychains() { - ::grpc::Service::MarkMethodAsync(43); + ::grpc::Service::MarkMethodAsync(44); } ~WithAsyncMethod_AvailableKeychains() override { BaseClassMustBeDerivedFromService(this); @@ -2297,7 +2341,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestAvailableKeychains(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::grpc::AvailableKeychainsResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2306,7 +2350,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_SetCurrentKeychain() { - ::grpc::Service::MarkMethodAsync(44); + ::grpc::Service::MarkMethodAsync(45); } ~WithAsyncMethod_SetCurrentKeychain() override { BaseClassMustBeDerivedFromService(this); @@ -2317,7 +2361,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetCurrentKeychain(::grpc::ServerContext* context, ::google::protobuf::StringValue* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2326,7 +2370,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_CurrentKeychain() { - ::grpc::Service::MarkMethodAsync(45); + ::grpc::Service::MarkMethodAsync(46); } ~WithAsyncMethod_CurrentKeychain() override { BaseClassMustBeDerivedFromService(this); @@ -2337,7 +2381,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCurrentKeychain(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::StringValue>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2346,7 +2390,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_GetUserList() { - ::grpc::Service::MarkMethodAsync(46); + ::grpc::Service::MarkMethodAsync(47); } ~WithAsyncMethod_GetUserList() override { BaseClassMustBeDerivedFromService(this); @@ -2357,7 +2401,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetUserList(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::grpc::UserListResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(47, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2366,7 +2410,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_GetUser() { - ::grpc::Service::MarkMethodAsync(47); + ::grpc::Service::MarkMethodAsync(48); } ~WithAsyncMethod_GetUser() override { BaseClassMustBeDerivedFromService(this); @@ -2377,7 +2421,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetUser(::grpc::ServerContext* context, ::google::protobuf::StringValue* request, ::grpc::ServerAsyncResponseWriter< ::grpc::User>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(47, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(48, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2386,7 +2430,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_SetUserSplitMode() { - ::grpc::Service::MarkMethodAsync(48); + ::grpc::Service::MarkMethodAsync(49); } ~WithAsyncMethod_SetUserSplitMode() override { BaseClassMustBeDerivedFromService(this); @@ -2397,7 +2441,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetUserSplitMode(::grpc::ServerContext* context, ::grpc::UserSplitModeRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(48, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(49, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2406,7 +2450,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_LogoutUser() { - ::grpc::Service::MarkMethodAsync(49); + ::grpc::Service::MarkMethodAsync(50); } ~WithAsyncMethod_LogoutUser() override { BaseClassMustBeDerivedFromService(this); @@ -2417,7 +2461,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLogoutUser(::grpc::ServerContext* context, ::google::protobuf::StringValue* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(49, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(50, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2426,7 +2470,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_RemoveUser() { - ::grpc::Service::MarkMethodAsync(50); + ::grpc::Service::MarkMethodAsync(51); } ~WithAsyncMethod_RemoveUser() override { BaseClassMustBeDerivedFromService(this); @@ -2437,7 +2481,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestRemoveUser(::grpc::ServerContext* context, ::google::protobuf::StringValue* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(50, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(51, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2446,7 +2490,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_ConfigureUserAppleMail() { - ::grpc::Service::MarkMethodAsync(51); + ::grpc::Service::MarkMethodAsync(52); } ~WithAsyncMethod_ConfigureUserAppleMail() override { BaseClassMustBeDerivedFromService(this); @@ -2457,7 +2501,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestConfigureUserAppleMail(::grpc::ServerContext* context, ::grpc::ConfigureAppleMailRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(51, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(52, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2466,7 +2510,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_StartEventStream() { - ::grpc::Service::MarkMethodAsync(52); + ::grpc::Service::MarkMethodAsync(53); } ~WithAsyncMethod_StartEventStream() override { BaseClassMustBeDerivedFromService(this); @@ -2477,7 +2521,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestStartEventStream(::grpc::ServerContext* context, ::grpc::EventStreamRequest* request, ::grpc::ServerAsyncWriter< ::grpc::StreamEvent>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncServerStreaming(52, context, request, writer, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncServerStreaming(53, context, request, writer, new_call_cq, notification_cq, tag); } }; template @@ -2486,7 +2530,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithAsyncMethod_StopEventStream() { - ::grpc::Service::MarkMethodAsync(53); + ::grpc::Service::MarkMethodAsync(54); } ~WithAsyncMethod_StopEventStream() override { BaseClassMustBeDerivedFromService(this); @@ -2497,10 +2541,10 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestStopEventStream(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncResponseWriter< ::google::protobuf::Empty>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(53, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(54, context, request, response, new_call_cq, notification_cq, tag); } }; - typedef WithAsyncMethod_AddLogEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > AsyncService; + typedef WithAsyncMethod_AddLogEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > AsyncService; template class WithCallbackMethod_AddLogEntry : public BaseClass { private: @@ -3123,18 +3167,45 @@ class Bridge final { ::grpc::CallbackServerContext* /*context*/, const ::grpc::ReportBugRequest* /*request*/, ::google::protobuf::Empty* /*response*/) { return nullptr; } }; template + class WithCallbackMethod_ForceLauncher : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_ForceLauncher() { + ::grpc::Service::MarkMethodCallback(23, + new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>( + [this]( + ::grpc::CallbackServerContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response) { return this->ForceLauncher(context, request, response); }));} + void SetMessageAllocatorFor_ForceLauncher( + ::grpc::MessageAllocator< ::google::protobuf::StringValue, ::google::protobuf::Empty>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(23); + static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_ForceLauncher() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ForceLauncher(::grpc::ServerContext* /*context*/, const ::google::protobuf::StringValue* /*request*/, ::google::protobuf::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ForceLauncher( + ::grpc::CallbackServerContext* /*context*/, const ::google::protobuf::StringValue* /*request*/, ::google::protobuf::Empty* /*response*/) { return nullptr; } + }; + template class WithCallbackMethod_Login : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_Login() { - ::grpc::Service::MarkMethodCallback(23, + ::grpc::Service::MarkMethodCallback(24, new ::grpc::internal::CallbackUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response) { return this->Login(context, request, response); }));} void SetMessageAllocatorFor_Login( ::grpc::MessageAllocator< ::grpc::LoginRequest, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(23); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(24); static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3155,13 +3226,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_Login2FA() { - ::grpc::Service::MarkMethodCallback(24, + ::grpc::Service::MarkMethodCallback(25, new ::grpc::internal::CallbackUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response) { return this->Login2FA(context, request, response); }));} void SetMessageAllocatorFor_Login2FA( ::grpc::MessageAllocator< ::grpc::LoginRequest, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(24); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(25); static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3182,13 +3253,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_Login2Passwords() { - ::grpc::Service::MarkMethodCallback(25, + ::grpc::Service::MarkMethodCallback(26, new ::grpc::internal::CallbackUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response) { return this->Login2Passwords(context, request, response); }));} void SetMessageAllocatorFor_Login2Passwords( ::grpc::MessageAllocator< ::grpc::LoginRequest, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(25); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(26); static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3209,13 +3280,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_LoginAbort() { - ::grpc::Service::MarkMethodCallback(26, + ::grpc::Service::MarkMethodCallback(27, new ::grpc::internal::CallbackUnaryHandler< ::grpc::LoginAbortRequest, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::LoginAbortRequest* request, ::google::protobuf::Empty* response) { return this->LoginAbort(context, request, response); }));} void SetMessageAllocatorFor_LoginAbort( ::grpc::MessageAllocator< ::grpc::LoginAbortRequest, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(26); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(27); static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::LoginAbortRequest, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3236,13 +3307,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_CheckUpdate() { - ::grpc::Service::MarkMethodCallback(27, + ::grpc::Service::MarkMethodCallback(28, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response) { return this->CheckUpdate(context, request, response); }));} void SetMessageAllocatorFor_CheckUpdate( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(27); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(28); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3263,13 +3334,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_InstallUpdate() { - ::grpc::Service::MarkMethodCallback(28, + ::grpc::Service::MarkMethodCallback(29, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response) { return this->InstallUpdate(context, request, response); }));} void SetMessageAllocatorFor_InstallUpdate( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(28); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(29); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3290,13 +3361,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_SetIsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodCallback(29, + ::grpc::Service::MarkMethodCallback(30, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::BoolValue* request, ::google::protobuf::Empty* response) { return this->SetIsAutomaticUpdateOn(context, request, response); }));} void SetMessageAllocatorFor_SetIsAutomaticUpdateOn( ::grpc::MessageAllocator< ::google::protobuf::BoolValue, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(29); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(30); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3317,13 +3388,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_IsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodCallback(30, + ::grpc::Service::MarkMethodCallback(31, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::BoolValue* response) { return this->IsAutomaticUpdateOn(context, request, response); }));} void SetMessageAllocatorFor_IsAutomaticUpdateOn( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::BoolValue>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(30); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(31); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>*>(handler) ->SetMessageAllocator(allocator); } @@ -3344,13 +3415,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_IsCacheOnDiskEnabled() { - ::grpc::Service::MarkMethodCallback(31, + ::grpc::Service::MarkMethodCallback(32, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::BoolValue* response) { return this->IsCacheOnDiskEnabled(context, request, response); }));} void SetMessageAllocatorFor_IsCacheOnDiskEnabled( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::BoolValue>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(31); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(32); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>*>(handler) ->SetMessageAllocator(allocator); } @@ -3371,13 +3442,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_DiskCachePath() { - ::grpc::Service::MarkMethodCallback(32, + ::grpc::Service::MarkMethodCallback(33, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::StringValue* response) { return this->DiskCachePath(context, request, response); }));} void SetMessageAllocatorFor_DiskCachePath( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::StringValue>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(32); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(33); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>*>(handler) ->SetMessageAllocator(allocator); } @@ -3398,13 +3469,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_ChangeLocalCache() { - ::grpc::Service::MarkMethodCallback(33, + ::grpc::Service::MarkMethodCallback(34, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ChangeLocalCacheRequest, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ChangeLocalCacheRequest* request, ::google::protobuf::Empty* response) { return this->ChangeLocalCache(context, request, response); }));} void SetMessageAllocatorFor_ChangeLocalCache( ::grpc::MessageAllocator< ::grpc::ChangeLocalCacheRequest, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(33); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(34); static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::ChangeLocalCacheRequest, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3425,13 +3496,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_SetIsDoHEnabled() { - ::grpc::Service::MarkMethodCallback(34, + ::grpc::Service::MarkMethodCallback(35, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::BoolValue* request, ::google::protobuf::Empty* response) { return this->SetIsDoHEnabled(context, request, response); }));} void SetMessageAllocatorFor_SetIsDoHEnabled( ::grpc::MessageAllocator< ::google::protobuf::BoolValue, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(34); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(35); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3452,13 +3523,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_IsDoHEnabled() { - ::grpc::Service::MarkMethodCallback(35, + ::grpc::Service::MarkMethodCallback(36, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::BoolValue* response) { return this->IsDoHEnabled(context, request, response); }));} void SetMessageAllocatorFor_IsDoHEnabled( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::BoolValue>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(35); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(36); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>*>(handler) ->SetMessageAllocator(allocator); } @@ -3479,13 +3550,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_SetUseSslForSmtp() { - ::grpc::Service::MarkMethodCallback(36, + ::grpc::Service::MarkMethodCallback(37, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::BoolValue* request, ::google::protobuf::Empty* response) { return this->SetUseSslForSmtp(context, request, response); }));} void SetMessageAllocatorFor_SetUseSslForSmtp( ::grpc::MessageAllocator< ::google::protobuf::BoolValue, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(36); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(37); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3506,13 +3577,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_UseSslForSmtp() { - ::grpc::Service::MarkMethodCallback(37, + ::grpc::Service::MarkMethodCallback(38, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::BoolValue* response) { return this->UseSslForSmtp(context, request, response); }));} void SetMessageAllocatorFor_UseSslForSmtp( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::BoolValue>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(37); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(38); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>*>(handler) ->SetMessageAllocator(allocator); } @@ -3533,13 +3604,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_Hostname() { - ::grpc::Service::MarkMethodCallback(38, + ::grpc::Service::MarkMethodCallback(39, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::StringValue* response) { return this->Hostname(context, request, response); }));} void SetMessageAllocatorFor_Hostname( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::StringValue>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(38); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(39); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>*>(handler) ->SetMessageAllocator(allocator); } @@ -3560,13 +3631,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_ImapPort() { - ::grpc::Service::MarkMethodCallback(39, + ::grpc::Service::MarkMethodCallback(40, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Int32Value>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Int32Value* response) { return this->ImapPort(context, request, response); }));} void SetMessageAllocatorFor_ImapPort( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::Int32Value>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(39); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(40); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Int32Value>*>(handler) ->SetMessageAllocator(allocator); } @@ -3587,13 +3658,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_SmtpPort() { - ::grpc::Service::MarkMethodCallback(40, + ::grpc::Service::MarkMethodCallback(41, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Int32Value>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Int32Value* response) { return this->SmtpPort(context, request, response); }));} void SetMessageAllocatorFor_SmtpPort( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::Int32Value>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(40); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(41); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Int32Value>*>(handler) ->SetMessageAllocator(allocator); } @@ -3614,13 +3685,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_ChangePorts() { - ::grpc::Service::MarkMethodCallback(41, + ::grpc::Service::MarkMethodCallback(42, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ChangePortsRequest, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ChangePortsRequest* request, ::google::protobuf::Empty* response) { return this->ChangePorts(context, request, response); }));} void SetMessageAllocatorFor_ChangePorts( ::grpc::MessageAllocator< ::grpc::ChangePortsRequest, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(41); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(42); static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::ChangePortsRequest, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3641,13 +3712,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_IsPortFree() { - ::grpc::Service::MarkMethodCallback(42, + ::grpc::Service::MarkMethodCallback(43, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Int32Value, ::google::protobuf::BoolValue>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Int32Value* request, ::google::protobuf::BoolValue* response) { return this->IsPortFree(context, request, response); }));} void SetMessageAllocatorFor_IsPortFree( ::grpc::MessageAllocator< ::google::protobuf::Int32Value, ::google::protobuf::BoolValue>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(42); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(43); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Int32Value, ::google::protobuf::BoolValue>*>(handler) ->SetMessageAllocator(allocator); } @@ -3668,13 +3739,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_AvailableKeychains() { - ::grpc::Service::MarkMethodCallback(43, + ::grpc::Service::MarkMethodCallback(44, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::grpc::AvailableKeychainsResponse>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::grpc::AvailableKeychainsResponse* response) { return this->AvailableKeychains(context, request, response); }));} void SetMessageAllocatorFor_AvailableKeychains( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::grpc::AvailableKeychainsResponse>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(43); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(44); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::grpc::AvailableKeychainsResponse>*>(handler) ->SetMessageAllocator(allocator); } @@ -3695,13 +3766,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_SetCurrentKeychain() { - ::grpc::Service::MarkMethodCallback(44, + ::grpc::Service::MarkMethodCallback(45, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response) { return this->SetCurrentKeychain(context, request, response); }));} void SetMessageAllocatorFor_SetCurrentKeychain( ::grpc::MessageAllocator< ::google::protobuf::StringValue, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(44); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(45); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3722,13 +3793,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_CurrentKeychain() { - ::grpc::Service::MarkMethodCallback(45, + ::grpc::Service::MarkMethodCallback(46, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::StringValue* response) { return this->CurrentKeychain(context, request, response); }));} void SetMessageAllocatorFor_CurrentKeychain( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::StringValue>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(45); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(46); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>*>(handler) ->SetMessageAllocator(allocator); } @@ -3749,13 +3820,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_GetUserList() { - ::grpc::Service::MarkMethodCallback(46, + ::grpc::Service::MarkMethodCallback(47, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::grpc::UserListResponse>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::grpc::UserListResponse* response) { return this->GetUserList(context, request, response); }));} void SetMessageAllocatorFor_GetUserList( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::grpc::UserListResponse>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(46); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(47); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::grpc::UserListResponse>*>(handler) ->SetMessageAllocator(allocator); } @@ -3776,13 +3847,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_GetUser() { - ::grpc::Service::MarkMethodCallback(47, + ::grpc::Service::MarkMethodCallback(48, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::grpc::User>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::StringValue* request, ::grpc::User* response) { return this->GetUser(context, request, response); }));} void SetMessageAllocatorFor_GetUser( ::grpc::MessageAllocator< ::google::protobuf::StringValue, ::grpc::User>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(47); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(48); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::grpc::User>*>(handler) ->SetMessageAllocator(allocator); } @@ -3803,13 +3874,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_SetUserSplitMode() { - ::grpc::Service::MarkMethodCallback(48, + ::grpc::Service::MarkMethodCallback(49, new ::grpc::internal::CallbackUnaryHandler< ::grpc::UserSplitModeRequest, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::UserSplitModeRequest* request, ::google::protobuf::Empty* response) { return this->SetUserSplitMode(context, request, response); }));} void SetMessageAllocatorFor_SetUserSplitMode( ::grpc::MessageAllocator< ::grpc::UserSplitModeRequest, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(48); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(49); static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::UserSplitModeRequest, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3830,13 +3901,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_LogoutUser() { - ::grpc::Service::MarkMethodCallback(49, + ::grpc::Service::MarkMethodCallback(50, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response) { return this->LogoutUser(context, request, response); }));} void SetMessageAllocatorFor_LogoutUser( ::grpc::MessageAllocator< ::google::protobuf::StringValue, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(49); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(50); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3857,13 +3928,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_RemoveUser() { - ::grpc::Service::MarkMethodCallback(50, + ::grpc::Service::MarkMethodCallback(51, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response) { return this->RemoveUser(context, request, response); }));} void SetMessageAllocatorFor_RemoveUser( ::grpc::MessageAllocator< ::google::protobuf::StringValue, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(50); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(51); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3884,13 +3955,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_ConfigureUserAppleMail() { - ::grpc::Service::MarkMethodCallback(51, + ::grpc::Service::MarkMethodCallback(52, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ConfigureAppleMailRequest, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ConfigureAppleMailRequest* request, ::google::protobuf::Empty* response) { return this->ConfigureUserAppleMail(context, request, response); }));} void SetMessageAllocatorFor_ConfigureUserAppleMail( ::grpc::MessageAllocator< ::grpc::ConfigureAppleMailRequest, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(51); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(52); static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::ConfigureAppleMailRequest, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3911,7 +3982,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_StartEventStream() { - ::grpc::Service::MarkMethodCallback(52, + ::grpc::Service::MarkMethodCallback(53, new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::EventStreamRequest, ::grpc::StreamEvent>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::EventStreamRequest* request) { return this->StartEventStream(context, request); })); @@ -3933,13 +4004,13 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithCallbackMethod_StopEventStream() { - ::grpc::Service::MarkMethodCallback(53, + ::grpc::Service::MarkMethodCallback(54, new ::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>( [this]( ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response) { return this->StopEventStream(context, request, response); }));} void SetMessageAllocatorFor_StopEventStream( ::grpc::MessageAllocator< ::google::protobuf::Empty, ::google::protobuf::Empty>* allocator) { - ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(53); + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(54); static_cast<::grpc::internal::CallbackUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>*>(handler) ->SetMessageAllocator(allocator); } @@ -3954,7 +4025,7 @@ class Bridge final { virtual ::grpc::ServerUnaryReactor* StopEventStream( ::grpc::CallbackServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::google::protobuf::Empty* /*response*/) { return nullptr; } }; - typedef WithCallbackMethod_AddLogEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > CallbackService; + typedef WithCallbackMethod_AddLogEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > CallbackService; typedef CallbackService ExperimentalCallbackService; template class WithGenericMethod_AddLogEntry : public BaseClass { @@ -4348,12 +4419,29 @@ class Bridge final { } }; template + class WithGenericMethod_ForceLauncher : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_ForceLauncher() { + ::grpc::Service::MarkMethodGeneric(23); + } + ~WithGenericMethod_ForceLauncher() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ForceLauncher(::grpc::ServerContext* /*context*/, const ::google::protobuf::StringValue* /*request*/, ::google::protobuf::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template class WithGenericMethod_Login : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_Login() { - ::grpc::Service::MarkMethodGeneric(23); + ::grpc::Service::MarkMethodGeneric(24); } ~WithGenericMethod_Login() override { BaseClassMustBeDerivedFromService(this); @@ -4370,7 +4458,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_Login2FA() { - ::grpc::Service::MarkMethodGeneric(24); + ::grpc::Service::MarkMethodGeneric(25); } ~WithGenericMethod_Login2FA() override { BaseClassMustBeDerivedFromService(this); @@ -4387,7 +4475,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_Login2Passwords() { - ::grpc::Service::MarkMethodGeneric(25); + ::grpc::Service::MarkMethodGeneric(26); } ~WithGenericMethod_Login2Passwords() override { BaseClassMustBeDerivedFromService(this); @@ -4404,7 +4492,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_LoginAbort() { - ::grpc::Service::MarkMethodGeneric(26); + ::grpc::Service::MarkMethodGeneric(27); } ~WithGenericMethod_LoginAbort() override { BaseClassMustBeDerivedFromService(this); @@ -4421,7 +4509,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_CheckUpdate() { - ::grpc::Service::MarkMethodGeneric(27); + ::grpc::Service::MarkMethodGeneric(28); } ~WithGenericMethod_CheckUpdate() override { BaseClassMustBeDerivedFromService(this); @@ -4438,7 +4526,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_InstallUpdate() { - ::grpc::Service::MarkMethodGeneric(28); + ::grpc::Service::MarkMethodGeneric(29); } ~WithGenericMethod_InstallUpdate() override { BaseClassMustBeDerivedFromService(this); @@ -4455,7 +4543,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_SetIsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodGeneric(29); + ::grpc::Service::MarkMethodGeneric(30); } ~WithGenericMethod_SetIsAutomaticUpdateOn() override { BaseClassMustBeDerivedFromService(this); @@ -4472,7 +4560,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_IsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodGeneric(30); + ::grpc::Service::MarkMethodGeneric(31); } ~WithGenericMethod_IsAutomaticUpdateOn() override { BaseClassMustBeDerivedFromService(this); @@ -4489,7 +4577,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_IsCacheOnDiskEnabled() { - ::grpc::Service::MarkMethodGeneric(31); + ::grpc::Service::MarkMethodGeneric(32); } ~WithGenericMethod_IsCacheOnDiskEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -4506,7 +4594,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_DiskCachePath() { - ::grpc::Service::MarkMethodGeneric(32); + ::grpc::Service::MarkMethodGeneric(33); } ~WithGenericMethod_DiskCachePath() override { BaseClassMustBeDerivedFromService(this); @@ -4523,7 +4611,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_ChangeLocalCache() { - ::grpc::Service::MarkMethodGeneric(33); + ::grpc::Service::MarkMethodGeneric(34); } ~WithGenericMethod_ChangeLocalCache() override { BaseClassMustBeDerivedFromService(this); @@ -4540,7 +4628,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_SetIsDoHEnabled() { - ::grpc::Service::MarkMethodGeneric(34); + ::grpc::Service::MarkMethodGeneric(35); } ~WithGenericMethod_SetIsDoHEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -4557,7 +4645,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_IsDoHEnabled() { - ::grpc::Service::MarkMethodGeneric(35); + ::grpc::Service::MarkMethodGeneric(36); } ~WithGenericMethod_IsDoHEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -4574,7 +4662,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_SetUseSslForSmtp() { - ::grpc::Service::MarkMethodGeneric(36); + ::grpc::Service::MarkMethodGeneric(37); } ~WithGenericMethod_SetUseSslForSmtp() override { BaseClassMustBeDerivedFromService(this); @@ -4591,7 +4679,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_UseSslForSmtp() { - ::grpc::Service::MarkMethodGeneric(37); + ::grpc::Service::MarkMethodGeneric(38); } ~WithGenericMethod_UseSslForSmtp() override { BaseClassMustBeDerivedFromService(this); @@ -4608,7 +4696,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_Hostname() { - ::grpc::Service::MarkMethodGeneric(38); + ::grpc::Service::MarkMethodGeneric(39); } ~WithGenericMethod_Hostname() override { BaseClassMustBeDerivedFromService(this); @@ -4625,7 +4713,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_ImapPort() { - ::grpc::Service::MarkMethodGeneric(39); + ::grpc::Service::MarkMethodGeneric(40); } ~WithGenericMethod_ImapPort() override { BaseClassMustBeDerivedFromService(this); @@ -4642,7 +4730,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_SmtpPort() { - ::grpc::Service::MarkMethodGeneric(40); + ::grpc::Service::MarkMethodGeneric(41); } ~WithGenericMethod_SmtpPort() override { BaseClassMustBeDerivedFromService(this); @@ -4659,7 +4747,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_ChangePorts() { - ::grpc::Service::MarkMethodGeneric(41); + ::grpc::Service::MarkMethodGeneric(42); } ~WithGenericMethod_ChangePorts() override { BaseClassMustBeDerivedFromService(this); @@ -4676,7 +4764,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_IsPortFree() { - ::grpc::Service::MarkMethodGeneric(42); + ::grpc::Service::MarkMethodGeneric(43); } ~WithGenericMethod_IsPortFree() override { BaseClassMustBeDerivedFromService(this); @@ -4693,7 +4781,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_AvailableKeychains() { - ::grpc::Service::MarkMethodGeneric(43); + ::grpc::Service::MarkMethodGeneric(44); } ~WithGenericMethod_AvailableKeychains() override { BaseClassMustBeDerivedFromService(this); @@ -4710,7 +4798,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_SetCurrentKeychain() { - ::grpc::Service::MarkMethodGeneric(44); + ::grpc::Service::MarkMethodGeneric(45); } ~WithGenericMethod_SetCurrentKeychain() override { BaseClassMustBeDerivedFromService(this); @@ -4727,7 +4815,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_CurrentKeychain() { - ::grpc::Service::MarkMethodGeneric(45); + ::grpc::Service::MarkMethodGeneric(46); } ~WithGenericMethod_CurrentKeychain() override { BaseClassMustBeDerivedFromService(this); @@ -4744,7 +4832,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_GetUserList() { - ::grpc::Service::MarkMethodGeneric(46); + ::grpc::Service::MarkMethodGeneric(47); } ~WithGenericMethod_GetUserList() override { BaseClassMustBeDerivedFromService(this); @@ -4761,7 +4849,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_GetUser() { - ::grpc::Service::MarkMethodGeneric(47); + ::grpc::Service::MarkMethodGeneric(48); } ~WithGenericMethod_GetUser() override { BaseClassMustBeDerivedFromService(this); @@ -4778,7 +4866,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_SetUserSplitMode() { - ::grpc::Service::MarkMethodGeneric(48); + ::grpc::Service::MarkMethodGeneric(49); } ~WithGenericMethod_SetUserSplitMode() override { BaseClassMustBeDerivedFromService(this); @@ -4795,7 +4883,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_LogoutUser() { - ::grpc::Service::MarkMethodGeneric(49); + ::grpc::Service::MarkMethodGeneric(50); } ~WithGenericMethod_LogoutUser() override { BaseClassMustBeDerivedFromService(this); @@ -4812,7 +4900,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_RemoveUser() { - ::grpc::Service::MarkMethodGeneric(50); + ::grpc::Service::MarkMethodGeneric(51); } ~WithGenericMethod_RemoveUser() override { BaseClassMustBeDerivedFromService(this); @@ -4829,7 +4917,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_ConfigureUserAppleMail() { - ::grpc::Service::MarkMethodGeneric(51); + ::grpc::Service::MarkMethodGeneric(52); } ~WithGenericMethod_ConfigureUserAppleMail() override { BaseClassMustBeDerivedFromService(this); @@ -4846,7 +4934,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_StartEventStream() { - ::grpc::Service::MarkMethodGeneric(52); + ::grpc::Service::MarkMethodGeneric(53); } ~WithGenericMethod_StartEventStream() override { BaseClassMustBeDerivedFromService(this); @@ -4863,7 +4951,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithGenericMethod_StopEventStream() { - ::grpc::Service::MarkMethodGeneric(53); + ::grpc::Service::MarkMethodGeneric(54); } ~WithGenericMethod_StopEventStream() override { BaseClassMustBeDerivedFromService(this); @@ -5335,12 +5423,32 @@ class Bridge final { } }; template + class WithRawMethod_ForceLauncher : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_ForceLauncher() { + ::grpc::Service::MarkMethodRaw(23); + } + ~WithRawMethod_ForceLauncher() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ForceLauncher(::grpc::ServerContext* /*context*/, const ::google::protobuf::StringValue* /*request*/, ::google::protobuf::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestForceLauncher(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class WithRawMethod_Login : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_Login() { - ::grpc::Service::MarkMethodRaw(23); + ::grpc::Service::MarkMethodRaw(24); } ~WithRawMethod_Login() override { BaseClassMustBeDerivedFromService(this); @@ -5351,7 +5459,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLogin(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5360,7 +5468,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_Login2FA() { - ::grpc::Service::MarkMethodRaw(24); + ::grpc::Service::MarkMethodRaw(25); } ~WithRawMethod_Login2FA() override { BaseClassMustBeDerivedFromService(this); @@ -5371,7 +5479,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLogin2FA(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5380,7 +5488,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_Login2Passwords() { - ::grpc::Service::MarkMethodRaw(25); + ::grpc::Service::MarkMethodRaw(26); } ~WithRawMethod_Login2Passwords() override { BaseClassMustBeDerivedFromService(this); @@ -5391,7 +5499,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLogin2Passwords(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(26, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5400,7 +5508,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_LoginAbort() { - ::grpc::Service::MarkMethodRaw(26); + ::grpc::Service::MarkMethodRaw(27); } ~WithRawMethod_LoginAbort() override { BaseClassMustBeDerivedFromService(this); @@ -5411,7 +5519,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLoginAbort(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(26, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5420,7 +5528,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_CheckUpdate() { - ::grpc::Service::MarkMethodRaw(27); + ::grpc::Service::MarkMethodRaw(28); } ~WithRawMethod_CheckUpdate() override { BaseClassMustBeDerivedFromService(this); @@ -5431,7 +5539,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCheckUpdate(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5440,7 +5548,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_InstallUpdate() { - ::grpc::Service::MarkMethodRaw(28); + ::grpc::Service::MarkMethodRaw(29); } ~WithRawMethod_InstallUpdate() override { BaseClassMustBeDerivedFromService(this); @@ -5451,7 +5559,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestInstallUpdate(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(29, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5460,7 +5568,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_SetIsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodRaw(29); + ::grpc::Service::MarkMethodRaw(30); } ~WithRawMethod_SetIsAutomaticUpdateOn() override { BaseClassMustBeDerivedFromService(this); @@ -5471,7 +5579,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetIsAutomaticUpdateOn(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(29, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5480,7 +5588,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_IsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodRaw(30); + ::grpc::Service::MarkMethodRaw(31); } ~WithRawMethod_IsAutomaticUpdateOn() override { BaseClassMustBeDerivedFromService(this); @@ -5491,7 +5599,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestIsAutomaticUpdateOn(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5500,7 +5608,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_IsCacheOnDiskEnabled() { - ::grpc::Service::MarkMethodRaw(31); + ::grpc::Service::MarkMethodRaw(32); } ~WithRawMethod_IsCacheOnDiskEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -5511,7 +5619,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestIsCacheOnDiskEnabled(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5520,7 +5628,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_DiskCachePath() { - ::grpc::Service::MarkMethodRaw(32); + ::grpc::Service::MarkMethodRaw(33); } ~WithRawMethod_DiskCachePath() override { BaseClassMustBeDerivedFromService(this); @@ -5531,7 +5639,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDiskCachePath(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(33, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5540,7 +5648,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_ChangeLocalCache() { - ::grpc::Service::MarkMethodRaw(33); + ::grpc::Service::MarkMethodRaw(34); } ~WithRawMethod_ChangeLocalCache() override { BaseClassMustBeDerivedFromService(this); @@ -5551,7 +5659,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestChangeLocalCache(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(33, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5560,7 +5668,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_SetIsDoHEnabled() { - ::grpc::Service::MarkMethodRaw(34); + ::grpc::Service::MarkMethodRaw(35); } ~WithRawMethod_SetIsDoHEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -5571,7 +5679,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetIsDoHEnabled(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5580,7 +5688,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_IsDoHEnabled() { - ::grpc::Service::MarkMethodRaw(35); + ::grpc::Service::MarkMethodRaw(36); } ~WithRawMethod_IsDoHEnabled() override { BaseClassMustBeDerivedFromService(this); @@ -5591,7 +5699,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestIsDoHEnabled(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(36, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5600,7 +5708,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_SetUseSslForSmtp() { - ::grpc::Service::MarkMethodRaw(36); + ::grpc::Service::MarkMethodRaw(37); } ~WithRawMethod_SetUseSslForSmtp() override { BaseClassMustBeDerivedFromService(this); @@ -5611,7 +5719,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetUseSslForSmtp(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(36, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5620,7 +5728,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_UseSslForSmtp() { - ::grpc::Service::MarkMethodRaw(37); + ::grpc::Service::MarkMethodRaw(38); } ~WithRawMethod_UseSslForSmtp() override { BaseClassMustBeDerivedFromService(this); @@ -5631,7 +5739,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUseSslForSmtp(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5640,7 +5748,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_Hostname() { - ::grpc::Service::MarkMethodRaw(38); + ::grpc::Service::MarkMethodRaw(39); } ~WithRawMethod_Hostname() override { BaseClassMustBeDerivedFromService(this); @@ -5651,7 +5759,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestHostname(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5660,7 +5768,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_ImapPort() { - ::grpc::Service::MarkMethodRaw(39); + ::grpc::Service::MarkMethodRaw(40); } ~WithRawMethod_ImapPort() override { BaseClassMustBeDerivedFromService(this); @@ -5671,7 +5779,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestImapPort(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5680,7 +5788,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_SmtpPort() { - ::grpc::Service::MarkMethodRaw(40); + ::grpc::Service::MarkMethodRaw(41); } ~WithRawMethod_SmtpPort() override { BaseClassMustBeDerivedFromService(this); @@ -5691,7 +5799,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSmtpPort(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5700,7 +5808,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_ChangePorts() { - ::grpc::Service::MarkMethodRaw(41); + ::grpc::Service::MarkMethodRaw(42); } ~WithRawMethod_ChangePorts() override { BaseClassMustBeDerivedFromService(this); @@ -5711,7 +5819,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestChangePorts(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5720,7 +5828,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_IsPortFree() { - ::grpc::Service::MarkMethodRaw(42); + ::grpc::Service::MarkMethodRaw(43); } ~WithRawMethod_IsPortFree() override { BaseClassMustBeDerivedFromService(this); @@ -5731,7 +5839,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestIsPortFree(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5740,7 +5848,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_AvailableKeychains() { - ::grpc::Service::MarkMethodRaw(43); + ::grpc::Service::MarkMethodRaw(44); } ~WithRawMethod_AvailableKeychains() override { BaseClassMustBeDerivedFromService(this); @@ -5751,7 +5859,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestAvailableKeychains(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5760,7 +5868,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_SetCurrentKeychain() { - ::grpc::Service::MarkMethodRaw(44); + ::grpc::Service::MarkMethodRaw(45); } ~WithRawMethod_SetCurrentKeychain() override { BaseClassMustBeDerivedFromService(this); @@ -5771,7 +5879,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetCurrentKeychain(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5780,7 +5888,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_CurrentKeychain() { - ::grpc::Service::MarkMethodRaw(45); + ::grpc::Service::MarkMethodRaw(46); } ~WithRawMethod_CurrentKeychain() override { BaseClassMustBeDerivedFromService(this); @@ -5791,7 +5899,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCurrentKeychain(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5800,7 +5908,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_GetUserList() { - ::grpc::Service::MarkMethodRaw(46); + ::grpc::Service::MarkMethodRaw(47); } ~WithRawMethod_GetUserList() override { BaseClassMustBeDerivedFromService(this); @@ -5811,7 +5919,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetUserList(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(47, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5820,7 +5928,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_GetUser() { - ::grpc::Service::MarkMethodRaw(47); + ::grpc::Service::MarkMethodRaw(48); } ~WithRawMethod_GetUser() override { BaseClassMustBeDerivedFromService(this); @@ -5831,7 +5939,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetUser(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(47, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(48, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5840,7 +5948,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_SetUserSplitMode() { - ::grpc::Service::MarkMethodRaw(48); + ::grpc::Service::MarkMethodRaw(49); } ~WithRawMethod_SetUserSplitMode() override { BaseClassMustBeDerivedFromService(this); @@ -5851,7 +5959,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestSetUserSplitMode(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(48, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(49, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5860,7 +5968,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_LogoutUser() { - ::grpc::Service::MarkMethodRaw(49); + ::grpc::Service::MarkMethodRaw(50); } ~WithRawMethod_LogoutUser() override { BaseClassMustBeDerivedFromService(this); @@ -5871,7 +5979,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestLogoutUser(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(49, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(50, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5880,7 +5988,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_RemoveUser() { - ::grpc::Service::MarkMethodRaw(50); + ::grpc::Service::MarkMethodRaw(51); } ~WithRawMethod_RemoveUser() override { BaseClassMustBeDerivedFromService(this); @@ -5891,7 +5999,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestRemoveUser(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(50, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(51, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5900,7 +6008,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_ConfigureUserAppleMail() { - ::grpc::Service::MarkMethodRaw(51); + ::grpc::Service::MarkMethodRaw(52); } ~WithRawMethod_ConfigureUserAppleMail() override { BaseClassMustBeDerivedFromService(this); @@ -5911,7 +6019,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestConfigureUserAppleMail(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(51, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(52, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5920,7 +6028,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_StartEventStream() { - ::grpc::Service::MarkMethodRaw(52); + ::grpc::Service::MarkMethodRaw(53); } ~WithRawMethod_StartEventStream() override { BaseClassMustBeDerivedFromService(this); @@ -5931,7 +6039,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestStartEventStream(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncServerStreaming(52, context, request, writer, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncServerStreaming(53, context, request, writer, new_call_cq, notification_cq, tag); } }; template @@ -5940,7 +6048,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawMethod_StopEventStream() { - ::grpc::Service::MarkMethodRaw(53); + ::grpc::Service::MarkMethodRaw(54); } ~WithRawMethod_StopEventStream() override { BaseClassMustBeDerivedFromService(this); @@ -5951,7 +6059,7 @@ class Bridge final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestStopEventStream(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(53, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(54, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -6461,12 +6569,34 @@ class Bridge final { ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } }; template + class WithRawCallbackMethod_ForceLauncher : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_ForceLauncher() { + ::grpc::Service::MarkMethodRawCallback(23, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ForceLauncher(context, request, response); })); + } + ~WithRawCallbackMethod_ForceLauncher() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status ForceLauncher(::grpc::ServerContext* /*context*/, const ::google::protobuf::StringValue* /*request*/, ::google::protobuf::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* ForceLauncher( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template class WithRawCallbackMethod_Login : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_Login() { - ::grpc::Service::MarkMethodRawCallback(23, + ::grpc::Service::MarkMethodRawCallback(24, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Login(context, request, response); })); @@ -6488,7 +6618,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_Login2FA() { - ::grpc::Service::MarkMethodRawCallback(24, + ::grpc::Service::MarkMethodRawCallback(25, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Login2FA(context, request, response); })); @@ -6510,7 +6640,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_Login2Passwords() { - ::grpc::Service::MarkMethodRawCallback(25, + ::grpc::Service::MarkMethodRawCallback(26, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Login2Passwords(context, request, response); })); @@ -6532,7 +6662,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_LoginAbort() { - ::grpc::Service::MarkMethodRawCallback(26, + ::grpc::Service::MarkMethodRawCallback(27, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->LoginAbort(context, request, response); })); @@ -6554,7 +6684,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_CheckUpdate() { - ::grpc::Service::MarkMethodRawCallback(27, + ::grpc::Service::MarkMethodRawCallback(28, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->CheckUpdate(context, request, response); })); @@ -6576,7 +6706,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_InstallUpdate() { - ::grpc::Service::MarkMethodRawCallback(28, + ::grpc::Service::MarkMethodRawCallback(29, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->InstallUpdate(context, request, response); })); @@ -6598,7 +6728,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_SetIsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodRawCallback(29, + ::grpc::Service::MarkMethodRawCallback(30, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetIsAutomaticUpdateOn(context, request, response); })); @@ -6620,7 +6750,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_IsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodRawCallback(30, + ::grpc::Service::MarkMethodRawCallback(31, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->IsAutomaticUpdateOn(context, request, response); })); @@ -6642,7 +6772,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_IsCacheOnDiskEnabled() { - ::grpc::Service::MarkMethodRawCallback(31, + ::grpc::Service::MarkMethodRawCallback(32, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->IsCacheOnDiskEnabled(context, request, response); })); @@ -6664,7 +6794,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_DiskCachePath() { - ::grpc::Service::MarkMethodRawCallback(32, + ::grpc::Service::MarkMethodRawCallback(33, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DiskCachePath(context, request, response); })); @@ -6686,7 +6816,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_ChangeLocalCache() { - ::grpc::Service::MarkMethodRawCallback(33, + ::grpc::Service::MarkMethodRawCallback(34, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ChangeLocalCache(context, request, response); })); @@ -6708,7 +6838,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_SetIsDoHEnabled() { - ::grpc::Service::MarkMethodRawCallback(34, + ::grpc::Service::MarkMethodRawCallback(35, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetIsDoHEnabled(context, request, response); })); @@ -6730,7 +6860,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_IsDoHEnabled() { - ::grpc::Service::MarkMethodRawCallback(35, + ::grpc::Service::MarkMethodRawCallback(36, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->IsDoHEnabled(context, request, response); })); @@ -6752,7 +6882,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_SetUseSslForSmtp() { - ::grpc::Service::MarkMethodRawCallback(36, + ::grpc::Service::MarkMethodRawCallback(37, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetUseSslForSmtp(context, request, response); })); @@ -6774,7 +6904,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_UseSslForSmtp() { - ::grpc::Service::MarkMethodRawCallback(37, + ::grpc::Service::MarkMethodRawCallback(38, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->UseSslForSmtp(context, request, response); })); @@ -6796,7 +6926,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_Hostname() { - ::grpc::Service::MarkMethodRawCallback(38, + ::grpc::Service::MarkMethodRawCallback(39, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Hostname(context, request, response); })); @@ -6818,7 +6948,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_ImapPort() { - ::grpc::Service::MarkMethodRawCallback(39, + ::grpc::Service::MarkMethodRawCallback(40, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ImapPort(context, request, response); })); @@ -6840,7 +6970,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_SmtpPort() { - ::grpc::Service::MarkMethodRawCallback(40, + ::grpc::Service::MarkMethodRawCallback(41, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SmtpPort(context, request, response); })); @@ -6862,7 +6992,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_ChangePorts() { - ::grpc::Service::MarkMethodRawCallback(41, + ::grpc::Service::MarkMethodRawCallback(42, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ChangePorts(context, request, response); })); @@ -6884,7 +7014,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_IsPortFree() { - ::grpc::Service::MarkMethodRawCallback(42, + ::grpc::Service::MarkMethodRawCallback(43, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->IsPortFree(context, request, response); })); @@ -6906,7 +7036,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_AvailableKeychains() { - ::grpc::Service::MarkMethodRawCallback(43, + ::grpc::Service::MarkMethodRawCallback(44, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->AvailableKeychains(context, request, response); })); @@ -6928,7 +7058,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_SetCurrentKeychain() { - ::grpc::Service::MarkMethodRawCallback(44, + ::grpc::Service::MarkMethodRawCallback(45, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetCurrentKeychain(context, request, response); })); @@ -6950,7 +7080,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_CurrentKeychain() { - ::grpc::Service::MarkMethodRawCallback(45, + ::grpc::Service::MarkMethodRawCallback(46, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->CurrentKeychain(context, request, response); })); @@ -6972,7 +7102,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_GetUserList() { - ::grpc::Service::MarkMethodRawCallback(46, + ::grpc::Service::MarkMethodRawCallback(47, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetUserList(context, request, response); })); @@ -6994,7 +7124,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_GetUser() { - ::grpc::Service::MarkMethodRawCallback(47, + ::grpc::Service::MarkMethodRawCallback(48, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetUser(context, request, response); })); @@ -7016,7 +7146,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_SetUserSplitMode() { - ::grpc::Service::MarkMethodRawCallback(48, + ::grpc::Service::MarkMethodRawCallback(49, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->SetUserSplitMode(context, request, response); })); @@ -7038,7 +7168,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_LogoutUser() { - ::grpc::Service::MarkMethodRawCallback(49, + ::grpc::Service::MarkMethodRawCallback(50, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->LogoutUser(context, request, response); })); @@ -7060,7 +7190,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_RemoveUser() { - ::grpc::Service::MarkMethodRawCallback(50, + ::grpc::Service::MarkMethodRawCallback(51, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->RemoveUser(context, request, response); })); @@ -7082,7 +7212,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_ConfigureUserAppleMail() { - ::grpc::Service::MarkMethodRawCallback(51, + ::grpc::Service::MarkMethodRawCallback(52, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->ConfigureUserAppleMail(context, request, response); })); @@ -7104,7 +7234,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_StartEventStream() { - ::grpc::Service::MarkMethodRawCallback(52, + ::grpc::Service::MarkMethodRawCallback(53, new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->StartEventStream(context, request); })); @@ -7126,7 +7256,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithRawCallbackMethod_StopEventStream() { - ::grpc::Service::MarkMethodRawCallback(53, + ::grpc::Service::MarkMethodRawCallback(54, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this]( ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->StopEventStream(context, request, response); })); @@ -7764,12 +7894,39 @@ class Bridge final { virtual ::grpc::Status StreamedReportBug(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::grpc::ReportBugRequest,::google::protobuf::Empty>* server_unary_streamer) = 0; }; template + class WithStreamedUnaryMethod_ForceLauncher : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_ForceLauncher() { + ::grpc::Service::MarkMethodStreamed(23, + new ::grpc::internal::StreamedUnaryHandler< + ::google::protobuf::StringValue, ::google::protobuf::Empty>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::google::protobuf::StringValue, ::google::protobuf::Empty>* streamer) { + return this->StreamedForceLauncher(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_ForceLauncher() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status ForceLauncher(::grpc::ServerContext* /*context*/, const ::google::protobuf::StringValue* /*request*/, ::google::protobuf::Empty* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedForceLauncher(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::google::protobuf::StringValue,::google::protobuf::Empty>* server_unary_streamer) = 0; + }; + template class WithStreamedUnaryMethod_Login : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_Login() { - ::grpc::Service::MarkMethodStreamed(23, + ::grpc::Service::MarkMethodStreamed(24, new ::grpc::internal::StreamedUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -7796,7 +7953,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_Login2FA() { - ::grpc::Service::MarkMethodStreamed(24, + ::grpc::Service::MarkMethodStreamed(25, new ::grpc::internal::StreamedUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -7823,7 +7980,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_Login2Passwords() { - ::grpc::Service::MarkMethodStreamed(25, + ::grpc::Service::MarkMethodStreamed(26, new ::grpc::internal::StreamedUnaryHandler< ::grpc::LoginRequest, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -7850,7 +8007,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_LoginAbort() { - ::grpc::Service::MarkMethodStreamed(26, + ::grpc::Service::MarkMethodStreamed(27, new ::grpc::internal::StreamedUnaryHandler< ::grpc::LoginAbortRequest, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -7877,7 +8034,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_CheckUpdate() { - ::grpc::Service::MarkMethodStreamed(27, + ::grpc::Service::MarkMethodStreamed(28, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -7904,7 +8061,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_InstallUpdate() { - ::grpc::Service::MarkMethodStreamed(28, + ::grpc::Service::MarkMethodStreamed(29, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -7931,7 +8088,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_SetIsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodStreamed(29, + ::grpc::Service::MarkMethodStreamed(30, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -7958,7 +8115,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_IsAutomaticUpdateOn() { - ::grpc::Service::MarkMethodStreamed(30, + ::grpc::Service::MarkMethodStreamed(31, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>( [this](::grpc::ServerContext* context, @@ -7985,7 +8142,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_IsCacheOnDiskEnabled() { - ::grpc::Service::MarkMethodStreamed(31, + ::grpc::Service::MarkMethodStreamed(32, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>( [this](::grpc::ServerContext* context, @@ -8012,7 +8169,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_DiskCachePath() { - ::grpc::Service::MarkMethodStreamed(32, + ::grpc::Service::MarkMethodStreamed(33, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>( [this](::grpc::ServerContext* context, @@ -8039,7 +8196,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_ChangeLocalCache() { - ::grpc::Service::MarkMethodStreamed(33, + ::grpc::Service::MarkMethodStreamed(34, new ::grpc::internal::StreamedUnaryHandler< ::grpc::ChangeLocalCacheRequest, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8066,7 +8223,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_SetIsDoHEnabled() { - ::grpc::Service::MarkMethodStreamed(34, + ::grpc::Service::MarkMethodStreamed(35, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8093,7 +8250,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_IsDoHEnabled() { - ::grpc::Service::MarkMethodStreamed(35, + ::grpc::Service::MarkMethodStreamed(36, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>( [this](::grpc::ServerContext* context, @@ -8120,7 +8277,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_SetUseSslForSmtp() { - ::grpc::Service::MarkMethodStreamed(36, + ::grpc::Service::MarkMethodStreamed(37, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::BoolValue, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8147,7 +8304,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_UseSslForSmtp() { - ::grpc::Service::MarkMethodStreamed(37, + ::grpc::Service::MarkMethodStreamed(38, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::BoolValue>( [this](::grpc::ServerContext* context, @@ -8174,7 +8331,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_Hostname() { - ::grpc::Service::MarkMethodStreamed(38, + ::grpc::Service::MarkMethodStreamed(39, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>( [this](::grpc::ServerContext* context, @@ -8201,7 +8358,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_ImapPort() { - ::grpc::Service::MarkMethodStreamed(39, + ::grpc::Service::MarkMethodStreamed(40, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Int32Value>( [this](::grpc::ServerContext* context, @@ -8228,7 +8385,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_SmtpPort() { - ::grpc::Service::MarkMethodStreamed(40, + ::grpc::Service::MarkMethodStreamed(41, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Int32Value>( [this](::grpc::ServerContext* context, @@ -8255,7 +8412,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_ChangePorts() { - ::grpc::Service::MarkMethodStreamed(41, + ::grpc::Service::MarkMethodStreamed(42, new ::grpc::internal::StreamedUnaryHandler< ::grpc::ChangePortsRequest, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8282,7 +8439,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_IsPortFree() { - ::grpc::Service::MarkMethodStreamed(42, + ::grpc::Service::MarkMethodStreamed(43, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Int32Value, ::google::protobuf::BoolValue>( [this](::grpc::ServerContext* context, @@ -8309,7 +8466,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_AvailableKeychains() { - ::grpc::Service::MarkMethodStreamed(43, + ::grpc::Service::MarkMethodStreamed(44, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::grpc::AvailableKeychainsResponse>( [this](::grpc::ServerContext* context, @@ -8336,7 +8493,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_SetCurrentKeychain() { - ::grpc::Service::MarkMethodStreamed(44, + ::grpc::Service::MarkMethodStreamed(45, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8363,7 +8520,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_CurrentKeychain() { - ::grpc::Service::MarkMethodStreamed(45, + ::grpc::Service::MarkMethodStreamed(46, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::StringValue>( [this](::grpc::ServerContext* context, @@ -8390,7 +8547,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_GetUserList() { - ::grpc::Service::MarkMethodStreamed(46, + ::grpc::Service::MarkMethodStreamed(47, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::grpc::UserListResponse>( [this](::grpc::ServerContext* context, @@ -8417,7 +8574,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_GetUser() { - ::grpc::Service::MarkMethodStreamed(47, + ::grpc::Service::MarkMethodStreamed(48, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::StringValue, ::grpc::User>( [this](::grpc::ServerContext* context, @@ -8444,7 +8601,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_SetUserSplitMode() { - ::grpc::Service::MarkMethodStreamed(48, + ::grpc::Service::MarkMethodStreamed(49, new ::grpc::internal::StreamedUnaryHandler< ::grpc::UserSplitModeRequest, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8471,7 +8628,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_LogoutUser() { - ::grpc::Service::MarkMethodStreamed(49, + ::grpc::Service::MarkMethodStreamed(50, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8498,7 +8655,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_RemoveUser() { - ::grpc::Service::MarkMethodStreamed(50, + ::grpc::Service::MarkMethodStreamed(51, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::StringValue, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8525,7 +8682,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_ConfigureUserAppleMail() { - ::grpc::Service::MarkMethodStreamed(51, + ::grpc::Service::MarkMethodStreamed(52, new ::grpc::internal::StreamedUnaryHandler< ::grpc::ConfigureAppleMailRequest, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8552,7 +8709,7 @@ class Bridge final { void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithStreamedUnaryMethod_StopEventStream() { - ::grpc::Service::MarkMethodStreamed(53, + ::grpc::Service::MarkMethodStreamed(54, new ::grpc::internal::StreamedUnaryHandler< ::google::protobuf::Empty, ::google::protobuf::Empty>( [this](::grpc::ServerContext* context, @@ -8573,14 +8730,14 @@ class Bridge final { // replace default version of method with streamed unary virtual ::grpc::Status StreamedStopEventStream(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::google::protobuf::Empty,::google::protobuf::Empty>* server_unary_streamer) = 0; }; - typedef WithStreamedUnaryMethod_AddLogEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedUnaryService; + typedef WithStreamedUnaryMethod_AddLogEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedUnaryService; template class WithSplitStreamingMethod_StartEventStream : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} public: WithSplitStreamingMethod_StartEventStream() { - ::grpc::Service::MarkMethodStreamed(52, + ::grpc::Service::MarkMethodStreamed(53, new ::grpc::internal::SplitServerStreamingHandler< ::grpc::EventStreamRequest, ::grpc::StreamEvent>( [this](::grpc::ServerContext* context, @@ -8602,7 +8759,7 @@ class Bridge final { virtual ::grpc::Status StreamedStartEventStream(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::grpc::EventStreamRequest,::grpc::StreamEvent>* server_split_streamer) = 0; }; typedef WithSplitStreamingMethod_StartEventStream SplitStreamedService; - typedef WithStreamedUnaryMethod_AddLogEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedService; + typedef WithStreamedUnaryMethod_AddLogEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedService; }; } // namespace grpc diff --git a/internal/frontend/bridgepp/bridgepp/GRPC/bridge.pb.cc b/internal/frontend/bridgepp/bridgepp/GRPC/bridge.pb.cc index 0068c6cf..24fd00a5 100644 --- a/internal/frontend/bridgepp/bridgepp/GRPC/bridge.pb.cc +++ b/internal/frontend/bridgepp/bridgepp/GRPC/bridge.pb.cc @@ -1466,7 +1466,7 @@ const char descriptor_table_protodef_bridge_2eproto[] PROTOBUF_SECTION_VARIABLE( "CACHE_UNAVAILABLE_ERROR\020\000\022\031\n\025CACHE_CANT_" "MOVE_ERROR\020\001\022\r\n\tDISK_FULL\020\002*A\n\025MailSetti" "ngsErrorType\022\023\n\017IMAP_PORT_ISSUE\020\000\022\023\n\017SMT" - "P_PORT_ISSUE\020\0012\371\034\n\006Bridge\022\?\n\013AddLogEntry" + "P_PORT_ISSUE\020\0012\300\035\n\006Bridge\022\?\n\013AddLogEntry" "\022\030.grpc.AddLogEntryRequest\032\026.google.prot" "obuf.Empty\022:\n\010GuiReady\022\026.google.protobuf" ".Empty\032\026.google.protobuf.Empty\0226\n\004Quit\022\026" @@ -1506,61 +1506,63 @@ const char descriptor_table_protodef_bridge_2eproto[] PROTOBUF_SECTION_VARIABLE( "lClient\022\026.google.protobuf.Empty\032\034.google" ".protobuf.StringValue\022;\n\tReportBug\022\026.grp" "c.ReportBugRequest\032\026.google.protobuf.Emp" - "ty\0223\n\005Login\022\022.grpc.LoginRequest\032\026.google" - ".protobuf.Empty\0226\n\010Login2FA\022\022.grpc.Login" - "Request\032\026.google.protobuf.Empty\022=\n\017Login" - "2Passwords\022\022.grpc.LoginRequest\032\026.google." - "protobuf.Empty\022=\n\nLoginAbort\022\027.grpc.Logi" - "nAbortRequest\032\026.google.protobuf.Empty\022=\n" - "\013CheckUpdate\022\026.google.protobuf.Empty\032\026.g" - "oogle.protobuf.Empty\022\?\n\rInstallUpdate\022\026." - "google.protobuf.Empty\032\026.google.protobuf." - "Empty\022L\n\026SetIsAutomaticUpdateOn\022\032.google" - ".protobuf.BoolValue\032\026.google.protobuf.Em" - "pty\022I\n\023IsAutomaticUpdateOn\022\026.google.prot" - "obuf.Empty\032\032.google.protobuf.BoolValue\022J" - "\n\024IsCacheOnDiskEnabled\022\026.google.protobuf" - ".Empty\032\032.google.protobuf.BoolValue\022E\n\rDi" - "skCachePath\022\026.google.protobuf.Empty\032\034.go" - "ogle.protobuf.StringValue\022I\n\020ChangeLocal" - "Cache\022\035.grpc.ChangeLocalCacheRequest\032\026.g" - "oogle.protobuf.Empty\022E\n\017SetIsDoHEnabled\022" - "\032.google.protobuf.BoolValue\032\026.google.pro" - "tobuf.Empty\022B\n\014IsDoHEnabled\022\026.google.pro" - "tobuf.Empty\032\032.google.protobuf.BoolValue\022" - "F\n\020SetUseSslForSmtp\022\032.google.protobuf.Bo" - "olValue\032\026.google.protobuf.Empty\022C\n\rUseSs" - "lForSmtp\022\026.google.protobuf.Empty\032\032.googl" - "e.protobuf.BoolValue\022@\n\010Hostname\022\026.googl" - "e.protobuf.Empty\032\034.google.protobuf.Strin" - "gValue\022\?\n\010ImapPort\022\026.google.protobuf.Emp" - "ty\032\033.google.protobuf.Int32Value\022\?\n\010SmtpP" - "ort\022\026.google.protobuf.Empty\032\033.google.pro" - "tobuf.Int32Value\022\?\n\013ChangePorts\022\030.grpc.C" - "hangePortsRequest\032\026.google.protobuf.Empt" - "y\022E\n\nIsPortFree\022\033.google.protobuf.Int32V" - "alue\032\032.google.protobuf.BoolValue\022N\n\022Avai" - "lableKeychains\022\026.google.protobuf.Empty\032 " - ".grpc.AvailableKeychainsResponse\022J\n\022SetC" - "urrentKeychain\022\034.google.protobuf.StringV" - "alue\032\026.google.protobuf.Empty\022G\n\017CurrentK" - "eychain\022\026.google.protobuf.Empty\032\034.google" - ".protobuf.StringValue\022=\n\013GetUserList\022\026.g" - "oogle.protobuf.Empty\032\026.grpc.UserListResp" - "onse\0223\n\007GetUser\022\034.google.protobuf.String" - "Value\032\n.grpc.User\022F\n\020SetUserSplitMode\022\032." - "grpc.UserSplitModeRequest\032\026.google.proto" - "buf.Empty\022B\n\nLogoutUser\022\034.google.protobu" - "f.StringValue\032\026.google.protobuf.Empty\022B\n" - "\nRemoveUser\022\034.google.protobuf.StringValu" - "e\032\026.google.protobuf.Empty\022Q\n\026ConfigureUs" - "erAppleMail\022\037.grpc.ConfigureAppleMailReq" - "uest\032\026.google.protobuf.Empty\022A\n\020StartEve" - "ntStream\022\030.grpc.EventStreamRequest\032\021.grp" - "c.StreamEvent0\001\022A\n\017StopEventStream\022\026.goo" - "gle.protobuf.Empty\032\026.google.protobuf.Emp" - "tyB6Z4github.com/ProtonMail/proton-bridg" - "e/v2/internal/grpcb\006proto3" + "ty\022E\n\rForceLauncher\022\034.google.protobuf.St" + "ringValue\032\026.google.protobuf.Empty\0223\n\005Log" + "in\022\022.grpc.LoginRequest\032\026.google.protobuf" + ".Empty\0226\n\010Login2FA\022\022.grpc.LoginRequest\032\026" + ".google.protobuf.Empty\022=\n\017Login2Password" + "s\022\022.grpc.LoginRequest\032\026.google.protobuf." + "Empty\022=\n\nLoginAbort\022\027.grpc.LoginAbortReq" + "uest\032\026.google.protobuf.Empty\022=\n\013CheckUpd" + "ate\022\026.google.protobuf.Empty\032\026.google.pro" + "tobuf.Empty\022\?\n\rInstallUpdate\022\026.google.pr" + "otobuf.Empty\032\026.google.protobuf.Empty\022L\n\026" + "SetIsAutomaticUpdateOn\022\032.google.protobuf" + ".BoolValue\032\026.google.protobuf.Empty\022I\n\023Is" + "AutomaticUpdateOn\022\026.google.protobuf.Empt" + "y\032\032.google.protobuf.BoolValue\022J\n\024IsCache" + "OnDiskEnabled\022\026.google.protobuf.Empty\032\032." + "google.protobuf.BoolValue\022E\n\rDiskCachePa" + "th\022\026.google.protobuf.Empty\032\034.google.prot" + "obuf.StringValue\022I\n\020ChangeLocalCache\022\035.g" + "rpc.ChangeLocalCacheRequest\032\026.google.pro" + "tobuf.Empty\022E\n\017SetIsDoHEnabled\022\032.google." + "protobuf.BoolValue\032\026.google.protobuf.Emp" + "ty\022B\n\014IsDoHEnabled\022\026.google.protobuf.Emp" + "ty\032\032.google.protobuf.BoolValue\022F\n\020SetUse" + "SslForSmtp\022\032.google.protobuf.BoolValue\032\026" + ".google.protobuf.Empty\022C\n\rUseSslForSmtp\022" + "\026.google.protobuf.Empty\032\032.google.protobu" + "f.BoolValue\022@\n\010Hostname\022\026.google.protobu" + "f.Empty\032\034.google.protobuf.StringValue\022\?\n" + "\010ImapPort\022\026.google.protobuf.Empty\032\033.goog" + "le.protobuf.Int32Value\022\?\n\010SmtpPort\022\026.goo" + "gle.protobuf.Empty\032\033.google.protobuf.Int" + "32Value\022\?\n\013ChangePorts\022\030.grpc.ChangePort" + "sRequest\032\026.google.protobuf.Empty\022E\n\nIsPo" + "rtFree\022\033.google.protobuf.Int32Value\032\032.go" + "ogle.protobuf.BoolValue\022N\n\022AvailableKeyc" + "hains\022\026.google.protobuf.Empty\032 .grpc.Ava" + "ilableKeychainsResponse\022J\n\022SetCurrentKey" + "chain\022\034.google.protobuf.StringValue\032\026.go" + "ogle.protobuf.Empty\022G\n\017CurrentKeychain\022\026" + ".google.protobuf.Empty\032\034.google.protobuf" + ".StringValue\022=\n\013GetUserList\022\026.google.pro" + "tobuf.Empty\032\026.grpc.UserListResponse\0223\n\007G" + "etUser\022\034.google.protobuf.StringValue\032\n.g" + "rpc.User\022F\n\020SetUserSplitMode\022\032.grpc.User" + "SplitModeRequest\032\026.google.protobuf.Empty" + "\022B\n\nLogoutUser\022\034.google.protobuf.StringV" + "alue\032\026.google.protobuf.Empty\022B\n\nRemoveUs" + "er\022\034.google.protobuf.StringValue\032\026.googl" + "e.protobuf.Empty\022Q\n\026ConfigureUserAppleMa" + "il\022\037.grpc.ConfigureAppleMailRequest\032\026.go" + "ogle.protobuf.Empty\022A\n\020StartEventStream\022" + "\030.grpc.EventStreamRequest\032\021.grpc.StreamE" + "vent0\001\022A\n\017StopEventStream\022\026.google.proto" + "buf.Empty\032\026.google.protobuf.EmptyB6Z4git" + "hub.com/ProtonMail/proton-bridge/v2/inte" + "rnal/grpcb\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_bridge_2eproto_deps[2] = { &::descriptor_table_google_2fprotobuf_2fempty_2eproto, @@ -1568,7 +1570,7 @@ static const ::_pbi::DescriptorTable* const descriptor_table_bridge_2eproto_deps }; static ::_pbi::once_flag descriptor_table_bridge_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_bridge_2eproto = { - false, false, 9226, descriptor_table_protodef_bridge_2eproto, + false, false, 9297, descriptor_table_protodef_bridge_2eproto, "bridge.proto", &descriptor_table_bridge_2eproto_once, descriptor_table_bridge_2eproto_deps, 2, 57, schemas, file_default_instances, TableStruct_bridge_2eproto::offsets, diff --git a/internal/frontend/bridgepp/bridgepp/Worker/Overseer.cpp b/internal/frontend/bridgepp/bridgepp/Worker/Overseer.cpp index 37121583..62c9f4e4 100644 --- a/internal/frontend/bridgepp/bridgepp/Worker/Overseer.cpp +++ b/internal/frontend/bridgepp/bridgepp/Worker/Overseer.cpp @@ -59,7 +59,7 @@ void Overseer::startWorker(bool autorelease) const worker_->moveToThread(thread_); connect(thread_, &QThread::started, worker_, &Worker::run); - connect(worker_, &Worker::finished, [&]() { thread_->quit(); }); // for unkwown reason, connect to the QThread::quit slot does not work... + connect(worker_, &Worker::finished, [&]() {thread_->quit(); }); // Safety, normally the thread already properly quits. connect(worker_, &Worker::error, [&]() { thread_->quit(); }); if (autorelease) diff --git a/internal/frontend/grpc/bridge.pb.go b/internal/frontend/grpc/bridge.pb.go index d461ff57..c00c74a0 100644 --- a/internal/frontend/grpc/bridge.pb.go +++ b/internal/frontend/grpc/bridge.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 -// protoc v3.21.2 +// protoc v3.21.3 // source: bridge.proto package grpc @@ -4122,7 +4122,7 @@ var file_bridge_proto_rawDesc = []byte{ 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4d, 0x41, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4d, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x53, 0x53, - 0x55, 0x45, 0x10, 0x01, 0x32, 0xf9, 0x1c, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, + 0x55, 0x45, 0x10, 0x01, 0x32, 0xc0, 0x1d, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, @@ -4221,143 +4221,148 @@ var file_bridge_proto_rawDesc = []byte{ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, - 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x46, 0x41, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x63, + 0x65, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x33, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, 0x6f, - 0x72, 0x74, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, - 0x62, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x46, 0x41, + 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, + 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0a, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, + 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0b, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x49, 0x0a, 0x13, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x13, 0x49, 0x73, 0x41, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x14, 0x49, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, + 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x45, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x70, + 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x45, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x49, 0x73, 0x44, 0x6f, 0x48, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x49, 0x73, 0x44, 0x6f, + 0x48, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x14, - 0x49, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, - 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x6b, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x49, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0f, 0x53, 0x65, - 0x74, 0x49, 0x73, 0x44, 0x6f, 0x48, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x2e, + 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x10, + 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, + 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, + 0x72, 0x53, 0x6d, 0x74, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x48, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x49, + 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, + 0x53, 0x6d, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, + 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, + 0x0a, 0x0a, 0x49, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x65, 0x65, 0x12, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x49, 0x73, 0x44, 0x6f, 0x48, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x53, - 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, - 0x0d, 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x12, 0x16, + 0x79, 0x12, 0x47, 0x0a, 0x0f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x1a, 0x0a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, + 0x0a, 0x10, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, + 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x49, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x6d, 0x74, 0x70, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, - 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0a, 0x49, 0x73, 0x50, 0x6f, 0x72, - 0x74, 0x46, 0x72, 0x65, 0x65, 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, - 0x0a, 0x12, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x79, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, - 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0f, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x0a, 0x2e, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x2e, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x42, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, + 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x41, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, - 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x10, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, - 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x41, 0x0a, - 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x4d, 0x61, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, - 0x2d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x4d, 0x61, 0x69, 0x6c, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2f, 0x76, + 0x32, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4517,93 +4522,95 @@ var file_bridge_proto_depIdxs = []int32{ 62, // 71: grpc.Bridge.ColorSchemeName:input_type -> google.protobuf.Empty 62, // 72: grpc.Bridge.CurrentEmailClient:input_type -> google.protobuf.Empty 6, // 73: grpc.Bridge.ReportBug:input_type -> grpc.ReportBugRequest - 7, // 74: grpc.Bridge.Login:input_type -> grpc.LoginRequest - 7, // 75: grpc.Bridge.Login2FA:input_type -> grpc.LoginRequest - 7, // 76: grpc.Bridge.Login2Passwords:input_type -> grpc.LoginRequest - 8, // 77: grpc.Bridge.LoginAbort:input_type -> grpc.LoginAbortRequest - 62, // 78: grpc.Bridge.CheckUpdate:input_type -> google.protobuf.Empty - 62, // 79: grpc.Bridge.InstallUpdate:input_type -> google.protobuf.Empty - 63, // 80: grpc.Bridge.SetIsAutomaticUpdateOn:input_type -> google.protobuf.BoolValue - 62, // 81: grpc.Bridge.IsAutomaticUpdateOn:input_type -> google.protobuf.Empty - 62, // 82: grpc.Bridge.IsCacheOnDiskEnabled:input_type -> google.protobuf.Empty - 62, // 83: grpc.Bridge.DiskCachePath:input_type -> google.protobuf.Empty - 9, // 84: grpc.Bridge.ChangeLocalCache:input_type -> grpc.ChangeLocalCacheRequest - 63, // 85: grpc.Bridge.SetIsDoHEnabled:input_type -> google.protobuf.BoolValue - 62, // 86: grpc.Bridge.IsDoHEnabled:input_type -> google.protobuf.Empty - 63, // 87: grpc.Bridge.SetUseSslForSmtp:input_type -> google.protobuf.BoolValue - 62, // 88: grpc.Bridge.UseSslForSmtp:input_type -> google.protobuf.Empty - 62, // 89: grpc.Bridge.Hostname:input_type -> google.protobuf.Empty - 62, // 90: grpc.Bridge.ImapPort:input_type -> google.protobuf.Empty - 62, // 91: grpc.Bridge.SmtpPort:input_type -> google.protobuf.Empty - 10, // 92: grpc.Bridge.ChangePorts:input_type -> grpc.ChangePortsRequest - 65, // 93: grpc.Bridge.IsPortFree:input_type -> google.protobuf.Int32Value - 62, // 94: grpc.Bridge.AvailableKeychains:input_type -> google.protobuf.Empty - 64, // 95: grpc.Bridge.SetCurrentKeychain:input_type -> google.protobuf.StringValue - 62, // 96: grpc.Bridge.CurrentKeychain:input_type -> google.protobuf.Empty - 62, // 97: grpc.Bridge.GetUserList:input_type -> google.protobuf.Empty - 64, // 98: grpc.Bridge.GetUser:input_type -> google.protobuf.StringValue - 13, // 99: grpc.Bridge.SetUserSplitMode:input_type -> grpc.UserSplitModeRequest - 64, // 100: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue - 64, // 101: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue - 15, // 102: grpc.Bridge.ConfigureUserAppleMail:input_type -> grpc.ConfigureAppleMailRequest - 16, // 103: grpc.Bridge.StartEventStream:input_type -> grpc.EventStreamRequest - 62, // 104: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty - 62, // 105: grpc.Bridge.AddLogEntry:output_type -> google.protobuf.Empty - 62, // 106: grpc.Bridge.GuiReady:output_type -> google.protobuf.Empty - 62, // 107: grpc.Bridge.Quit:output_type -> google.protobuf.Empty - 62, // 108: grpc.Bridge.Restart:output_type -> google.protobuf.Empty - 63, // 109: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue - 63, // 110: grpc.Bridge.ShowSplashScreen:output_type -> google.protobuf.BoolValue - 63, // 111: grpc.Bridge.IsFirstGuiStart:output_type -> google.protobuf.BoolValue - 62, // 112: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty - 63, // 113: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue - 62, // 114: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty - 63, // 115: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue - 64, // 116: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue - 62, // 117: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty - 64, // 118: grpc.Bridge.Version:output_type -> google.protobuf.StringValue - 64, // 119: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue - 64, // 120: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue - 64, // 121: grpc.Bridge.ReleaseNotesPageLink:output_type -> google.protobuf.StringValue - 64, // 122: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue - 64, // 123: grpc.Bridge.LandingPageLink:output_type -> google.protobuf.StringValue - 62, // 124: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty - 64, // 125: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue - 64, // 126: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue - 62, // 127: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty - 62, // 128: grpc.Bridge.Login:output_type -> google.protobuf.Empty - 62, // 129: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty - 62, // 130: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty - 62, // 131: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty - 62, // 132: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty - 62, // 133: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty - 62, // 134: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty - 63, // 135: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue - 63, // 136: grpc.Bridge.IsCacheOnDiskEnabled:output_type -> google.protobuf.BoolValue - 64, // 137: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue - 62, // 138: grpc.Bridge.ChangeLocalCache:output_type -> google.protobuf.Empty - 62, // 139: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty - 63, // 140: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue - 62, // 141: grpc.Bridge.SetUseSslForSmtp:output_type -> google.protobuf.Empty - 63, // 142: grpc.Bridge.UseSslForSmtp:output_type -> google.protobuf.BoolValue - 64, // 143: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue - 65, // 144: grpc.Bridge.ImapPort:output_type -> google.protobuf.Int32Value - 65, // 145: grpc.Bridge.SmtpPort:output_type -> google.protobuf.Int32Value - 62, // 146: grpc.Bridge.ChangePorts:output_type -> google.protobuf.Empty - 63, // 147: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue - 11, // 148: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse - 62, // 149: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty - 64, // 150: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue - 14, // 151: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse - 12, // 152: grpc.Bridge.GetUser:output_type -> grpc.User - 62, // 153: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty - 62, // 154: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty - 62, // 155: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty - 62, // 156: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty - 17, // 157: grpc.Bridge.StartEventStream:output_type -> grpc.StreamEvent - 62, // 158: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty - 105, // [105:159] is the sub-list for method output_type - 51, // [51:105] is the sub-list for method input_type + 64, // 74: grpc.Bridge.ForceLauncher:input_type -> google.protobuf.StringValue + 7, // 75: grpc.Bridge.Login:input_type -> grpc.LoginRequest + 7, // 76: grpc.Bridge.Login2FA:input_type -> grpc.LoginRequest + 7, // 77: grpc.Bridge.Login2Passwords:input_type -> grpc.LoginRequest + 8, // 78: grpc.Bridge.LoginAbort:input_type -> grpc.LoginAbortRequest + 62, // 79: grpc.Bridge.CheckUpdate:input_type -> google.protobuf.Empty + 62, // 80: grpc.Bridge.InstallUpdate:input_type -> google.protobuf.Empty + 63, // 81: grpc.Bridge.SetIsAutomaticUpdateOn:input_type -> google.protobuf.BoolValue + 62, // 82: grpc.Bridge.IsAutomaticUpdateOn:input_type -> google.protobuf.Empty + 62, // 83: grpc.Bridge.IsCacheOnDiskEnabled:input_type -> google.protobuf.Empty + 62, // 84: grpc.Bridge.DiskCachePath:input_type -> google.protobuf.Empty + 9, // 85: grpc.Bridge.ChangeLocalCache:input_type -> grpc.ChangeLocalCacheRequest + 63, // 86: grpc.Bridge.SetIsDoHEnabled:input_type -> google.protobuf.BoolValue + 62, // 87: grpc.Bridge.IsDoHEnabled:input_type -> google.protobuf.Empty + 63, // 88: grpc.Bridge.SetUseSslForSmtp:input_type -> google.protobuf.BoolValue + 62, // 89: grpc.Bridge.UseSslForSmtp:input_type -> google.protobuf.Empty + 62, // 90: grpc.Bridge.Hostname:input_type -> google.protobuf.Empty + 62, // 91: grpc.Bridge.ImapPort:input_type -> google.protobuf.Empty + 62, // 92: grpc.Bridge.SmtpPort:input_type -> google.protobuf.Empty + 10, // 93: grpc.Bridge.ChangePorts:input_type -> grpc.ChangePortsRequest + 65, // 94: grpc.Bridge.IsPortFree:input_type -> google.protobuf.Int32Value + 62, // 95: grpc.Bridge.AvailableKeychains:input_type -> google.protobuf.Empty + 64, // 96: grpc.Bridge.SetCurrentKeychain:input_type -> google.protobuf.StringValue + 62, // 97: grpc.Bridge.CurrentKeychain:input_type -> google.protobuf.Empty + 62, // 98: grpc.Bridge.GetUserList:input_type -> google.protobuf.Empty + 64, // 99: grpc.Bridge.GetUser:input_type -> google.protobuf.StringValue + 13, // 100: grpc.Bridge.SetUserSplitMode:input_type -> grpc.UserSplitModeRequest + 64, // 101: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue + 64, // 102: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue + 15, // 103: grpc.Bridge.ConfigureUserAppleMail:input_type -> grpc.ConfigureAppleMailRequest + 16, // 104: grpc.Bridge.StartEventStream:input_type -> grpc.EventStreamRequest + 62, // 105: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty + 62, // 106: grpc.Bridge.AddLogEntry:output_type -> google.protobuf.Empty + 62, // 107: grpc.Bridge.GuiReady:output_type -> google.protobuf.Empty + 62, // 108: grpc.Bridge.Quit:output_type -> google.protobuf.Empty + 62, // 109: grpc.Bridge.Restart:output_type -> google.protobuf.Empty + 63, // 110: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue + 63, // 111: grpc.Bridge.ShowSplashScreen:output_type -> google.protobuf.BoolValue + 63, // 112: grpc.Bridge.IsFirstGuiStart:output_type -> google.protobuf.BoolValue + 62, // 113: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty + 63, // 114: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue + 62, // 115: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty + 63, // 116: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue + 64, // 117: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue + 62, // 118: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty + 64, // 119: grpc.Bridge.Version:output_type -> google.protobuf.StringValue + 64, // 120: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue + 64, // 121: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue + 64, // 122: grpc.Bridge.ReleaseNotesPageLink:output_type -> google.protobuf.StringValue + 64, // 123: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue + 64, // 124: grpc.Bridge.LandingPageLink:output_type -> google.protobuf.StringValue + 62, // 125: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty + 64, // 126: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue + 64, // 127: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue + 62, // 128: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty + 62, // 129: grpc.Bridge.ForceLauncher:output_type -> google.protobuf.Empty + 62, // 130: grpc.Bridge.Login:output_type -> google.protobuf.Empty + 62, // 131: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty + 62, // 132: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty + 62, // 133: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty + 62, // 134: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty + 62, // 135: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty + 62, // 136: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty + 63, // 137: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue + 63, // 138: grpc.Bridge.IsCacheOnDiskEnabled:output_type -> google.protobuf.BoolValue + 64, // 139: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue + 62, // 140: grpc.Bridge.ChangeLocalCache:output_type -> google.protobuf.Empty + 62, // 141: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty + 63, // 142: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue + 62, // 143: grpc.Bridge.SetUseSslForSmtp:output_type -> google.protobuf.Empty + 63, // 144: grpc.Bridge.UseSslForSmtp:output_type -> google.protobuf.BoolValue + 64, // 145: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue + 65, // 146: grpc.Bridge.ImapPort:output_type -> google.protobuf.Int32Value + 65, // 147: grpc.Bridge.SmtpPort:output_type -> google.protobuf.Int32Value + 62, // 148: grpc.Bridge.ChangePorts:output_type -> google.protobuf.Empty + 63, // 149: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue + 11, // 150: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse + 62, // 151: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty + 64, // 152: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue + 14, // 153: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse + 12, // 154: grpc.Bridge.GetUser:output_type -> grpc.User + 62, // 155: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty + 62, // 156: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty + 62, // 157: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty + 62, // 158: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty + 17, // 159: grpc.Bridge.StartEventStream:output_type -> grpc.StreamEvent + 62, // 160: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty + 106, // [106:161] is the sub-list for method output_type + 51, // [51:106] is the sub-list for method input_type 51, // [51:51] is the sub-list for extension type_name 51, // [51:51] is the sub-list for extension extendee 0, // [0:51] is the sub-list for field type_name diff --git a/internal/frontend/grpc/bridge.proto b/internal/frontend/grpc/bridge.proto index 8e9a7bf0..c90a13bd 100644 --- a/internal/frontend/grpc/bridge.proto +++ b/internal/frontend/grpc/bridge.proto @@ -53,6 +53,7 @@ service Bridge { rpc ColorSchemeName(google.protobuf.Empty) returns (google.protobuf.StringValue); // TODO Color scheme should probably entirely be managed by the client. rpc CurrentEmailClient(google.protobuf.Empty) returns (google.protobuf.StringValue); rpc ReportBug(ReportBugRequest) returns (google.protobuf.Empty); + rpc ForceLauncher(google.protobuf.StringValue) returns (google.protobuf.Empty); // login rpc Login(LoginRequest) returns (google.protobuf.Empty); diff --git a/internal/frontend/grpc/bridge_grpc.pb.go b/internal/frontend/grpc/bridge_grpc.pb.go index 93241849..2dad3695 100644 --- a/internal/frontend/grpc/bridge_grpc.pb.go +++ b/internal/frontend/grpc/bridge_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.2 +// - protoc v3.21.3 // source: bridge.proto package grpc @@ -48,6 +48,7 @@ type BridgeClient interface { ColorSchemeName(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*wrapperspb.StringValue, error) CurrentEmailClient(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*wrapperspb.StringValue, error) ReportBug(ctx context.Context, in *ReportBugRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + ForceLauncher(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error) // login Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) Login2FA(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) @@ -303,6 +304,15 @@ func (c *bridgeClient) ReportBug(ctx context.Context, in *ReportBugRequest, opts return out, nil } +func (c *bridgeClient) ForceLauncher(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/grpc.Bridge/ForceLauncher", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *bridgeClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) err := c.cc.Invoke(ctx, "/grpc.Bridge/Login", in, out, opts...) @@ -633,6 +643,7 @@ type BridgeServer interface { ColorSchemeName(context.Context, *emptypb.Empty) (*wrapperspb.StringValue, error) CurrentEmailClient(context.Context, *emptypb.Empty) (*wrapperspb.StringValue, error) ReportBug(context.Context, *ReportBugRequest) (*emptypb.Empty, error) + ForceLauncher(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error) // login Login(context.Context, *LoginRequest) (*emptypb.Empty, error) Login2FA(context.Context, *LoginRequest) (*emptypb.Empty, error) @@ -747,6 +758,9 @@ func (UnimplementedBridgeServer) CurrentEmailClient(context.Context, *emptypb.Em func (UnimplementedBridgeServer) ReportBug(context.Context, *ReportBugRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ReportBug not implemented") } +func (UnimplementedBridgeServer) ForceLauncher(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method ForceLauncher not implemented") +} func (UnimplementedBridgeServer) Login(context.Context, *LoginRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Login not implemented") } @@ -1267,6 +1281,24 @@ func _Bridge_ReportBug_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Bridge_ForceLauncher_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(wrapperspb.StringValue) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BridgeServer).ForceLauncher(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/grpc.Bridge/ForceLauncher", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BridgeServer).ForceLauncher(ctx, req.(*wrapperspb.StringValue)) + } + return interceptor(ctx, in, info, handler) +} + func _Bridge_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LoginRequest) if err := dec(in); err != nil { @@ -1927,6 +1959,10 @@ var Bridge_ServiceDesc = grpc.ServiceDesc{ MethodName: "ReportBug", Handler: _Bridge_ReportBug_Handler, }, + { + MethodName: "ForceLauncher", + Handler: _Bridge_ForceLauncher_Handler, + }, { MethodName: "Login", Handler: _Bridge_Login_Handler, diff --git a/internal/frontend/grpc/service.go b/internal/frontend/grpc/service.go index cca85cb4..83501c42 100644 --- a/internal/frontend/grpc/service.go +++ b/internal/frontend/grpc/service.go @@ -335,7 +335,7 @@ func (s *Service) waitForUserChangeDone(done <-chan string, userID string) { } func (s *Service) restart() { - s.log.Error("Restart is not implemented") // TO-DO GODT-1671 implement restart. + s.restarter.SetToRestart() } func (s *Service) triggerReset() { diff --git a/internal/frontend/grpc/service_methods.go b/internal/frontend/grpc/service_methods.go index 76b528e0..062bb453 100644 --- a/internal/frontend/grpc/service_methods.go +++ b/internal/frontend/grpc/service_methods.go @@ -92,11 +92,14 @@ func (s *Service) Quit(ctx context.Context, empty *emptypb.Empty) (*emptypb.Empt // Restart implement the Restart gRPC service call. func (s *Service) Restart(context.Context, *emptypb.Empty) (*emptypb.Empty, error) { - s.log.Info("Restart") // TO-DO-GODT-1671 handle restart. + s.log.Info("Restart") + go func() { + defer s.panicHandler.HandlePanic() - s.restart() + s.restart() + }() - return nil, ErrNotImplemented + return &emptypb.Empty{}, nil } func (s *Service) ShowOnStartup(context.Context, *emptypb.Empty) (*wrapperspb.BoolValue, error) { @@ -192,7 +195,7 @@ func (s *Service) TriggerReset(context.Context, *emptypb.Empty) (*emptypb.Empty, defer s.panicHandler.HandlePanic() s.triggerReset() }() - return nil, ErrNotImplemented + return &emptypb.Empty{}, nil } func (s *Service) Version(context.Context, *emptypb.Empty) (*wrapperspb.StringValue, error) { @@ -291,6 +294,15 @@ func (s *Service) ReportBug(_ context.Context, report *ReportBugRequest) (*empty return &emptypb.Empty{}, nil } +func (s *Service) ForceLauncher(_ context.Context, launcher *wrapperspb.StringValue) (*emptypb.Empty, error) { + s.log.WithField("launcher", launcher.Value).Info("ForceLauncher") + go func() { + defer s.panicHandler.HandlePanic() + s.restarter.ForceLauncher(launcher.Value) + }() + return &emptypb.Empty{}, nil +} + func (s *Service) Login(_ context.Context, login *LoginRequest) (*emptypb.Empty, error) { s.log.WithField("username", login.Username).Info("Login") go func() { diff --git a/internal/frontend/types/types.go b/internal/frontend/types/types.go index 88051a38..1cce4b11 100644 --- a/internal/frontend/types/types.go +++ b/internal/frontend/types/types.go @@ -32,6 +32,7 @@ type PanicHandler interface { // Restarter allows the app to set itself to restart next time it is closed. type Restarter interface { SetToRestart() + ForceLauncher(string) } type NoEncConfirmator interface { diff --git a/internal/locations/locations.go b/internal/locations/locations.go index 61b6141c..69e528f8 100644 --- a/internal/locations/locations.go +++ b/internal/locations/locations.go @@ -38,14 +38,16 @@ import ( type Locations struct { userConfig, userCache string configName string + configGuiName string } // New returns a new locations object. func New(provider Provider, configName string) *Locations { return &Locations{ - userConfig: provider.UserConfig(), - userCache: provider.UserCache(), - configName: configName, + userConfig: provider.UserConfig(), + userCache: provider.UserCache(), + configName: configName, + configGuiName: configName + "-gui", } } @@ -54,6 +56,11 @@ func (l *Locations) GetLockFile() string { return filepath.Join(l.userCache, l.configName+".lock") } +// GetGuiLockFile returns the path to the lock file (e.g. ~/.cache///.lock). +func (l *Locations) GetGuiLockFile() string { + return filepath.Join(l.userCache, l.configGuiName+".lock") +} + // GetLicenseFilePath returns path to liense file. func (l *Locations) GetLicenseFilePath() string { path := l.getLicenseFilePath() @@ -210,6 +217,7 @@ func (l *Locations) Clear() error { l.userCache, ).Except( l.GetLockFile(), + l.GetGuiLockFile(), l.getUpdatesPath(), ).Do() } @@ -226,6 +234,7 @@ func (l *Locations) ClearUpdates() error { func (l *Locations) Clean() error { return files.Remove(l.userCache).Except( l.GetLockFile(), + l.GetGuiLockFile(), l.getLogsPath(), l.getCachePath(), l.getUpdatesPath(),