namespace openvino::itt

namespace itt {

// typedefs

typedef struct openvino::itt::domain_* domain_t;
typedef struct openvino::itt::handle_* handle_t;

// structs

struct domain_;
struct handle_;

// classes

template <domain_t(*)() domain>
class ScopedTask;
template <domain_t(*)() domain>
class TaskChain;

// global functions

void threadName(const char* name);
void threadName(const std::string& name);
handle_t handle(char const* name);
handle_t handle(const std::string& name);

template <typename Tag>
handle_t handle(handle_t h);

} // namespace itt