1 /*
2 * This file is auto-generated. DO NOT MODIFY.
3 * Using: out/host/linux-x86/bin/aidl --lang=ndk -Weverything -Wno-missing-permission-annotation -t --min_sdk_version 31 --ninja -d out/soong/.intermediates/art/artd/binder/artd-aidl-ndk-source/gen/staging/com/android/server/art/ProfilePath.cpp.d -h out/soong/.intermediates/art/artd/binder/artd-aidl-ndk-source/gen/include/staging -o out/soong/.intermediates/art/artd/binder/artd-aidl-ndk-source/gen/staging -Nart/artd/binder art/artd/binder/com/android/server/art/ProfilePath.aidl
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 <array>
12 #include <cassert>
13 #include <cstdint>
14 #include <memory>
15 #include <optional>
16 #include <string>
17 #include <type_traits>
18 #include <utility>
19 #include <variant>
20 #include <vector>
21 #include <android/binder_enums.h>
22 #include <android/binder_interface_utils.h>
23 #include <android/binder_parcelable_utils.h>
24 #include <android/binder_to_string.h>
25 #include <aidl/com/android/server/art/DexMetadataPath.h>
26 #include <aidl/com/android/server/art/ProfilePath.h>
27 #ifdef BINDER_STABILITY_SUPPORT
28 #include <android/binder_stability.h>
29 #endif // BINDER_STABILITY_SUPPORT
30
31 #ifndef __BIONIC__
32 #define __assert2(a,b,c,d) ((void)0)
33 #endif
34
35 namespace aidl::com::android::server::art {
36 class DexMetadataPath;
37 } // namespace aidl::com::android::server::art
38 namespace aidl {
39 namespace com {
40 namespace android {
41 namespace server {
42 namespace art {
43 class ProfilePath {
44 public:
45 typedef std::false_type fixed_size;
46 static const char* descriptor;
47
48 class PrimaryRefProfilePath {
49 public:
50 typedef std::false_type fixed_size;
51 static const char* descriptor;
52
53 std::string packageName;
54 std::string profileName;
55 bool isPreReboot = false;
56
57 binder_status_t readFromParcel(const AParcel* parcel);
58 binder_status_t writeToParcel(AParcel* parcel) const;
59
60 inline bool operator==(const PrimaryRefProfilePath& _rhs) const {
61 return std::tie(packageName, profileName, isPreReboot) == std::tie(_rhs.packageName, _rhs.profileName, _rhs.isPreReboot);
62 }
63 inline bool operator<(const PrimaryRefProfilePath& _rhs) const {
64 return std::tie(packageName, profileName, isPreReboot) < std::tie(_rhs.packageName, _rhs.profileName, _rhs.isPreReboot);
65 }
66 inline bool operator!=(const PrimaryRefProfilePath& _rhs) const {
67 return !(*this == _rhs);
68 }
69 inline bool operator>(const PrimaryRefProfilePath& _rhs) const {
70 return _rhs < *this;
71 }
72 inline bool operator>=(const PrimaryRefProfilePath& _rhs) const {
73 return !(*this < _rhs);
74 }
75 inline bool operator<=(const PrimaryRefProfilePath& _rhs) const {
76 return !(_rhs < *this);
77 }
78
79 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_LOCAL;
toString()80 inline std::string toString() const {
81 std::ostringstream _aidl_os;
82 _aidl_os << "PrimaryRefProfilePath{";
83 _aidl_os << "packageName: " << ::android::internal::ToString(packageName);
84 _aidl_os << ", profileName: " << ::android::internal::ToString(profileName);
85 _aidl_os << ", isPreReboot: " << ::android::internal::ToString(isPreReboot);
86 _aidl_os << "}";
87 return _aidl_os.str();
88 }
89 };
90 class PrebuiltProfilePath {
91 public:
92 typedef std::false_type fixed_size;
93 static const char* descriptor;
94
95 std::string dexPath;
96
97 binder_status_t readFromParcel(const AParcel* parcel);
98 binder_status_t writeToParcel(AParcel* parcel) const;
99
100 inline bool operator==(const PrebuiltProfilePath& _rhs) const {
101 return std::tie(dexPath) == std::tie(_rhs.dexPath);
102 }
103 inline bool operator<(const PrebuiltProfilePath& _rhs) const {
104 return std::tie(dexPath) < std::tie(_rhs.dexPath);
105 }
106 inline bool operator!=(const PrebuiltProfilePath& _rhs) const {
107 return !(*this == _rhs);
108 }
109 inline bool operator>(const PrebuiltProfilePath& _rhs) const {
110 return _rhs < *this;
111 }
112 inline bool operator>=(const PrebuiltProfilePath& _rhs) const {
113 return !(*this < _rhs);
114 }
115 inline bool operator<=(const PrebuiltProfilePath& _rhs) const {
116 return !(_rhs < *this);
117 }
118
119 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_LOCAL;
toString()120 inline std::string toString() const {
121 std::ostringstream _aidl_os;
122 _aidl_os << "PrebuiltProfilePath{";
123 _aidl_os << "dexPath: " << ::android::internal::ToString(dexPath);
124 _aidl_os << "}";
125 return _aidl_os.str();
126 }
127 };
128 class PrimaryCurProfilePath {
129 public:
130 typedef std::false_type fixed_size;
131 static const char* descriptor;
132
133 int32_t userId = 0;
134 std::string packageName;
135 std::string profileName;
136
137 binder_status_t readFromParcel(const AParcel* parcel);
138 binder_status_t writeToParcel(AParcel* parcel) const;
139
140 inline bool operator==(const PrimaryCurProfilePath& _rhs) const {
141 return std::tie(userId, packageName, profileName) == std::tie(_rhs.userId, _rhs.packageName, _rhs.profileName);
142 }
143 inline bool operator<(const PrimaryCurProfilePath& _rhs) const {
144 return std::tie(userId, packageName, profileName) < std::tie(_rhs.userId, _rhs.packageName, _rhs.profileName);
145 }
146 inline bool operator!=(const PrimaryCurProfilePath& _rhs) const {
147 return !(*this == _rhs);
148 }
149 inline bool operator>(const PrimaryCurProfilePath& _rhs) const {
150 return _rhs < *this;
151 }
152 inline bool operator>=(const PrimaryCurProfilePath& _rhs) const {
153 return !(*this < _rhs);
154 }
155 inline bool operator<=(const PrimaryCurProfilePath& _rhs) const {
156 return !(_rhs < *this);
157 }
158
159 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_LOCAL;
toString()160 inline std::string toString() const {
161 std::ostringstream _aidl_os;
162 _aidl_os << "PrimaryCurProfilePath{";
163 _aidl_os << "userId: " << ::android::internal::ToString(userId);
164 _aidl_os << ", packageName: " << ::android::internal::ToString(packageName);
165 _aidl_os << ", profileName: " << ::android::internal::ToString(profileName);
166 _aidl_os << "}";
167 return _aidl_os.str();
168 }
169 };
170 class SecondaryRefProfilePath {
171 public:
172 typedef std::false_type fixed_size;
173 static const char* descriptor;
174
175 std::string dexPath;
176 bool isPreReboot = false;
177
178 binder_status_t readFromParcel(const AParcel* parcel);
179 binder_status_t writeToParcel(AParcel* parcel) const;
180
181 inline bool operator==(const SecondaryRefProfilePath& _rhs) const {
182 return std::tie(dexPath, isPreReboot) == std::tie(_rhs.dexPath, _rhs.isPreReboot);
183 }
184 inline bool operator<(const SecondaryRefProfilePath& _rhs) const {
185 return std::tie(dexPath, isPreReboot) < std::tie(_rhs.dexPath, _rhs.isPreReboot);
186 }
187 inline bool operator!=(const SecondaryRefProfilePath& _rhs) const {
188 return !(*this == _rhs);
189 }
190 inline bool operator>(const SecondaryRefProfilePath& _rhs) const {
191 return _rhs < *this;
192 }
193 inline bool operator>=(const SecondaryRefProfilePath& _rhs) const {
194 return !(*this < _rhs);
195 }
196 inline bool operator<=(const SecondaryRefProfilePath& _rhs) const {
197 return !(_rhs < *this);
198 }
199
200 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_LOCAL;
toString()201 inline std::string toString() const {
202 std::ostringstream _aidl_os;
203 _aidl_os << "SecondaryRefProfilePath{";
204 _aidl_os << "dexPath: " << ::android::internal::ToString(dexPath);
205 _aidl_os << ", isPreReboot: " << ::android::internal::ToString(isPreReboot);
206 _aidl_os << "}";
207 return _aidl_os.str();
208 }
209 };
210 class SecondaryCurProfilePath {
211 public:
212 typedef std::false_type fixed_size;
213 static const char* descriptor;
214
215 std::string dexPath;
216
217 binder_status_t readFromParcel(const AParcel* parcel);
218 binder_status_t writeToParcel(AParcel* parcel) const;
219
220 inline bool operator==(const SecondaryCurProfilePath& _rhs) const {
221 return std::tie(dexPath) == std::tie(_rhs.dexPath);
222 }
223 inline bool operator<(const SecondaryCurProfilePath& _rhs) const {
224 return std::tie(dexPath) < std::tie(_rhs.dexPath);
225 }
226 inline bool operator!=(const SecondaryCurProfilePath& _rhs) const {
227 return !(*this == _rhs);
228 }
229 inline bool operator>(const SecondaryCurProfilePath& _rhs) const {
230 return _rhs < *this;
231 }
232 inline bool operator>=(const SecondaryCurProfilePath& _rhs) const {
233 return !(*this < _rhs);
234 }
235 inline bool operator<=(const SecondaryCurProfilePath& _rhs) const {
236 return !(_rhs < *this);
237 }
238
239 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_LOCAL;
toString()240 inline std::string toString() const {
241 std::ostringstream _aidl_os;
242 _aidl_os << "SecondaryCurProfilePath{";
243 _aidl_os << "dexPath: " << ::android::internal::ToString(dexPath);
244 _aidl_os << "}";
245 return _aidl_os.str();
246 }
247 };
248 class WritableProfilePath {
249 public:
250 typedef std::false_type fixed_size;
251 static const char* descriptor;
252
253 enum class Tag : int32_t {
254 forPrimary = 0,
255 forSecondary = 1,
256 };
257
258 // Expose tag symbols for legacy code
259 static const inline Tag forPrimary = Tag::forPrimary;
260 static const inline Tag forSecondary = Tag::forSecondary;
261
262 template<typename _Tp>
263 static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, WritableProfilePath>;
264
WritableProfilePath()265 WritableProfilePath() : _value(std::in_place_index<static_cast<size_t>(forPrimary)>, ::aidl::com::android::server::art::ProfilePath::PrimaryRefProfilePath()) { }
266
267 template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
268 // NOLINTNEXTLINE(google-explicit-constructor)
WritableProfilePath(_Tp && _arg)269 constexpr WritableProfilePath(_Tp&& _arg)
270 : _value(std::forward<_Tp>(_arg)) {}
271
272 template <size_t _Np, typename... _Tp>
WritableProfilePath(std::in_place_index_t<_Np>,_Tp &&..._args)273 constexpr explicit WritableProfilePath(std::in_place_index_t<_Np>, _Tp&&... _args)
274 : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
275
276 template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)277 static WritableProfilePath make(_Tp&&... _args) {
278 return WritableProfilePath(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
279 }
280
281 template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)282 static WritableProfilePath make(std::initializer_list<_Tp> _il, _Up&&... _args) {
283 return WritableProfilePath(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
284 }
285
getTag()286 Tag getTag() const {
287 return static_cast<Tag>(_value.index());
288 }
289
290 template <Tag _tag>
get()291 const auto& get() const {
292 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
293 return std::get<static_cast<size_t>(_tag)>(_value);
294 }
295
296 template <Tag _tag>
get()297 auto& get() {
298 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
299 return std::get<static_cast<size_t>(_tag)>(_value);
300 }
301
302 template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)303 void set(_Tp&&... _args) {
304 _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
305 }
306
307 binder_status_t readFromParcel(const AParcel* _parcel);
308 binder_status_t writeToParcel(AParcel* _parcel) const;
309
310 inline bool operator==(const WritableProfilePath& _rhs) const {
311 return _value == _rhs._value;
312 }
313 inline bool operator<(const WritableProfilePath& _rhs) const {
314 return _value < _rhs._value;
315 }
316 inline bool operator!=(const WritableProfilePath& _rhs) const {
317 return !(*this == _rhs);
318 }
319 inline bool operator>(const WritableProfilePath& _rhs) const {
320 return _rhs < *this;
321 }
322 inline bool operator>=(const WritableProfilePath& _rhs) const {
323 return !(*this < _rhs);
324 }
325 inline bool operator<=(const WritableProfilePath& _rhs) const {
326 return !(_rhs < *this);
327 }
328
329 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_LOCAL;
toString()330 inline std::string toString() const {
331 std::ostringstream os;
332 os << "WritableProfilePath{";
333 switch (getTag()) {
334 case forPrimary: os << "forPrimary: " << ::android::internal::ToString(get<forPrimary>()); break;
335 case forSecondary: os << "forSecondary: " << ::android::internal::ToString(get<forSecondary>()); break;
336 }
337 os << "}";
338 return os.str();
339 }
340 private:
341 std::variant<::aidl::com::android::server::art::ProfilePath::PrimaryRefProfilePath, ::aidl::com::android::server::art::ProfilePath::SecondaryRefProfilePath> _value;
342 };
343 class TmpProfilePath {
344 public:
345 typedef std::false_type fixed_size;
346 static const char* descriptor;
347
348 ::aidl::com::android::server::art::ProfilePath::WritableProfilePath finalPath;
349 std::string id;
350 std::string tmpPath;
351
352 binder_status_t readFromParcel(const AParcel* parcel);
353 binder_status_t writeToParcel(AParcel* parcel) const;
354
355 inline bool operator==(const TmpProfilePath& _rhs) const {
356 return std::tie(finalPath, id, tmpPath) == std::tie(_rhs.finalPath, _rhs.id, _rhs.tmpPath);
357 }
358 inline bool operator<(const TmpProfilePath& _rhs) const {
359 return std::tie(finalPath, id, tmpPath) < std::tie(_rhs.finalPath, _rhs.id, _rhs.tmpPath);
360 }
361 inline bool operator!=(const TmpProfilePath& _rhs) const {
362 return !(*this == _rhs);
363 }
364 inline bool operator>(const TmpProfilePath& _rhs) const {
365 return _rhs < *this;
366 }
367 inline bool operator>=(const TmpProfilePath& _rhs) const {
368 return !(*this < _rhs);
369 }
370 inline bool operator<=(const TmpProfilePath& _rhs) const {
371 return !(_rhs < *this);
372 }
373
374 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_LOCAL;
toString()375 inline std::string toString() const {
376 std::ostringstream _aidl_os;
377 _aidl_os << "TmpProfilePath{";
378 _aidl_os << "finalPath: " << ::android::internal::ToString(finalPath);
379 _aidl_os << ", id: " << ::android::internal::ToString(id);
380 _aidl_os << ", tmpPath: " << ::android::internal::ToString(tmpPath);
381 _aidl_os << "}";
382 return _aidl_os.str();
383 }
384 };
385 enum class Tag : int32_t {
386 primaryRefProfilePath = 0,
387 prebuiltProfilePath = 1,
388 primaryCurProfilePath = 2,
389 secondaryRefProfilePath = 3,
390 secondaryCurProfilePath = 4,
391 tmpProfilePath = 5,
392 dexMetadataPath = 6,
393 };
394
395 // Expose tag symbols for legacy code
396 static const inline Tag primaryRefProfilePath = Tag::primaryRefProfilePath;
397 static const inline Tag prebuiltProfilePath = Tag::prebuiltProfilePath;
398 static const inline Tag primaryCurProfilePath = Tag::primaryCurProfilePath;
399 static const inline Tag secondaryRefProfilePath = Tag::secondaryRefProfilePath;
400 static const inline Tag secondaryCurProfilePath = Tag::secondaryCurProfilePath;
401 static const inline Tag tmpProfilePath = Tag::tmpProfilePath;
402 static const inline Tag dexMetadataPath = Tag::dexMetadataPath;
403
404 template<typename _Tp>
405 static constexpr bool _not_self = !std::is_same_v<std::remove_cv_t<std::remove_reference_t<_Tp>>, ProfilePath>;
406
ProfilePath()407 ProfilePath() : _value(std::in_place_index<static_cast<size_t>(primaryRefProfilePath)>, ::aidl::com::android::server::art::ProfilePath::PrimaryRefProfilePath()) { }
408
409 template <typename _Tp, typename = std::enable_if_t<_not_self<_Tp>>>
410 // NOLINTNEXTLINE(google-explicit-constructor)
ProfilePath(_Tp && _arg)411 constexpr ProfilePath(_Tp&& _arg)
412 : _value(std::forward<_Tp>(_arg)) {}
413
414 template <size_t _Np, typename... _Tp>
ProfilePath(std::in_place_index_t<_Np>,_Tp &&..._args)415 constexpr explicit ProfilePath(std::in_place_index_t<_Np>, _Tp&&... _args)
416 : _value(std::in_place_index<_Np>, std::forward<_Tp>(_args)...) {}
417
418 template <Tag _tag, typename... _Tp>
make(_Tp &&..._args)419 static ProfilePath make(_Tp&&... _args) {
420 return ProfilePath(std::in_place_index<static_cast<size_t>(_tag)>, std::forward<_Tp>(_args)...);
421 }
422
423 template <Tag _tag, typename _Tp, typename... _Up>
make(std::initializer_list<_Tp> _il,_Up &&..._args)424 static ProfilePath make(std::initializer_list<_Tp> _il, _Up&&... _args) {
425 return ProfilePath(std::in_place_index<static_cast<size_t>(_tag)>, std::move(_il), std::forward<_Up>(_args)...);
426 }
427
getTag()428 Tag getTag() const {
429 return static_cast<Tag>(_value.index());
430 }
431
432 template <Tag _tag>
get()433 const auto& get() const {
434 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
435 return std::get<static_cast<size_t>(_tag)>(_value);
436 }
437
438 template <Tag _tag>
get()439 auto& get() {
440 if (getTag() != _tag) { __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "bad access: a wrong tag"); }
441 return std::get<static_cast<size_t>(_tag)>(_value);
442 }
443
444 template <Tag _tag, typename... _Tp>
set(_Tp &&..._args)445 void set(_Tp&&... _args) {
446 _value.emplace<static_cast<size_t>(_tag)>(std::forward<_Tp>(_args)...);
447 }
448
449 binder_status_t readFromParcel(const AParcel* _parcel);
450 binder_status_t writeToParcel(AParcel* _parcel) const;
451
452 inline bool operator==(const ProfilePath& _rhs) const {
453 return _value == _rhs._value;
454 }
455 inline bool operator<(const ProfilePath& _rhs) const {
456 return _value < _rhs._value;
457 }
458 inline bool operator!=(const ProfilePath& _rhs) const {
459 return !(*this == _rhs);
460 }
461 inline bool operator>(const ProfilePath& _rhs) const {
462 return _rhs < *this;
463 }
464 inline bool operator>=(const ProfilePath& _rhs) const {
465 return !(*this < _rhs);
466 }
467 inline bool operator<=(const ProfilePath& _rhs) const {
468 return !(_rhs < *this);
469 }
470
471 static const ::ndk::parcelable_stability_t _aidl_stability = ::ndk::STABILITY_LOCAL;
toString()472 inline std::string toString() const {
473 std::ostringstream os;
474 os << "ProfilePath{";
475 switch (getTag()) {
476 case primaryRefProfilePath: os << "primaryRefProfilePath: " << ::android::internal::ToString(get<primaryRefProfilePath>()); break;
477 case prebuiltProfilePath: os << "prebuiltProfilePath: " << ::android::internal::ToString(get<prebuiltProfilePath>()); break;
478 case primaryCurProfilePath: os << "primaryCurProfilePath: " << ::android::internal::ToString(get<primaryCurProfilePath>()); break;
479 case secondaryRefProfilePath: os << "secondaryRefProfilePath: " << ::android::internal::ToString(get<secondaryRefProfilePath>()); break;
480 case secondaryCurProfilePath: os << "secondaryCurProfilePath: " << ::android::internal::ToString(get<secondaryCurProfilePath>()); break;
481 case tmpProfilePath: os << "tmpProfilePath: " << ::android::internal::ToString(get<tmpProfilePath>()); break;
482 case dexMetadataPath: os << "dexMetadataPath: " << ::android::internal::ToString(get<dexMetadataPath>()); break;
483 }
484 os << "}";
485 return os.str();
486 }
487 private:
488 std::variant<::aidl::com::android::server::art::ProfilePath::PrimaryRefProfilePath, ::aidl::com::android::server::art::ProfilePath::PrebuiltProfilePath, ::aidl::com::android::server::art::ProfilePath::PrimaryCurProfilePath, ::aidl::com::android::server::art::ProfilePath::SecondaryRefProfilePath, ::aidl::com::android::server::art::ProfilePath::SecondaryCurProfilePath, ::aidl::com::android::server::art::ProfilePath::TmpProfilePath, ::aidl::com::android::server::art::DexMetadataPath> _value;
489 };
490 } // namespace art
491 } // namespace server
492 } // namespace android
493 } // namespace com
494 } // namespace aidl
495 namespace aidl {
496 namespace com {
497 namespace android {
498 namespace server {
499 namespace art {
toString(ProfilePath::WritableProfilePath::Tag val)500 [[nodiscard]] static inline std::string toString(ProfilePath::WritableProfilePath::Tag val) {
501 switch(val) {
502 case ProfilePath::WritableProfilePath::Tag::forPrimary:
503 return "forPrimary";
504 case ProfilePath::WritableProfilePath::Tag::forSecondary:
505 return "forSecondary";
506 default:
507 return std::to_string(static_cast<int32_t>(val));
508 }
509 }
510 } // namespace art
511 } // namespace server
512 } // namespace android
513 } // namespace com
514 } // namespace aidl
515 namespace ndk {
516 namespace internal {
517 #pragma clang diagnostic push
518 #pragma clang diagnostic ignored "-Wc++17-extensions"
519 template <>
520 constexpr inline std::array<aidl::com::android::server::art::ProfilePath::WritableProfilePath::Tag, 2> enum_values<aidl::com::android::server::art::ProfilePath::WritableProfilePath::Tag> = {
521 aidl::com::android::server::art::ProfilePath::WritableProfilePath::Tag::forPrimary,
522 aidl::com::android::server::art::ProfilePath::WritableProfilePath::Tag::forSecondary,
523 };
524 #pragma clang diagnostic pop
525 } // namespace internal
526 } // namespace ndk
527 namespace aidl {
528 namespace com {
529 namespace android {
530 namespace server {
531 namespace art {
toString(ProfilePath::Tag val)532 [[nodiscard]] static inline std::string toString(ProfilePath::Tag val) {
533 switch(val) {
534 case ProfilePath::Tag::primaryRefProfilePath:
535 return "primaryRefProfilePath";
536 case ProfilePath::Tag::prebuiltProfilePath:
537 return "prebuiltProfilePath";
538 case ProfilePath::Tag::primaryCurProfilePath:
539 return "primaryCurProfilePath";
540 case ProfilePath::Tag::secondaryRefProfilePath:
541 return "secondaryRefProfilePath";
542 case ProfilePath::Tag::secondaryCurProfilePath:
543 return "secondaryCurProfilePath";
544 case ProfilePath::Tag::tmpProfilePath:
545 return "tmpProfilePath";
546 case ProfilePath::Tag::dexMetadataPath:
547 return "dexMetadataPath";
548 default:
549 return std::to_string(static_cast<int32_t>(val));
550 }
551 }
552 } // namespace art
553 } // namespace server
554 } // namespace android
555 } // namespace com
556 } // namespace aidl
557 namespace ndk {
558 namespace internal {
559 #pragma clang diagnostic push
560 #pragma clang diagnostic ignored "-Wc++17-extensions"
561 template <>
562 constexpr inline std::array<aidl::com::android::server::art::ProfilePath::Tag, 7> enum_values<aidl::com::android::server::art::ProfilePath::Tag> = {
563 aidl::com::android::server::art::ProfilePath::Tag::primaryRefProfilePath,
564 aidl::com::android::server::art::ProfilePath::Tag::prebuiltProfilePath,
565 aidl::com::android::server::art::ProfilePath::Tag::primaryCurProfilePath,
566 aidl::com::android::server::art::ProfilePath::Tag::secondaryRefProfilePath,
567 aidl::com::android::server::art::ProfilePath::Tag::secondaryCurProfilePath,
568 aidl::com::android::server::art::ProfilePath::Tag::tmpProfilePath,
569 aidl::com::android::server::art::ProfilePath::Tag::dexMetadataPath,
570 };
571 #pragma clang diagnostic pop
572 } // namespace internal
573 } // namespace ndk
574