1 /*
2  * Copyright (C) 2020-2021 Intel Corporation
3  *
4  * SPDX-License-Identifier: MIT
5  *
6  */
7 
8 #pragma once
9 
10 #include <level_zero/ze_api.h>
11 
12 struct _ze_module_build_log_handle_t {};
13 
14 namespace L0 {
15 
16 struct Module;
17 
18 struct ModuleBuildLog : _ze_module_build_log_handle_t {
19     static ModuleBuildLog *create();
20     virtual ~ModuleBuildLog() = default;
21 
22     virtual ze_result_t destroy() = 0;
23     virtual ze_result_t getString(size_t *pSize, char *pBuildLog) = 0;
24     virtual void appendString(const char *pBuildLog, size_t size) = 0;
25 
26     ModuleBuildLog() = default;
27     ModuleBuildLog(const ModuleBuildLog &) = delete;
28     ModuleBuildLog(ModuleBuildLog &&) = delete;
29     ModuleBuildLog &operator=(const ModuleBuildLog &) = delete;
30     ModuleBuildLog &operator=(ModuleBuildLog &&) = delete;
31 
fromHandleModuleBuildLog32     static ModuleBuildLog *fromHandle(ze_module_build_log_handle_t handle) {
33         return static_cast<ModuleBuildLog *>(handle);
34     }
35 
toHandleModuleBuildLog36     inline ze_module_build_log_handle_t toHandle() { return this; }
37 };
38 
39 } // namespace L0