| #include "task.hpp" |
| |
| #include <ittnotify.h> |
| |
| #include "domain.hpp" |
| #include "id.hpp" |
| #include "string_handle.hpp" |
| |
| namespace ittapi |
| { |
| |
| PyObject* task_begin(PyObject* self, PyObject* args) |
| { |
| PyObject* domain = nullptr; |
| PyObject* name_string_handle = nullptr; |
| PyObject* task_id = nullptr; |
| PyObject* parent_id = nullptr; |
| |
| if (!PyArg_ParseTuple(args, "OO|OO", &domain, &name_string_handle, &task_id, &parent_id)) |
| { |
| return nullptr; |
| } |
| |
| Domain* domain_obj = domain_check(domain); |
| if (domain_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| StringHandle* name_string_handle_obj = string_handle_check(name_string_handle); |
| if (name_string_handle_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| __itt_id id = __itt_null; |
| if (task_id && task_id != Py_None) |
| { |
| Id* task_id_obj = id_check(task_id); |
| if (task_id_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| id = task_id_obj->id; |
| } |
| |
| __itt_id p_id = __itt_null; |
| if (parent_id && parent_id != Py_None) |
| { |
| Id* parent_id_obj = id_check(parent_id); |
| if (parent_id_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| p_id = parent_id_obj->id; |
| } |
| |
| __itt_task_begin(domain_obj->handle, id, p_id, name_string_handle_obj->handle); |
| |
| Py_RETURN_NONE; |
| } |
| |
| PyObject* task_end(PyObject* self, PyObject* args) |
| { |
| |
| PyObject* domain = nullptr; |
| |
| if (!PyArg_ParseTuple(args, "O", &domain)) |
| { |
| return nullptr; |
| } |
| |
| Domain* domain_obj = domain_check(domain); |
| if (domain_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| __itt_task_end(domain_obj->handle); |
| |
| Py_RETURN_NONE; |
| } |
| |
| PyObject* task_begin_overlapped(PyObject* self, PyObject* args) |
| { |
| PyObject* domain = nullptr; |
| PyObject* name_string_handle = nullptr; |
| PyObject* task_id = nullptr; |
| PyObject* parent_id = nullptr; |
| |
| if (!PyArg_ParseTuple(args, "OOO|O", &domain, &name_string_handle, &task_id, &parent_id)) |
| { |
| return nullptr; |
| } |
| |
| Domain* domain_obj = domain_check(domain); |
| if (domain_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| StringHandle* name_string_handle_obj = string_handle_check(name_string_handle); |
| if (name_string_handle_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| Id* task_id_obj = id_check(task_id); |
| if (task_id_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| __itt_id p_id = __itt_null; |
| if (parent_id && parent_id != Py_None) |
| { |
| Id* parent_id_obj = id_check(parent_id); |
| if (parent_id_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| p_id = parent_id_obj->id; |
| } |
| |
| __itt_task_begin_overlapped(domain_obj->handle, |
| task_id_obj->id, |
| p_id, |
| name_string_handle_obj->handle); |
| |
| Py_RETURN_NONE; |
| } |
| |
| PyObject* task_end_overlapped(PyObject* self, PyObject* args) |
| { |
| |
| PyObject* domain = nullptr; |
| PyObject* task_id = nullptr; |
| |
| if (!PyArg_ParseTuple(args, "OO", &domain, &task_id)) |
| { |
| return nullptr; |
| } |
| |
| Domain* domain_obj = domain_check(domain); |
| if (domain_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| Id* task_id_obj = id_check(task_id); |
| if (task_id_obj == nullptr) |
| { |
| return nullptr; |
| } |
| |
| __itt_task_end_overlapped(domain_obj->handle, task_id_obj->id); |
| |
| Py_RETURN_NONE; |
| } |
| |
| } // namespace ittapi |