Path: blob/master/modules/gapi/src/api/gbackend_priv.hpp
16338 views
// This file is part of OpenCV project.1// It is subject to the license terms in the LICENSE file found in the top-level directory2// of this distribution and at http://opencv.org/license.html.3//4// Copyright (C) 2018 Intel Corporation567#ifndef GAPI_API_GBACKEND_PRIV_HPP8#define GAPI_API_GBACKEND_PRIV_HPP910#include <memory>11#include <unordered_set>1213#include <ade/graph.hpp>14#include <ade/passes/pass_base.hpp> // passes::PassContext15#include <ade/execution_engine/execution_engine.hpp> // ..SetupContext1617#include "opencv2/gapi/gcommon.hpp"18#include "opencv2/gapi/gkernel.hpp"1920namespace cv21{22namespace gimpl23{24class GBackend;25class GIslandExecutable;26} // namespace gimpl27} // namespace cv2829// GAPI_EXPORTS is here to make tests build on Windows30class GAPI_EXPORTS cv::gapi::GBackend::Priv31{32public:33using EPtr = std::unique_ptr<cv::gimpl::GIslandExecutable>;3435virtual void unpackKernel(ade::Graph &graph,36const ade::NodeHandle &op_node,37const GKernelImpl &impl);3839// FIXME: since backends are not passed to ADE anymore,40// there's no need in having both cv::gimpl::GBackend41// and cv::gapi::GBackend - these two things can be unified42// NOTE - nodes are guaranteed to be topologically sorted.43virtual EPtr compile(const ade::Graph &graph,44const GCompileArgs &args,45const std::vector<ade::NodeHandle> &nodes) const;4647virtual void addBackendPasses(ade::ExecutionEngineSetupContext &);4849virtual ~Priv() = default;50};5152#endif // GAPI_API_GBACKEND_PRIV_HPP535455