diff --git a/src/bindings/python/src/pyopenvino/core/core.cpp b/src/bindings/python/src/pyopenvino/core/core.cpp index 4d3e2f3b298abd..3d0b7c6add2e18 100644 --- a/src/bindings/python/src/pyopenvino/core/core.cpp +++ b/src/bindings/python/src/pyopenvino/core/core.cpp @@ -14,6 +14,7 @@ #include #include "common.hpp" +#include "openvino/runtime/shared_buffer.hpp" #include "pyopenvino/core/remote_context.hpp" #include "pyopenvino/graph/op_extension.hpp" #include "pyopenvino/utils/utils.hpp" @@ -554,8 +555,8 @@ void regclass_Core(py::module m) { info = py::buffer(model_stream).request(); } - Common::utils::MemoryBuffer mb(reinterpret_cast(info.ptr), info.size); - std::istream stream(&mb); + ov::SharedStreamBuffer mb{info.ptr, static_cast(info.size)}; + std::istream stream{&mb}; ConditionalGILScopedRelease release; return self.import_model(stream, device_name, _properties); diff --git a/src/bindings/python/src/pyopenvino/frontend/frontend.cpp b/src/bindings/python/src/pyopenvino/frontend/frontend.cpp index 5182b829dd1591..cbccc065055c88 100644 --- a/src/bindings/python/src/pyopenvino/frontend/frontend.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/frontend.cpp @@ -12,6 +12,7 @@ #include "openvino/frontend/exception.hpp" #include "openvino/frontend/extension/telemetry.hpp" #include "openvino/frontend/manager.hpp" +#include "openvino/runtime/shared_buffer.hpp" #include "openvino/util/file_util.hpp" #include "pyopenvino/graph/model.hpp" #include "pyopenvino/utils/utils.hpp" @@ -50,8 +51,8 @@ void regclass_frontend_FrontEnd(py::module m) { } else if (py::isinstance(py_obj, pybind11::module::import("io").attr("BytesIO"))) { // support of BytesIO py::buffer_info info = py::buffer(py_obj.attr("getbuffer")()).request(); - Common::utils::MemoryBuffer mb(reinterpret_cast(info.ptr), info.size); - std::istream _istream(&mb); + ov::SharedStreamBuffer mb{info.ptr, static_cast(info.size)}; + std::istream _istream{&mb}; return self.load(&_istream, enable_mmap); } else { // Extended for one argument only for this time diff --git a/src/bindings/python/src/pyopenvino/utils/utils.hpp b/src/bindings/python/src/pyopenvino/utils/utils.hpp index f28a4faa8c0c54..4aee27ed27a74a 100644 --- a/src/bindings/python/src/pyopenvino/utils/utils.hpp +++ b/src/bindings/python/src/pyopenvino/utils/utils.hpp @@ -96,38 +96,6 @@ class OutPyBuffer : public std::streambuf { py::object m_py_stream; }; -class MemoryBuffer : public std::streambuf { -public: - MemoryBuffer(char* data, std::size_t size) { - setg(data, data, data + size); - } - -protected: - pos_type seekoff(off_type off, - std::ios_base::seekdir dir, - std::ios_base::openmode which = std::ios_base::in) override { - switch (dir) { - case std::ios_base::beg: - setg(eback(), eback() + off, egptr()); - break; - case std::ios_base::end: - setg(eback(), egptr() + off, egptr()); - break; - case std::ios_base::cur: - setg(eback(), gptr() + off, egptr()); - break; - default: - return pos_type(off_type(-1)); - } - return (gptr() < eback() || gptr() > egptr()) ? pos_type(off_type(-1)) : pos_type(gptr() - eback()); - } - - pos_type seekpos(pos_type pos, std::ios_base::openmode which) override { - return seekoff(pos, std::ios_base::beg, which); - } - -}; - enum class PY_TYPE : int { UNKNOWN = 0, STR, INT, FLOAT, BOOL, PARTIAL_SHAPE, MODEL_DISTRIBUTION_POLICY }; struct EmptyList {};