// Copyright (C) 2026 Rob Caelers <robc@krandor.nl>
// SPDX-License-Identifier: GPL-3.0-or-later

#ifndef WORKRAVE_CORENEXT_RPC_DBUS_SERVER_HH
#define WORKRAVE_CORENEXT_RPC_DBUS_SERVER_HH

#include <memory>

#include "config/IConfigurator.hh"
class Core;

// Owns the standalone DBus server and typed bindings generated by libs/rpc.
class RpcDBusServer
{
public:
  RpcDBusServer(Core &core, workrave::config::IConfigurator &configurator);
  ~RpcDBusServer();

  RpcDBusServer(const RpcDBusServer &) = delete;
  RpcDBusServer &operator=(const RpcDBusServer &) = delete;

private:
  struct Impl;
  std::unique_ptr<Impl> impl_;
};

#endif // WORKRAVE_CORENEXT_RPC_DBUS_SERVER_HH
