1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
7 #include <builders/ie_layer_builder.hpp>
11 namespace InferenceEngine {
14 * @brief Neural network builder API
19 * @brief This class defines the basic functional for layer builders
21 class INFERENCE_ENGINE_API_CLASS(LayerDecorator) {
24 * @brief The constructor creates layer builders with layer type and layer name
25 * @param type Layer type
26 * @param name Layer name
28 LayerDecorator(const std::string& type, const std::string& name);
30 * @brief The constructor creates layer builders from reference to generic layer builder
31 * @param layer pointer to generic layer builder
33 explicit LayerDecorator(const Layer::Ptr& layer);
35 * @brief The constructor creates layer builders from reference to generic layer builder
36 * @param layer constant pointer to generic layer builder
38 explicit LayerDecorator(const Layer::CPtr& layer);
40 * @brief The copy constructor
41 * @param rval Source builder
43 LayerDecorator(const LayerDecorator& rval);
46 * @brief Copy operator for LayerDecorator
48 * @return Layer builder
50 LayerDecorator& operator=(const LayerDecorator& rval);
53 * @brief Virtual destructor
55 virtual ~LayerDecorator() = default;
58 * @brief The operator creates generic builder
59 * @return Generic builder
61 virtual operator Layer() const;
64 * @brief The operator creates generic builder
65 * @return Pointer to generic builder
67 virtual operator Layer::Ptr();
70 * @brief The operator creates generic builder
71 * @return Constant pointer to generic builder
73 virtual operator Layer::CPtr() const;
76 * @brief Returns layer type
79 const std::string& getType() const;
81 * @brief Returns layer name
84 const std::string& getName() const;
87 Layer::Ptr& getLayer();
88 const Layer::CPtr getLayer() const;
89 void checkType(const std::string& type) const;
97 } // namespace Builder
99 } // namespace InferenceEngine