1 #pragma once
2 
3 #include <vector>
4 #include <string>
5 #include <android-base/result.h>
6 
7 namespace aconfig_storage {
8 
9 /// Flag value summary for a flag
10 struct FlagValueSummary {
11   std::string package_name;
12   std::string flag_name;
13   std::string flag_value;
14   std::string value_type;
15 };
16 
17 /// List all flag values
18 /// \input package_map: package map file
19 /// \input flag_map: flag map file
20 /// \input flag_val: flag value file
21 android::base::Result<std::vector<FlagValueSummary>> list_flags(
22     const std::string& package_map,
23     const std::string& flag_map,
24     const std::string& flag_val);
25 
26 /// Flag value and info summary for a flag
27 struct FlagValueAndInfoSummary {
28   std::string package_name;
29   std::string flag_name;
30   std::string flag_value;
31   std::string value_type;
32   bool is_readwrite;
33   bool has_server_override;
34   bool has_local_override;
35 };
36 
37 /// List all flag values with their flag info
38 /// \input package_map: package map file
39 /// \input flag_map: flag map file
40 /// \input flag_val: flag value file
41 /// \input flag_info: flag info file
42 android::base::Result<std::vector<FlagValueAndInfoSummary>> list_flags_with_info(
43     const std::string& package_map,
44     const std::string& flag_map,
45     const std::string& flag_val,
46     const std::string& flag_info);
47 
48 }// namespace aconfig_storage
49