ie_layer_fragment.hpp
1 // Copyright (C) 2018 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 namespace Builder {
13 
14 /**
15  * @brief This class defines the basic functional for layer builders
16  */
17 class INFERENCE_ENGINE_API_CLASS(LayerFragment) {
18 public:
19  /**
20  * @brief The constructor creates layer builders with layer type and layer name
21  * @param type Layer type
22  * @param name Layer name
23  */
24  LayerFragment(const std::string& type, const std::string& name);
25  /**
26  * @brief The constructor creates layer builders from reference to generic layer builder
27  * @param genLayer Generic layer builder
28  */
29  explicit LayerFragment(Layer& genLayer);
30  /**
31  * @brief The copy constructor
32  * @param rval Source builder
33  */
34  explicit LayerFragment(const LayerFragment& rval);
35 
36  /**
37  * @brief Copy operator for LayerFragment
38  * @param rval
39  * @return Layer builder
40  */
41  LayerFragment& operator=(const LayerFragment& rval);
42 
43  /**
44  * @brief Virtual destructor
45  */
46  virtual ~LayerFragment() = default;
47 
48  /**
49  * @brief The operator creates generic builder
50  * @return Generic builder
51  */
52  virtual operator Layer() const;
53 
54  /**
55  * @brief Returns layer type
56  * @return Layer type
57  */
58  const std::string& getType() const;
59  /**
60  * @brief Returns layer name
61  * @return Layer name
62  */
63  const std::string& getName() const;
64 
65 protected:
66  const std::vector<size_t> uInts2size_t(const std::vector<unsigned int>& vector) const;
67  Layer& getLayer() const;
68 
69 private:
70  Layer layer;
71  Layer& refLayer;
72 };
73 
74 } // namespace Builder
75 
76 } // namespace InferenceEngine
Definition: ie_argmax_layer.hpp:11