[Lldb-commits] [lldb] [lldb] refactor PlatformAndroid and make threadsafe (PR #145382)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 8 08:34:25 PDT 2025
================
@@ -102,39 +65,52 @@ class AdbClient {
std::chrono::milliseconds timeout,
const FileSpec &output_file_spec);
- virtual std::unique_ptr<SyncService> GetSyncService(Status &error);
-
- Status SwitchDeviceTransport();
-
-private:
Status Connect();
- void SetDeviceID(const std::string &device_id);
-
- Status SendMessage(const std::string &packet, const bool reconnect = true);
-
+private:
Status SendDeviceMessage(const std::string &packet);
- Status ReadMessage(std::vector<char> &message);
-
Status ReadMessageStream(std::vector<char> &message,
std::chrono::milliseconds timeout);
- Status GetResponseError(const char *response_id);
+ Status internalShell(const char *command, std::chrono::milliseconds timeout,
+ std::vector<char> &output_buf);
- Status ReadResponseStatus();
+ std::string m_device_id;
+ std::unique_ptr<Connection> m_conn;
+};
- Status Sync();
+class AdbSyncService {
+public:
+ explicit AdbSyncService(const std::string device_id);
+ virtual ~AdbSyncService();
+ Status SetupSyncConnection();
- Status StartSync();
+ virtual Status PullFile(const FileSpec &remote_file,
+ const FileSpec &local_file);
+ virtual Status PushFile(const FileSpec &local_file,
+ const FileSpec &remote_file);
+ virtual Status Stat(const FileSpec &remote_file, uint32_t &mode,
+ uint32_t &size, uint32_t &mtime);
+ virtual bool IsConnected() const;
- Status internalShell(const char *command, std::chrono::milliseconds timeout,
- std::vector<char> &output_buf);
+ const std::string &GetDeviceId() const { return m_device_id; }
- Status ReadAllBytes(void *buffer, size_t size);
+private:
+ Status SendSyncRequest(const char *request_id, const uint32_t data_len,
+ const void *data);
+ Status ReadSyncHeader(std::string &response_id, uint32_t &data_len);
+ Status PullFileChunk(std::vector<char> &buffer, bool &eof);
+ Status internalPullFile(const FileSpec &remote_file,
+ const FileSpec &local_file);
+ Status internalPushFile(const FileSpec &local_file,
----------------
JDevlieghere wrote:
We use the `Impl` suffix for these.
```suggestion
Status PushFileImpl(const FileSpec &local_file,
```
https://github.com/llvm/llvm-project/pull/145382
More information about the lldb-commits
mailing list