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