20#include <condition_variable>
34bool getcwd(std::string* cwd);
43bool mkdirs(
const std::string& path);
47std::string
dump_hex(
const void* ptr,
size_t byte_count);
66 std::condition_variable
cv;
72 std::unique_lock<std::mutex> lock(
mutex);
78 template <
typename Fn>
80 std::vector<T> popped;
83 std::unique_lock<std::mutex> lock(
mutex);
84 cv.wait(lock, [
this]() {
return !
queue.empty(); });
85 popped = std::move(
queue);
89 for (
const T& t : popped) {
99 for (
auto it =
str.rbegin(); it !=
str.rend(); ++it) {
106 str.remove_suffix(n);
112inline bool ParseUint(T* result, std::string_view
str, std::string_view* remaining =
nullptr) {
114 const auto res = std::from_chars(
str.begin(),
str.end(), value);
115 if (res.ec != std::errc{}) {
118 if (res.ptr !=
str.end() && !remaining) {
122 *remaining = std::string_view(res.ptr,
str.end() - res.ptr);
std::string adb_get_android_dir_path()
Definition: adb_utils.cpp:310
bool mkdirs(const std::string &path)
Definition: adb_utils.cpp:106
std::string perror_str(const char *msg)
Definition: adb_utils.cpp:231
bool forward_targets_are_valid(const std::string &source, const std::string &dest, std::string *error)
Definition: adb_utils.cpp:252
bool ParseUint(T *result, std::string_view str, std::string_view *remaining=nullptr)
Definition: adb_utils.h:112
std::string GetLogFilePath()
Definition: adb_utils.cpp:322
bool set_file_block_mode(borrowed_fd fd, bool block)
Definition: adb_utils.cpp:237
bool getcwd(std::string *cwd)
Definition: adb_utils.cpp:69
bool directory_exists(const std::string &path)
Definition: adb_utils.cpp:76
std::string_view StripTrailingNulls(std::string_view str)
Definition: adb_utils.h:97
std::string dump_header(const amessage *msg)
Definition: adb_utils.cpp:189
std::string escape_arg(const std::string &s)
Definition: adb_utils.cpp:81
std::string adb_get_homedir_path()
Definition: adb_utils.cpp:275
void close_stdin()
Definition: adb_utils.cpp:57
std::string dump_packet(const char *name, const char *func, const apacket *p)
Definition: adb_utils.cpp:221
std::string dump_hex(const void *ptr, size_t byte_count)
Definition: adb_utils.cpp:161
Definition: adb_utils.h:64
void Push(const T &t)
Definition: adb_utils.h:70
std::mutex mutex
Definition: adb_utils.h:65
void PopAll(Fn fn)
Definition: adb_utils.h:79
std::condition_variable cv
Definition: adb_utils.h:66
std::vector< T > queue
Definition: adb_utils.h:67
#define error(format, args...)
Definition: fec_private.h:201
constexpr const char * str
Definition: utils.h:180
Definition: unique_fd.h:292