1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
8 #include "details/ie_no_copy.hpp"
9 #include "ie_imemory_state.hpp"
10 #include "cpp_interfaces/exception2status.hpp"
12 namespace InferenceEngine {
15 * @brief default implementation for IMemoryState
18 class MemoryStateBase : public IMemoryState {
20 std::shared_ptr<T> impl;
23 explicit MemoryStateBase(std::shared_ptr<T> impl) : impl(impl) {
24 if (impl == nullptr) {
25 THROW_IE_EXCEPTION << "MemoryStateBase implementation not defined";
29 StatusCode GetName(char *name, size_t len, ResponseDesc *resp) const noexcept override {
30 for (size_t i = 0; i != len; i++) {
33 DescriptionBuffer buf(name, len);
34 TO_STATUS(buf << impl->GetName());
38 StatusCode Reset(ResponseDesc *resp) noexcept override {
39 TO_STATUS(impl->Reset());
42 StatusCode SetState(Blob::Ptr newState, ResponseDesc *resp) noexcept override {
43 TO_STATUS(impl->SetState(newState));
46 StatusCode GetLastState(Blob::CPtr & lastState, ResponseDesc *resp) const noexcept override {
47 TO_STATUS(lastState = impl->GetLastState());
51 } // namespace InferenceEngine