1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
5 #include <builders/ie_layer_decorator.hpp>
6 #include <details/caseless.hpp>
11 using namespace InferenceEngine;
12 using namespace details;
14 Builder::LayerDecorator::LayerDecorator(const std::string& type, const std::string& name) {
15 layer = std::make_shared<Layer>(type, name);
18 Builder::LayerDecorator::LayerDecorator(const Layer::Ptr& layer): layer(layer) {}
19 Builder::LayerDecorator::LayerDecorator(const Layer::CPtr& layer): cLayer(layer) {}
21 Builder::LayerDecorator::LayerDecorator(const Builder::LayerDecorator & rval) {
25 Builder::LayerDecorator &Builder::LayerDecorator::operator=(const Builder::LayerDecorator &rval) {
31 Builder::LayerDecorator::operator Builder::Layer() const {
32 getLayer()->validate(true);
36 Builder::LayerDecorator::operator Builder::Layer::Ptr() {
37 getLayer()->validate(true);
41 Builder::LayerDecorator::operator Builder::Layer::CPtr() const {
42 getLayer()->validate(true);
46 const std::string& Builder::LayerDecorator::getType() const {
47 return getLayer()->getType();
49 const std::string& Builder::LayerDecorator::getName() const {
50 return getLayer()->getName();
53 Builder::Layer::Ptr& Builder::LayerDecorator::getLayer() {
55 THROW_IE_EXCEPTION << "Cannot get Layer::Ptr!";
59 const Builder::Layer::CPtr Builder::LayerDecorator::getLayer() const {
62 THROW_IE_EXCEPTION << "Cannot get Layer::CPtr!";
63 return std::static_pointer_cast<const Layer>(layer);
68 void Builder::LayerDecorator::checkType(const std::string& type) const {
69 if (!details::CaselessEq<std::string>()(getLayer()->getType(), type))
70 THROW_IE_EXCEPTION << "Cannot create " << type << " decorator for layer " << getLayer()->getType();