mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-30 23:18:20 +00:00
winml/ was previously excluded from lintrunner config. This change includes the directory and adds the clang-format config file specific to winml/ that fits existing style. --------- Signed-off-by: Justin Chu <justinchu@microsoft.com>
66 lines
3.8 KiB
C++
66 lines
3.8 KiB
C++
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
#pragma once
|
|
#include "pch.h"
|
|
#include "core/providers/winml/winml_provider_factory.h"
|
|
|
|
#ifdef _WIN32
|
|
inline HRESULT OrtErrorCodeToHRESULT(OrtErrorCode status) noexcept {
|
|
switch (status) {
|
|
case OrtErrorCode::ORT_OK:
|
|
return S_OK;
|
|
case OrtErrorCode::ORT_FAIL:
|
|
return E_FAIL;
|
|
case OrtErrorCode::ORT_INVALID_ARGUMENT:
|
|
return E_INVALIDARG;
|
|
case OrtErrorCode::ORT_NO_SUCHFILE:
|
|
return __HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND);
|
|
case OrtErrorCode::ORT_NO_MODEL:
|
|
return __HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND);
|
|
case OrtErrorCode::ORT_ENGINE_ERROR:
|
|
return E_FAIL;
|
|
case OrtErrorCode::ORT_RUNTIME_EXCEPTION:
|
|
return E_FAIL;
|
|
case OrtErrorCode::ORT_INVALID_PROTOBUF:
|
|
return __HRESULT_FROM_WIN32(ERROR_FILE_CORRUPT);
|
|
case OrtErrorCode::ORT_MODEL_LOADED:
|
|
return __HRESULT_FROM_WIN32(ERROR_INTERNAL_ERROR);
|
|
case OrtErrorCode::ORT_NOT_IMPLEMENTED:
|
|
return E_NOTIMPL;
|
|
case OrtErrorCode::ORT_INVALID_GRAPH:
|
|
return __HRESULT_FROM_WIN32(ERROR_FILE_CORRUPT);
|
|
case OrtErrorCode::ORT_EP_FAIL:
|
|
return __HRESULT_FROM_WIN32(ERROR_INTERNAL_ERROR);
|
|
default:
|
|
return E_FAIL;
|
|
}
|
|
}
|
|
#endif
|
|
|
|
#define RETURN_HR_IF_NOT_OK_MSG(status, ort_api) \
|
|
do { \
|
|
auto _status = status; \
|
|
if (_status) { \
|
|
auto error_code = ort_api->GetErrorCode(_status); \
|
|
auto error_message = ort_api->GetErrorMessage(_status); \
|
|
HRESULT hresult = OrtErrorCodeToHRESULT(error_code); \
|
|
telemetry_helper.LogRuntimeError(hresult, std::string(error_message), __FILE__, __FUNCTION__, __LINE__); \
|
|
auto message = _winml::Strings::HStringFromUTF8(error_message); \
|
|
RoOriginateError(hresult, reinterpret_cast<HSTRING>(winrt::get_abi(message))); \
|
|
return hresult; \
|
|
} \
|
|
} while (0)
|
|
|
|
#define THROW_IF_NOT_OK_MSG(status, ort_api) \
|
|
do { \
|
|
auto _status = status; \
|
|
if (_status) { \
|
|
auto error_code = ort_api->GetErrorCode(_status); \
|
|
auto error_message = ort_api->GetErrorMessage(_status); \
|
|
HRESULT hresult = OrtErrorCodeToHRESULT(error_code); \
|
|
telemetry_helper.LogRuntimeError(hresult, std::string(error_message), __FILE__, __FUNCTION__, __LINE__); \
|
|
auto message = _winml::Strings::HStringFromUTF8(error_message); \
|
|
throw winrt::hresult_error(hresult, message); \
|
|
} \
|
|
} while (0)
|