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