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