xref: /aosp_15_r20/system/server_configurable_flags/aconfigd/libcxx_aconfigd.hpp (revision 207333786ba243bc7d4d69ef6b05487aa7071806)
1 #pragma once
2 
3 #include "include/aconfigd.h"
4 #include "rust/cxx.h"
5 
6 namespace aconfigdwrapper {
7 
8 struct CppVoidResult;
9 struct CppStringResult;
10 enum class CppResultStatus : uint8_t;
11 
12 class CppAconfigd {
13  public:
14   CppAconfigd(const std::string& aconfigd_root_dir,
15               const std::string& storage_records);
16   CppVoidResult initialize_platform_storage() const;
17   CppVoidResult initialize_mainline_storage() const;
18   CppVoidResult initialize_in_memory_storage_records() const;
19   CppStringResult handle_socket_request(
20       const std::string& messages_string) const;
21 
22  private:
23   class impl;
24   std::shared_ptr<impl> impl;
25 };
26 
27 std::unique_ptr<CppAconfigd> new_cpp_aconfigd(const std::string& str1,
28                                               const std::string& str2);
29 }  // namespace aconfigdwrapper
30