// Copyright Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #pragma once #include #include #include #include #include namespace rocRoller { std::string toString(ArgumentType); std::ostream& operator<<(std::ostream&, ArgumentType); using ArgumentOffsetMap = std::unordered_map, int>; using ArgumentOffsetMapPtr = std::shared_ptr; class CommandArguments { public: CommandArguments() = delete; CommandArguments(ArgumentOffsetMapPtr, int); template void setArgument(Operations::OperationTag op, ArgumentType argType, int dimension, T value); template void setArgument(Operations::OperationTag op, ArgumentType argType, T value); void setArgument(Operations::OperationTag op, ArgumentType argType, int dimension, CommandArgumentValue const& value); void setArgument(Operations::OperationTag op, ArgumentType argType, CommandArgumentValue const& value); RuntimeArguments runtimeArguments() const; private: ArgumentOffsetMapPtr m_argOffsetMapPtr; KernelArguments m_kArgs; }; } #include