mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-14 20:48:00 +00:00
### Description Implement Objective-C binding for `ORTCheckPoint`. Additionally, - Modify `onnxruntime_objectivec.cmake` to only include training header and sources when training flag is enabled - Enable objective-c binding for `orttraining-mac-ci-pipeline` ### Motivation and Context This PR is part of implementing Objective-C bindings for training API. It implements objective-c binding for ORTCheckPoint class. The objective-C API closely resembles the C++ API. **Note**: The test for saving checkpoint is skipped as it requires use of training session. It will be added when the objective-c binding for `ORTTrainingSession` is added.
37 lines
1.2 KiB
Text
37 lines
1.2 KiB
Text
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
#import "error_utils.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
static NSString* const kOrtErrorDomain = @"onnxruntime";
|
|
|
|
void ORTSaveCodeAndDescriptionToError(int code, const char* descriptionCstr, NSError** error) {
|
|
if (!error) return;
|
|
|
|
NSString* description = [NSString stringWithCString:descriptionCstr
|
|
encoding:NSASCIIStringEncoding];
|
|
|
|
*error = [NSError errorWithDomain:kOrtErrorDomain
|
|
code:code
|
|
userInfo:@{NSLocalizedDescriptionKey : description}];
|
|
}
|
|
|
|
void ORTSaveCodeAndDescriptionToError(int code, NSString* description, NSError** error) {
|
|
if (!error) return;
|
|
|
|
*error = [NSError errorWithDomain:kOrtErrorDomain
|
|
code:code
|
|
userInfo:@{NSLocalizedDescriptionKey : description}];
|
|
}
|
|
|
|
void ORTSaveOrtExceptionToError(const Ort::Exception& e, NSError** error) {
|
|
ORTSaveCodeAndDescriptionToError(e.GetOrtErrorCode(), e.what(), error);
|
|
}
|
|
|
|
void ORTSaveExceptionToError(const std::exception& e, NSError** error) {
|
|
ORTSaveCodeAndDescriptionToError(ORT_RUNTIME_EXCEPTION, e.what(), error);
|
|
}
|
|
|
|
NS_ASSUME_NONNULL_END
|