1 /*
2 * This file is auto-generated. DO NOT MODIFY.
3 * Using: out/host/linux-x86/bin/aidl-cpp -dout/soong/.temp/sbox/030bdc68cd51619777b234b16aba4350324e44b8/out/android/hardware/camera2/CameraMetadataInfo.cpp.d --ninja -Iframeworks/av/camera/aidl -Iframeworks/native/aidl/gui -Iframeworks/native/libs/permission/aidl -Ihardware/interfaces/common/fmq/aidl -Ihardware/interfaces/common/aidl -t --min_sdk_version=platform_apis -Iframeworks/av/camera/aidl/ frameworks/av/camera/aidl/android/hardware/camera2/CameraMetadataInfo.aidl out/soong/.temp/sbox/030bdc68cd51619777b234b16aba4350324e44b8/out out/soong/.temp/sbox/030bdc68cd51619777b234b16aba4350324e44b8/out/android/hardware/camera2/CameraMetadataInfo.cpp
4 *
5 * DO NOT CHECK THIS FILE INTO A CODE TREE (e.g. git, etc..).
6 * ALWAYS GENERATE THIS FILE FROM UPDATED AIDL COMPILER
7 * AS A BUILD INTERMEDIATE ONLY. THIS IS NOT SOURCE CODE.
8 */
9 #pragma once
10
11 #include <android/binder_to_string.h>
12 #include <array>
13 #include <binder/Enums.h>
14 #include <binder/Parcel.h>
15 #include <binder/Status.h>
16 #include <camera/CameraMetadata.h>
17 #include <cassert>
18 #include <cstdint>
19 #include <string>
20 #include <type_traits>
21 #include <utility>
22 #include <utils/String16.h>
23 #include <variant>
24
25 #ifndef __BIONIC__
26 #define __assert2(a,b,c,d) ((void)0)
27 #endif
28
29 namespace android {
30 namespace hardware {
31 namespace camera2 {
32 class LIBBINDER_EXPORTED CameraMetadataInfo : public ::android::Parcelable {
33 public:
34 enum class Tag : int32_t {
35 fmqSize = 0,
36 metadata = 1,
37 };
38 // Expose tag symbols for legacy code
39 static const inline Tag fmqSize = Tag::fmqSize;
40 static const inline Tag metadata = Tag::metadata;
41
42 template<typename _Tp>
43 static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, CameraMetadataInfo>;
44
CameraMetadataInfo()45 CameraMetadataInfo() : _value(std::in_place_index<static_cast<size_t>(fmqSize)>, int64_t(0L)) { }
46
47 template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
48 // NOLINTNEXTLINE(google-explicit-constructor)
CameraMetadataInfo(_Tp && _arg)49 constexpr CameraMetadataInfo(_Tp&& _arg)
50 : _value(std::forward<_Tp>(_arg)) {}
51
52 template <size_t _Np, typename... _Tp>
CameraMetadataInfo(std::in_place_index_t<_Np>,_Tp &&..._args)53 constexpr explicit CameraMetadataInfo(std::in_place_index_t<_Np>, _Tp&&... _args)
54 : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
55
56 template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)57 static CameraMetadataInfo make(_Tp&&... _args) {
58 return CameraMetadataInfo(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
59 }
60
61 template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)62 static CameraMetadataInfo make(std::initializer_list<_Tp> _il, _Up&&... _args) {
63 return CameraMetadataInfo(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
64 }
65
getTag()66 Tag getTag() const {
67 return static_cast<Tag>(_value.index());
68 }
69
70 template <Tag _tag>
get()71 const auto& get() const {
72 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
73 return std::get<static_cast<size_t>(_tag)>(_value);
74 }
75
76 template <Tag _tag>
get()77 auto& get() {
78 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
79 return std::get<static_cast<size_t>(_tag)>(_value);
80 }
81
82 template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)83 void set(_Tp&&... _args) {
84 _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
85 }
86
87 inline bool operator==(const CameraMetadataInfo& _rhs) const {
88 return _value == _rhs._value;
89 }
90 inline bool operator<(const CameraMetadataInfo& _rhs) const {
91 return _value < _rhs._value;
92 }
93 inline bool operator!=(const CameraMetadataInfo& _rhs) const {
94 return !(*this == _rhs);
95 }
96 inline bool operator>(const CameraMetadataInfo& _rhs) const {
97 return _rhs < *this;
98 }
99 inline bool operator>=(const CameraMetadataInfo& _rhs) const {
100 return !(*this < _rhs);
101 }
102 inline bool operator<=(const CameraMetadataInfo& _rhs) const {
103 return !(_rhs < *this);
104 }
105
106 ::android::status_t readFromParcel(const ::android::Parcel* _aidl_parcel) final;
107 ::android::status_t writeToParcel(::android::Parcel* _aidl_parcel) const final;
getParcelableDescriptor()108 static const ::android::String16& getParcelableDescriptor() {
109 static const ::android::StaticString16 DESCRIPTOR (u"android.hardware.camera2.CameraMetadataInfo");
110 return DESCRIPTOR;
111 }
toString()112 inline std::string toString() const {
113 std::ostringstream os;
114 os << "CameraMetadataInfo{";
115 switch (getTag()) {
116 case fmqSize: os << "fmqSize: " << ::android::internal::ToString(get<fmqSize>()); break;
117 case metadata: os << "metadata: " << ::android::internal::ToString(get<metadata>()); break;
118 }
119 os << "}";
120 return os.str();
121 }
122 private:
123 std::variant<int64_t, ::android::hardware::camera2::impl::CameraMetadataNative> _value;
124 }; // class CameraMetadataInfo
125 } // namespace camera2
126 } // namespace hardware
127 } // namespace android
128 namespace android {
129 namespace hardware {
130 namespace camera2 {
toString(CameraMetadataInfo::Tag val)131 [[nodiscard]] static inline std::string toString(CameraMetadataInfo::Tag val) {
132 switch(val) {
133 case CameraMetadataInfo::Tag::fmqSize:
134 return "fmqSize";
135 case CameraMetadataInfo::Tag::metadata:
136 return "metadata";
137 default:
138 return std::to_string(static_cast<int32_t>(val));
139 }
140 }
141 } // namespace camera2
142 } // namespace hardware
143 } // namespace android
144 namespace android {
145 namespace internal {
146 #pragma clang diagnostic push
147 #pragma clang diagnostic ignored "-Wc++17-extensions"
148 template <>
149 constexpr inline std::array<::android::hardware::camera2::CameraMetadataInfo::Tag, 2> enum_values<::android::hardware::camera2::CameraMetadataInfo::Tag> = {
150 ::android::hardware::camera2::CameraMetadataInfo::Tag::fmqSize,
151 ::android::hardware::camera2::CameraMetadataInfo::Tag::metadata,
152 };
153 #pragma clang diagnostic pop
154 } // namespace internal
155 } // namespace android
156