// Copyright Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #pragma once #include #include #include #include namespace rocRoller { namespace Operations { class BaseOperation { public: BaseOperation(); void setCommand(CommandPtr); OperationTag getTag() const; void setTag(OperationTag tag); std::strong_ordering operator<=>(BaseOperation const&) const; protected: OperationTag m_tag; std::weak_ptr m_command; template friend struct rocRoller::Serialization::MappingTraits; }; } } // namespace rocRoller