blob: 11b40e0986af39f4c6ce5a42d8dd0532befaef58 [file] [log] [blame] [edit]
// Copyright 2024 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef LIBHWSEC_STRUCTURES_EVENT_H_
#define LIBHWSEC_STRUCTURES_EVENT_H_
#include <string>
#include "libhwsec/hwsec_export.h"
#include "libhwsec/middleware/middleware_derivative.h"
#include "libhwsec/structures/no_default_init.h"
namespace hwsec {
class HWSEC_EXPORT ScopedEvent {
public:
ScopedEvent() = default;
ScopedEvent(ScopedEvent&& scoped_event);
ScopedEvent(const ScopedEvent& scoped_event) = delete;
ScopedEvent(const std::string& event,
MiddlewareDerivative middleware_derivative);
~ScopedEvent();
ScopedEvent& operator=(ScopedEvent&& scoped_event);
ScopedEvent& operator=(const ScopedEvent& scoped_event) = delete;
// Stops the event.
void Stop();
private:
std::string event_;
MiddlewareDerivative middleware_derivative_;
};
} // namespace hwsec
#endif // LIBHWSEC_STRUCTURES_EVENT_H_