From 840e252b72c0891d2173157e9331049568144cbe Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Mon, 3 Oct 2022 18:15:32 +0900 Subject: [PATCH] universal7885: hidl: Introduce simple fileio lib --- .../parts/hardware/libfileio/Android.bp | 7 +++ .../parts/hardware/libfileio/FileIO.cpp | 48 +++++++++++++++++++ .../parts/hardware/libfileio/include/FileIO.h | 6 +++ 3 files changed, 61 insertions(+) create mode 100644 universal7885-common/hidl-packages/parts/hardware/libfileio/Android.bp create mode 100644 universal7885-common/hidl-packages/parts/hardware/libfileio/FileIO.cpp create mode 100644 universal7885-common/hidl-packages/parts/hardware/libfileio/include/FileIO.h diff --git a/universal7885-common/hidl-packages/parts/hardware/libfileio/Android.bp b/universal7885-common/hidl-packages/parts/hardware/libfileio/Android.bp new file mode 100644 index 0000000..035ee69 --- /dev/null +++ b/universal7885-common/hidl-packages/parts/hardware/libfileio/Android.bp @@ -0,0 +1,7 @@ +cc_library_shared { + name: "libfileio", + srcs: ["FileIO.cpp"], + include_dirs: ["include"], + export_include_dirs: ["include"], +} + diff --git a/universal7885-common/hidl-packages/parts/hardware/libfileio/FileIO.cpp b/universal7885-common/hidl-packages/parts/hardware/libfileio/FileIO.cpp new file mode 100644 index 0000000..b97e8cb --- /dev/null +++ b/universal7885-common/hidl-packages/parts/hardware/libfileio/FileIO.cpp @@ -0,0 +1,48 @@ +#define LOG_TAG "libFileIO" + +#include + +#include +#include +#include + +namespace FileIO { + +constexpr const int EXIT_ERR = -1; + +int readline(const char *path) { + std::ifstream file; + std::string value; + file.open(path); + ALOGD("%s: Opening %s", __func__, path); + if (file.is_open()) { + getline(file, value); + file.close(); + } else { + ALOGE("%s: Failed to open %s", __func__, path); + return EXIT_ERR; + } + try { + return stoi(value); + } catch (std::invalid_argument const &ex) { + ALOGE("%s: stoi(): invalid argument: for %s", __func__, value); + } catch (std::out_of_range const &ex) { + ALOGE("%s: stoi(): out of range: for %s", __func__, value); + } + return EXIT_ERR; +} + +template +void writeline(const char *path, const T data) { + std::ofstream file; + file.open(path); + ALOGD("%s: Opening %s", __func__, path); + if (file.is_open()) { + file << data; + file.close(); + return; + } + ALOGE("%s: Failed to open %s", __func__, path); +} + +} // namespace FileIO diff --git a/universal7885-common/hidl-packages/parts/hardware/libfileio/include/FileIO.h b/universal7885-common/hidl-packages/parts/hardware/libfileio/include/FileIO.h new file mode 100644 index 0000000..466c237 --- /dev/null +++ b/universal7885-common/hidl-packages/parts/hardware/libfileio/include/FileIO.h @@ -0,0 +1,6 @@ +namespace FileIO { + int readline(const char *path); + + template + void writeline(const char *path, const T data); +} // namespace FileIO