1*6777b538SAndroid Build Coastguard Worker // Copyright 2024 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_TRACE_EVENT_NAMED_TRIGGER_H_ 6*6777b538SAndroid Build Coastguard Worker #define BASE_TRACE_EVENT_NAMED_TRIGGER_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <optional> 9*6777b538SAndroid Build Coastguard Worker #include <string> 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker #include "base/base_export.h" 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker namespace base::trace_event { 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker // Notifies that a manual trigger event has occurred. Returns true if the 16*6777b538SAndroid Build Coastguard Worker // trigger caused a scenario to either begin recording or finalize the trace 17*6777b538SAndroid Build Coastguard Worker // depending on the config, or false if the trigger had no effect. If the 18*6777b538SAndroid Build Coastguard Worker // trigger specified isn't active in the config, this will do nothing. 19*6777b538SAndroid Build Coastguard Worker BASE_EXPORT bool EmitNamedTrigger(const std::string& trigger_name, 20*6777b538SAndroid Build Coastguard Worker std::optional<int32_t> value = std::nullopt); 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker class NamedTriggerManager { 23*6777b538SAndroid Build Coastguard Worker public: 24*6777b538SAndroid Build Coastguard Worker virtual bool DoEmitNamedTrigger(const std::string& trigger_name, 25*6777b538SAndroid Build Coastguard Worker std::optional<int32_t> value) = 0; 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker protected: 28*6777b538SAndroid Build Coastguard Worker // Sets the instance returns by GetInstance() globally to |manager|. 29*6777b538SAndroid Build Coastguard Worker BASE_EXPORT static void SetInstance(NamedTriggerManager* manager); 30*6777b538SAndroid Build Coastguard Worker }; 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker } // namespace base::trace_event 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Worker #endif // BASE_TRACE_EVENT_NAMED_TRIGGER_H_ 35