onnxruntime/winml/lib/Api/inc/ILotusValueProviderPrivate.h
Sheil Kumar 2717c178cc
Fork the WinML APIs into the Microsoft namespace (#3503)
* Migrate winml to Microsoft Namespace (packaging changes are pending)

* add ns_prefix toggle

* fix packaging

* Users/sheilk/add missing raw header (#3484)

* add dualapipartition

* wrong variable for repo root

Co-authored-by: Sheil Kumar <sheilk@microsoft.com>

* remove existence check to force failures

* extra paren

* dualapipartition needs to be referenced from the source

* add microsoft.ai.machinelearning.dll to the output dir

* rename the idl file so that assembly info is correctly added into the winmd

* fix namespaces

* update namespaces

* default to microsoft, and add namespace override as build argument

* update cmakesetings.json as well

* remove from cmakelists.txt

Co-authored-by: Sheil Kumar <sheilk@microsoft.com>
Co-authored-by: Changming Sun <chasun@microsoft.com>
2020-04-17 06:18:54 -07:00

33 lines
No EOL
1.2 KiB
C++

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#pragma once
#include "iengine.h"
// ILotusValueProviderPrivate exposes a private Lotus interface to the engine so that it can retrieve tensor
// resources stored in winrt structures.
namespace _winml {
class PoolObjectWrapper;
enum class BindingType { kInput,
kOutput };
struct BindingContext {
BindingType type = BindingType::kInput;
winml::LearningModelSession session = nullptr;
winml::ILearningModelFeatureDescriptor descriptor = nullptr;
wfc::IPropertySet properties = nullptr;
std::shared_ptr<PoolObjectWrapper> converter;
};
struct __declspec(uuid("27e2f437-0112-4693-849e-e04323a620fb")) __declspec(novtable) ILotusValueProviderPrivate : IUnknown {
virtual HRESULT __stdcall GetValue(BindingContext& binding_context, _winml::IValue** out) = 0;
virtual HRESULT __stdcall IsPlaceholder(bool* is_placeholder) = 0;
virtual HRESULT __stdcall UpdateSourceResourceData(BindingContext& binding_context, _winml::IValue* value) = 0;
virtual HRESULT __stdcall AbiRepresentation(wf::IInspectable& abi_representation) = 0;
};
} // namespace _winml