Add a section of how to link IE with CMake project (#99)
[platform/upstream/dldt.git] / inference-engine / src / inference_engine / builders / ie_layer_fragment.cpp
1 // Copyright (C) 2018 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <builders/ie_layer_fragment.hpp>
6
7 #include <vector>
8 #include <string>
9
10 using namespace InferenceEngine;
11 using namespace details;
12
13 Builder::LayerFragment::LayerFragment(const std::string& type, const std::string& name): layer(type, name), refLayer(layer) {}
14
15 Builder::LayerFragment::LayerFragment(Layer& genLayer): layer("", ""), refLayer(genLayer) {}
16
17 Builder::LayerFragment &Builder::LayerFragment::operator=(const Builder::LayerFragment &rval) {
18     layer = rval.layer;
19     refLayer = rval.refLayer;
20     if (!layer.getType().empty() && !layer.getName().empty())
21         refLayer = layer;
22     return *this;
23 }
24
25 Builder::LayerFragment::LayerFragment(const Builder::LayerFragment & rval): LayerFragment("", "") {
26     *this = rval;
27 }
28
29 Builder::LayerFragment::operator Builder::Layer() const {
30     getLayer().validate();
31     return getLayer();
32 }
33
34 const std::string& Builder::LayerFragment::getType() const {
35     return getLayer().getType();
36 }
37 const std::string& Builder::LayerFragment::getName() const {
38     return getLayer().getName();
39 }
40
41 Builder::Layer& Builder::LayerFragment::getLayer() const {
42     return refLayer;
43 }
44
45 const std::vector<size_t> Builder::LayerFragment::uInts2size_t(const std::vector<unsigned int>& vector) const {
46     std::vector<size_t> newVector;
47     newVector.reserve(vector.size());
48     for (const auto& it : vector) {
49         newVector.push_back(it);
50     }
51     return newVector;
52 }