1 // Copyright (C) 2018 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
6 * @brief a header file for IInferRequest interface
7 * @file ie_iinfer_request.hpp
12 #include <unordered_set>
18 #include "cpp_interfaces/impl/ie_infer_async_request_thread_safe_default.hpp"
19 #include "hetero_infer_request.h"
21 namespace HeteroPlugin {
23 class HeteroAsyncInferRequest : public InferenceEngine::AsyncInferRequestThreadSafeDefault {
25 typedef std::shared_ptr<HeteroAsyncInferRequest> Ptr;
27 HeteroAsyncInferRequest(HeteroInferRequest::Ptr request,
28 const InferenceEngine::ITaskExecutor::Ptr &taskExecutor,
29 const InferenceEngine::TaskSynchronizer::Ptr &taskSynchronizer,
30 const InferenceEngine::ITaskExecutor::Ptr &callbackExecutor);
32 void StartAsync() override;
34 InferenceEngine::StatusCode Wait(int64_t millis_timeout) override;
36 void SetCompletionCallback(InferenceEngine::IInferRequest::CompletionCallback callback) override;
39 HeteroInferRequest::Ptr _heteroInferRequest;
42 } // namespace HeteroPlugin