Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / inference_engine / blob_factory.hpp
index a4a5d20..b65f35b 100644 (file)
@@ -1,10 +1,11 @@
-// Copyright (C) 2018 Intel Corporation
+// Copyright (C) 2018-2019 Intel Corporation
 // SPDX-License-Identifier: Apache-2.0
 //
 
 #pragma once
 
 #include <utility>
+#include <memory>
 #include "inference_engine.hpp"
 
 template <InferenceEngine::Precision::ePrecision precision>
@@ -23,6 +24,9 @@ class BlobFactory {
     static InferenceEngine::Blob::Ptr make(const InferenceEngine::TensorDesc& desc, void* ptr) {
         return InferenceEngine::make_shared_blob<BlobType>(desc, reinterpret_cast<BlobType*>(ptr));
     }
+    static InferenceEngine::Blob::Ptr make(const InferenceEngine::TensorDesc& desc, const std::shared_ptr<InferenceEngine::IAllocator>& alloc) {
+        return InferenceEngine::make_shared_blob<BlobType>(desc, alloc);
+    }
 };
 
 template <InferenceEngine::Precision::ePrecision precision, class ... Args> InferenceEngine::Blob::Ptr make_shared_blob2(Args && ... args) {
@@ -35,6 +39,8 @@ template <InferenceEngine::Precision::ePrecision precision, class ... Args> Infe
 
 INFERENCE_ENGINE_API_CPP(InferenceEngine::Blob::Ptr) make_blob_with_precision(const InferenceEngine::TensorDesc& desc);
 INFERENCE_ENGINE_API_CPP(InferenceEngine::Blob::Ptr) make_blob_with_precision(const InferenceEngine::TensorDesc& desc, void* ptr);
+INFERENCE_ENGINE_API_CPP(InferenceEngine::Blob::Ptr) make_blob_with_precision(const InferenceEngine::TensorDesc& desc,
+                                                                              const std::shared_ptr<InferenceEngine::IAllocator>& alloc);
 INFERENCE_ENGINE_API_CPP(InferenceEngine::Blob::Ptr) make_plain_blob(InferenceEngine::Precision prec, const InferenceEngine::SizeVector dims);
 
 INFERENCE_ENGINE_API_CPP(InferenceEngine::Layout) plain_layout(InferenceEngine::SizeVector dims);
@@ -50,6 +56,7 @@ InferenceEngine::Blob::Ptr make_blob_with_precision(InferenceEngine::Precision p
         USE_FACTORY(I8);
         USE_FACTORY(U16);
         USE_FACTORY(I32);
+        USE_FACTORY(BIN);
         default:
             THROW_IE_EXCEPTION << "cannot locate blob for precision: " << precision;
     }