// Copyright 2016 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef LOGIN_MANAGER_INIT_DAEMON_CONTROLLER_H_
#define LOGIN_MANAGER_INIT_DAEMON_CONTROLLER_H_

#include <memory>
#include <string>
#include <vector>

namespace dbus {
class Response;
}

namespace login_manager {

class InitDaemonController {
 public:
  // Different triggering modes.
  enum class TriggerMode {
    // Wait for the impulse to be fully processed before returning. Triggering
    // a SYNC impulse may block on dependent init jobs. Always prefer ASYNC over
    // SYNC unless your code actually needs the synchronous behavior.
    // TODO(yusukes): Get rid of SYNC once ARC stops using it.
    SYNC,
    // Asynchronously trigger the impulse.
    ASYNC,
  };

  virtual ~InitDaemonController() = default;

  // Asks the init daemon to emit a signal (Upstart) or start a unit (systemd).
  // The response is null if the request failed or |mode| is ASYNC.
  virtual std::unique_ptr<dbus::Response> TriggerImpulse(
      const std::string& name,
      const std::vector<std::string>& args_keyvals,
      TriggerMode mode) = 0;
};

}  // namespace login_manager

#endif  // LOGIN_MANAGER_INIT_DAEMON_CONTROLLER_H_
