================
@@ -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,
+                          const FileSpec &remote_file);
+  Status internalStat(const FileSpec &remote_file, uint32_t &mode,
+                      uint32_t &size, uint32_t &mtime);
+  Status executeCommand(const std::function<Status()> &cmd);
----------------
JDevlieghere wrote:

```suggestion
  Status ExecuteCommand(const std::function<llvm::Error> &cmd);
```

https://github.com/llvm/llvm-project/pull/145382
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to