ie_layer_decorator.hpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4 
5 #pragma once
6 
7 #include <builders/ie_layer_builder.hpp>
8 #include <string>
9 #include <vector>
10 
11 namespace InferenceEngine {
12 
13 /**
14  * @brief Neural network builder API
15  */
16 namespace Builder {
17 
18 /**
19  * @deprecated Use ngraph API instead.
20  * @brief This class defines the basic functional for layer builders
21  */
22 class INFERENCE_ENGINE_NN_BUILDER_API_CLASS(LayerDecorator) {
23 public:
24  /**
25  * @brief The constructor creates layer builders with layer type and layer name
26  * @param type Layer type
27  * @param name Layer name
28  */
29  LayerDecorator(const std::string& type, const std::string& name);
30  /**
31  * @brief The constructor creates layer builders from reference to generic layer builder
32  * @param layer pointer to generic layer builder
33  */
34 
35  IE_SUPPRESS_DEPRECATED_START
36 
37  explicit LayerDecorator(const Layer::Ptr& layer);
38  /**
39  * @brief The constructor creates layer builders from reference to generic layer builder
40  * @param layer constant pointer to generic layer builder
41  */
42  explicit LayerDecorator(const Layer::CPtr& layer);
43 
44  /**
45  * @brief The copy constructor
46  * @param rval Source builder
47  */
48  LayerDecorator(const LayerDecorator& rval);
49 
50  /**
51  * @brief Copy operator for LayerDecorator
52  * @param rval
53  * @return Layer builder
54  */
55  LayerDecorator& operator=(const LayerDecorator& rval);
56 
57  /**
58  * @brief Virtual destructor
59  */
60  virtual ~LayerDecorator() = default;
61 
62  /**
63  * @brief The operator creates generic builder
64  * @return Generic builder
65  */
66  virtual operator Layer() const;
67 
68  /**
69  * @brief The operator creates generic builder
70  * @return Pointer to generic builder
71  */
72  virtual operator Layer::Ptr();
73 
74  /**
75  * @brief The operator creates generic builder
76  * @return Constant pointer to generic builder
77  */
78  virtual operator Layer::CPtr() const;
79 
80  IE_SUPPRESS_DEPRECATED_END
81 
82  /**
83  * @brief Returns layer type
84  * @return Layer type
85  */
86  const std::string& getType() const;
87  /**
88  * @brief Returns layer name
89  * @return Layer name
90  */
91  const std::string& getName() const;
92 
93 protected:
94  IE_SUPPRESS_DEPRECATED_START
95 
96  Layer::Ptr& getLayer();
97  const Layer::CPtr getLayer() const;
98  void checkType(const std::string& type) const;
99 
100  Layer::CPtr cLayer;
101 
102 private:
103  Layer::Ptr layer;
104 
105  IE_SUPPRESS_DEPRECATED_END
106 };
107 
108 } // namespace Builder
109 
110 } // namespace InferenceEngine
Inference Engine API.
Definition: ie_argmax_layer.hpp:11