gobjref.hpp
1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html.
//
// Copyright (C) 2018 Intel Corporation
#ifndef OPENCV_GAPI_GOBJREF_HPP
#define OPENCV_GAPI_GOBJREF_HPP
#include "opencv2/gapi/util/variant.hpp"
#include "opencv2/gapi/garg.hpp"
namespace cv
{
namespace gimpl
{
// HostCtor was there, but then moved to public
// Redeclare here to avoid changing tons of code
using HostCtor = cv::detail::HostCtor;
using ConstVal = util::variant
< util::monostate
, cv::Scalar
, cv::detail::VectorRef
>;
struct RcDesc
{
int id; // id is unique but local to shape
GShape shape; // pair <id,shape> IS the unique ID
HostCtor ctor; // FIXME: is it really used here? Or in <Data>?
bool operator==(const RcDesc &rhs) const
{
// FIXME: ctor is not checked (should be?)
return id == rhs.id && shape == rhs.shape;
}
bool operator< (const RcDesc &rhs) const
{
return (id == rhs.id) ? shape < rhs.shape : id < rhs.id;
}
};
} // gimpl
namespace detail
{
template<> struct GTypeTraits<cv::gimpl::RcDesc>
{
static constexpr const ArgKind kind = ArgKind::GOBJREF;
};
}
} // cv
#endif // OPENCV_GAPI_GOBJREF_HPP