diff options
Diffstat (limited to 'cmds/installd/file_parsing.h')
-rw-r--r-- | cmds/installd/file_parsing.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/cmds/installd/file_parsing.h b/cmds/installd/file_parsing.h index 3e2f815f32..88801ca671 100644 --- a/cmds/installd/file_parsing.h +++ b/cmds/installd/file_parsing.h @@ -19,18 +19,14 @@ #include <fstream> #include <functional> -#include <string> +#include <string_view> +#include "android-base/unique_fd.h" namespace android { namespace installd { -bool ParseFile(const std::string& strFile, std::function<bool (const std::string&)> parse) { - std::ifstream input_stream(strFile); - - if (!input_stream.is_open()) { - return false; - } - +template<typename Func> +bool ParseFile(std::istream& input_stream, Func parse) { while (!input_stream.eof()) { // Read the next line. std::string line; @@ -54,6 +50,15 @@ bool ParseFile(const std::string& strFile, std::function<bool (const std::string return true; } +template<typename Func> +bool ParseFile(std::string_view str_file, Func parse) { + std::ifstream ifs(str_file); + if (!ifs.is_open()) { + return false; + } + return ParseFile(ifs, parse); +} + } // namespace installd } // namespace android |