COMPMID-1639: Add GenerateProposals to the graph API

Change-Id: Icf813a0a87d4a07e180eafdb5fa916b2ea4028d2
diff --git a/arm_compute/graph/frontend/Layers.h b/arm_compute/graph/frontend/Layers.h
index fa0656d..56dcd88 100644
--- a/arm_compute/graph/frontend/Layers.h
+++ b/arm_compute/graph/frontend/Layers.h
@@ -531,6 +531,12 @@
     {
     }
 
+    /** Create layer and add to the given stream.
+     *
+     * @param[in] s Stream to add layer to.
+     *
+     * @return ID of the created node.
+     */
     NodeID create_layer(IStream &s) override
     {
         NodeParams  common_params = { name(), s.hints().target_hint };
@@ -549,6 +555,44 @@
     const QuantizationInfo        _out_quant_info;
 };
 
+/** Generate Proposals Layer */
+class GenerateProposalsLayer final : public ILayer
+{
+public:
+    /** Construct a generate proposals layer.
+     *
+     * @param[in] ss_scores  Graph sub-stream for the scores.
+     * @param[in] ss_deltas  Graph sub-stream for the deltas.
+     * @param[in] ss_anchors Graph sub-stream for the anchors.
+     * @param[in] info       Generate Proposals operation information.
+     */
+    GenerateProposalsLayer(SubStream &&ss_scores, SubStream &&ss_deltas, SubStream &&ss_anchors, GenerateProposalsInfo info)
+        : _ss_scores(std::move(ss_scores)), _ss_deltas(std::move(ss_deltas)), _ss_anchors(std::move(ss_anchors)), _info(info)
+    {
+    }
+
+    /** Create layer and add to the given stream.
+     *
+     * @param[in] s Stream to add layer to.
+     *
+     * @return ID of the created node.
+     */
+    NodeID create_layer(IStream &s) override
+    {
+        NodeParams  common_params = { name(), s.hints().target_hint };
+        NodeIdxPair scores        = { _ss_scores.tail_node(), 0 };
+        NodeIdxPair deltas        = { _ss_deltas.tail_node(), 0 };
+        NodeIdxPair anchors       = { _ss_anchors.tail_node(), 0 };
+        return GraphBuilder::add_generate_proposals_node(s.graph(), common_params, scores, deltas, anchors, _info);
+    }
+
+private:
+    SubStream             _ss_scores;
+    SubStream             _ss_deltas;
+    SubStream             _ss_anchors;
+    GenerateProposalsInfo _info;
+};
+
 /** Normalization Layer */
 class NormalizationLayer final : public ILayer
 {