forked from microsoft/onnxruntime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
winml_adapter_model.h
33 lines (25 loc) · 1.03 KB
/
winml_adapter_model.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#pragma once
#include "winml_adapter_c_api.h"
#include <memory>
#include "core/graph/onnx_protobuf.h"
class ModelInfo;
struct OrtModel {
public:
static OrtStatus* CreateEmptyModel(int64_t opset, OrtModel** model);
static OrtStatus* CreateOrtModelFromPath(const char* path, size_t len, OrtModel** model);
static OrtStatus* CreateOrtModelFromData(void* data, size_t len, OrtModel** model);
static OrtStatus* CreateOrtModelFromProto(std::unique_ptr<onnx::ModelProto>&& model_proto, OrtModel** model);
const ModelInfo* UseModelInfo() const;
onnx::ModelProto* UseModelProto() const;
std::unique_ptr<onnx::ModelProto> DetachModelProto();
void RefreshModelInfo();
private:
OrtModel(std::unique_ptr<onnx::ModelProto> model_proto);
OrtModel(const OrtModel& other) = delete;
OrtModel& operator=(const OrtModel& other) = delete;
private:
std::unique_ptr<onnx::ModelProto> model_proto_;
std::unique_ptr<ModelInfo> model_info_;
};