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