-// Copyright (C) 2018 Intel Corporation
+// Copyright (C) 2018-2019 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//
/**
* @brief This class defines the basic functional for layer builders
*/
-class INFERENCE_ENGINE_API_CLASS(LayerFragment) {
+class INFERENCE_ENGINE_API_CLASS(LayerDecorator) {
public:
/**
* @brief The constructor creates layer builders with layer type and layer name
* @param type Layer type
* @param name Layer name
*/
- LayerFragment(const std::string& type, const std::string& name);
+ LayerDecorator(const std::string& type, const std::string& name);
/**
* @brief The constructor creates layer builders from reference to generic layer builder
- * @param genLayer Generic layer builder
+ * @param layer pointer to generic layer builder
*/
- explicit LayerFragment(Layer& genLayer);
+ explicit LayerDecorator(const Layer::Ptr& layer);
+ /**
+ * @brief The constructor creates layer builders from reference to generic layer builder
+ * @param layer constant pointer to generic layer builder
+ */
+ explicit LayerDecorator(const Layer::CPtr& layer);
/**
* @brief The copy constructor
* @param rval Source builder
*/
- explicit LayerFragment(const LayerFragment& rval);
+ LayerDecorator(const LayerDecorator& rval);
/**
- * @brief Copy operator for LayerFragment
+ * @brief Copy operator for LayerDecorator
* @param rval
* @return Layer builder
*/
- LayerFragment& operator=(const LayerFragment& rval);
+ LayerDecorator& operator=(const LayerDecorator& rval);
/**
* @brief Virtual destructor
*/
- virtual ~LayerFragment() = default;
+ virtual ~LayerDecorator() = default;
/**
* @brief The operator creates generic builder
virtual operator Layer() const;
/**
+ * @brief The operator creates generic builder
+ * @return Pointer to generic builder
+ */
+ virtual operator Layer::Ptr();
+
+ /**
+ * @brief The operator creates generic builder
+ * @return Constant pointer to generic builder
+ */
+ virtual operator Layer::CPtr() const;
+
+ /**
* @brief Returns layer type
* @return Layer type
*/
const std::string& getName() const;
protected:
- const std::vector<size_t> uInts2size_t(const std::vector<unsigned int>& vector) const;
- Layer& getLayer() const;
+ Layer::Ptr& getLayer();
+ const Layer::CPtr getLayer() const;
+ void checkType(const std::string& type) const;
+
+ Layer::CPtr cLayer;
private:
- Layer layer;
- Layer& refLayer;
+ Layer::Ptr layer;
};
} // namespace Builder