aboutsummaryrefslogtreecommitdiff
path: root/tools/aconfig/aconfig_storage_read_api/aconfig_storage_read_api.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aconfig/aconfig_storage_read_api/aconfig_storage_read_api.cpp')
-rw-r--r--tools/aconfig/aconfig_storage_read_api/aconfig_storage_read_api.cpp53
1 files changed, 36 insertions, 17 deletions
diff --git a/tools/aconfig/aconfig_storage_read_api/aconfig_storage_read_api.cpp b/tools/aconfig/aconfig_storage_read_api/aconfig_storage_read_api.cpp
index 50076aab31..97ada3a33e 100644
--- a/tools/aconfig/aconfig_storage_read_api/aconfig_storage_read_api.cpp
+++ b/tools/aconfig/aconfig_storage_read_api/aconfig_storage_read_api.cpp
@@ -1,16 +1,13 @@
-#include <android-base/file.h>
-#include <android-base/logging.h>
-
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <errno.h>
+#include <string.h>
#include "rust/cxx.h"
#include "aconfig_storage/lib.rs.h"
#include "aconfig_storage/aconfig_storage_read_api.hpp"
-using namespace android::base;
-
namespace aconfig_storage {
/// Storage location pb file
@@ -36,7 +33,9 @@ static Result<std::string> find_storage_file(
case StorageFileType::flag_info:
return storage_dir + "/boot/" + container + ".info";
default:
- return Error() << "Invalid file type " << file_type;
+ auto result = Result<std::string>();
+ result.errmsg = "Invalid storage file type";
+ return result;
}
}
@@ -49,7 +48,9 @@ Result<MappedStorageFile*> get_mapped_file_impl(
StorageFileType file_type) {
auto file_result = find_storage_file(storage_dir, container, file_type);
if (!file_result.ok()) {
- return Error() << file_result.error();
+ auto result = Result<MappedStorageFile*>();
+ result.errmsg = file_result.error();
+ return result;
}
return map_storage_file(*file_result);
}
@@ -60,18 +61,24 @@ Result<MappedStorageFile*> get_mapped_file_impl(
Result<MappedStorageFile*> map_storage_file(std::string const& file) {
int fd = open(file.c_str(), O_CLOEXEC | O_NOFOLLOW | O_RDONLY);
if (fd == -1) {
- return ErrnoError() << "failed to open " << file;
+ auto result = Result<MappedStorageFile*>();
+ result.errmsg = std::string("failed to open ") + file + ": " + strerror(errno);
+ return result;
};
struct stat fd_stat;
if (fstat(fd, &fd_stat) < 0) {
- return ErrnoError() << "fstat failed";
+ auto result = Result<MappedStorageFile*>();
+ result.errmsg = std::string("fstat failed: ") + strerror(errno);
+ return result;
}
size_t file_size = fd_stat.st_size;
void* const map_result = mmap(nullptr, file_size, PROT_READ, MAP_SHARED, fd, 0);
if (map_result == MAP_FAILED) {
- return ErrnoError() << "mmap failed";
+ auto result = Result<MappedStorageFile*>();
+ result.errmsg = std::string("mmap failed: ") + strerror(errno);
+ return result;
}
auto mapped_file = new MappedStorageFile();
@@ -82,7 +89,7 @@ Result<MappedStorageFile*> map_storage_file(std::string const& file) {
}
/// Map from StoredFlagType to FlagValueType
-android::base::Result<FlagValueType> map_to_flag_value_type(
+Result<FlagValueType> map_to_flag_value_type(
StoredFlagType stored_type) {
switch (stored_type) {
case StoredFlagType::ReadWriteBoolean:
@@ -90,7 +97,9 @@ android::base::Result<FlagValueType> map_to_flag_value_type(
case StoredFlagType::FixedReadOnlyBoolean:
return FlagValueType::Boolean;
default:
- return Error() << "Unsupported stored flag type";
+ auto result = Result<FlagValueType>();
+ result.errmsg = "Unsupported stored flag type";
+ return result;
}
}
@@ -110,7 +119,9 @@ Result<uint32_t> get_storage_file_version(
if (version_cxx.query_success) {
return version_cxx.version_number;
} else {
- return Error() << version_cxx.error_message;
+ auto result = Result<uint32_t>();
+ result.errmsg = version_cxx.error_message.c_str();
+ return result;
}
}
@@ -128,7 +139,9 @@ Result<PackageReadContext> get_package_read_context(
context.boolean_start_index = context_cxx.boolean_start_index;
return context;
} else {
- return Error() << context_cxx.error_message;
+ auto result = Result<PackageReadContext>();
+ result.errmsg = context_cxx.error_message.c_str();
+ return result;
}
}
@@ -147,7 +160,9 @@ Result<FlagReadContext> get_flag_read_context(
context.flag_index = context_cxx.flag_index;
return context;
} else {
- return Error() << context_cxx.error_message;
+ auto result = Result<FlagReadContext>();
+ result.errmsg = context_cxx.error_message.c_str();
+ return result;
}
}
@@ -161,7 +176,9 @@ Result<bool> get_boolean_flag_value(
if (value_cxx.query_success) {
return value_cxx.flag_value;
} else {
- return Error() << value_cxx.error_message;
+ auto result = Result<bool>();
+ result.errmsg = value_cxx.error_message.c_str();
+ return result;
}
}
@@ -177,7 +194,9 @@ Result<uint8_t> get_flag_attribute(
if (info_cxx.query_success) {
return info_cxx.flag_attribute;
} else {
- return Error() << info_cxx.error_message;
+ auto result = Result<uint8_t>();
+ result.errmsg = info_cxx.error_message.c_str();
+ return result;
}
}
} // namespace aconfig_storage