24 class ICompletionCallbackWrapper {
26 virtual ~ICompletionCallbackWrapper() =
default;
32 class CompletionCallbackWrapper :
public ICompletionCallbackWrapper {
36 explicit CompletionCallbackWrapper(
const T& lambda): lambda(lambda) {}
45 class CompletionCallbackWrapper<IInferRequest::CompletionCallback> :
public ICompletionCallbackWrapper {
52 callBack(request, code);
67 std::shared_ptr<details::ICompletionCallbackWrapper> callback;
70 details::ICompletionCallbackWrapper* pWrapper =
nullptr;
72 request->GetUserData(reinterpret_cast<void**>(&pWrapper), &dsc);
73 pWrapper->call(request, code);
98 CALL_STATUS_FNC(SetBlob, name.c_str(), data);
110 CALL_STATUS_FNC(GetBlob, name.c_str(), data);
111 std::string error =
"Internal error: blob with name `" + name +
"` is not allocated!";
112 auto blobPtr = data.get();
126 CALL_STATUS_FNC(SetBlob, name.c_str(), data, info);
136 CALL_STATUS_FNC(GetPreProcess, name.c_str(), &info);
147 CALL_STATUS_FNC_NO_ARGS(Infer);
157 std::map<std::string, InferenceEngineProfileInfo> perfMap;
158 CALL_STATUS_FNC(GetPerformanceCounts, perfMap);
170 for (
auto&& input : inputs) {
171 CALL_STATUS_FNC(SetBlob, input.first.c_str(), input.second);
183 for (
auto&& result : results) {
184 CALL_STATUS_FNC(SetBlob, result.first.c_str(), result.second);
194 CALL_STATUS_FNC(SetBatch, batch);
204 if (actual ==
nullptr) {
215 CALL_STATUS_FNC_NO_ARGS(StartAsync);
231 if (actual ==
nullptr) {
234 auto res = actual->Wait(millis_timeout, &resp);
235 if (res != OK && res != RESULT_NOT_READY && res != INFER_NOT_STARTED) {
236 InferenceEngine::details::extract_exception(res, resp.
msg);
250 callback.reset(
new details::CompletionCallbackWrapper<T>(callbackToSet));
251 CALL_STATUS_FNC(SetUserData, callback.get());
252 actual->SetCompletionCallback(callWrapper);
275 explicit operator bool() const noexcept {
282 using Ptr = std::shared_ptr<InferRequest>;
288 class CompletionCallbackWrapper<std::function<void(InferRequest, StatusCode)>> :
public ICompletionCallbackWrapper {
289 std::function<void(InferRequest, StatusCode)> lambda;
InferRequest(IInferRequest::Ptr request, InferenceEnginePluginPtr plg={})
Definition: ie_infer_request.hpp:202
#define THROW_IE_EXCEPTION
A macro used to throw the exception with a notable description.
Definition: ie_exception.hpp:25
void StartAsync()
Start inference of specified input(s) in asynchronous mode.
Definition: ie_infer_request.hpp:214
bool operator!() const noexcept
Checks if current InferRequest object is not initialized.
Definition: ie_infer_request.hpp:267
InferenceEngine::details::SOPointer< IInferencePlugin > InferenceEnginePluginPtr
A C++ helper to work with objects created by the plugin.
Definition: ie_plugin_ptr.hpp:43
std::map< std::string, Blob::Ptr > BlobMap
This is a convenient type for working with a map containing pairs(string, pointer to a Blob instance)...
Definition: ie_blob.h:464
Inference Engine API.
Definition: ie_argmax_layer.hpp:15
Blob::Ptr GetBlob(const std::string &name)
Definition: ie_infer_request.hpp:108
StatusCode Wait(int64_t millis_timeout)
Definition: ie_infer_request.hpp:229
A header file that provides macros to handle no exception methods.
std::string name
Layer name.
Definition: ie_layers.h:42
void SetInput(const BlobMap &inputs)
Sets input data to infer.
Definition: ie_infer_request.hpp:169
A header file contains a wrapper class for handling plugin instantiation and releasing resources...
void SetOutput(const BlobMap &results)
Sets data that will contain result of the inference.
Definition: ie_infer_request.hpp:182
This class stores pre-process information for the input.
Definition: ie_preprocess.hpp:55
void SetBlob(const std::string &name, const Blob::Ptr &data)
Sets input/output data to infer.
Definition: ie_infer_request.hpp:97
a header file for IInferRequest interface
Definition: ie_infer_request.hpp:64
void SetCompletionCallback(const T &callbackToSet)
Definition: ie_infer_request.hpp:249
std::shared_ptr< InferRequest > Ptr
A smart pointer to the InferRequest object.
Definition: ie_infer_request.hpp:282
Represents detailed information for an error.
Definition: ie_common.h:247
StatusCode
This enum contains codes for all possible return values of the interface functions.
Definition: ie_common.h:224
char msg[4096]
A character buffer that holds the detailed information for an error.
Definition: ie_common.h:251
std::shared_ptr< Blob > Ptr
A smart pointer containing Blob object.
Definition: ie_blob.h:42
const PreProcessInfo & GetPreProcess(const std::string &name) const
Gets pre-process for input data.
Definition: ie_infer_request.hpp:134
void(* CompletionCallback)(InferenceEngine::IInferRequest::Ptr context, InferenceEngine::StatusCode code)
Completion callback definition as pointer to a function.
Definition: ie_iinfer_request.hpp:142
std::map< std::string, InferenceEngineProfileInfo > GetPerformanceCounts() const
Definition: ie_infer_request.hpp:156
void Infer()
Definition: ie_infer_request.hpp:146
void SetBlob(const std::string &name, const Blob::Ptr &data, const PreProcessInfo &info)
Sets blob with a pre-process information.
Definition: ie_infer_request.hpp:125
void SetBatch(const int batch)
Sets new batch size when dynamic batching is enabled in executable network that created this request...
Definition: ie_infer_request.hpp:193
~InferRequest()
Destructor.
Definition: ie_infer_request.hpp:85
std::shared_ptr< IInferRequest > Ptr
A shared pointer to the IInferRequest object.
Definition: ie_iinfer_request.hpp:44