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

#ifndef BASE_TRACE_EVENT_NAMED_TRIGGER_H_
#define BASE_TRACE_EVENT_NAMED_TRIGGER_H_

#include <stdint.h>

#include <optional>
#include <string>

#include "base/base_export.h"

namespace base::trace_event {

inline constexpr char kStartupTracingTriggerName[] = "startup";

// Notifies that a manual trigger event has occurred. Returns true if the
// trigger caused a scenario to either begin recording or finalize the trace
// depending on the config, or false if the trigger had no effect. If the
// trigger specified isn't active in the config, this will do nothing.
BASE_EXPORT bool EmitNamedTrigger(
    const std::string& trigger_name,
    std::optional<int32_t> value = std::nullopt,
    std::optional<uint64_t> flow_id = std::nullopt);

class NamedTriggerManager {
 public:
  virtual bool DoEmitNamedTrigger(const std::string& trigger_name,
                                  std::optional<int32_t> value,
                                  uint64_t flow_id) = 0;

 protected:
  // Sets the instance returns by GetInstance() globally to |manager|.
  BASE_EXPORT static void SetInstance(NamedTriggerManager* manager);
};

}  // namespace base::trace_event

#endif  // BASE_TRACE_EVENT_NAMED_TRIGGER_H_
