From edec033b263ce2a227e6761d2058b7494715e46c Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Wed, 25 Jul 2018 15:55:25 -0700 Subject: [PATCH] adb: split file_sync_service.h into client and daemon parts. Test: treehugger Change-Id: I648c7001903a91448c69986e08a6cd2dd76ed793 --- adb/client/bugreport.cpp | 3 +- adb/client/commandline.cpp | 2 +- adb/client/file_sync_client.cpp | 4 +- adb/client/file_sync_client.h | 27 ++++++++++ adb/daemon/file_sync_service.cpp | 4 +- adb/daemon/file_sync_service.h | 21 ++++++++ ...le_sync_service.h => file_sync_protocol.h} | 50 +++++++------------ adb/services.cpp | 2 +- 8 files changed, 75 insertions(+), 38 deletions(-) create mode 100644 adb/client/file_sync_client.h create mode 100644 adb/daemon/file_sync_service.h rename adb/{file_sync_service.h => file_sync_protocol.h} (57%) diff --git a/adb/client/bugreport.cpp b/adb/client/bugreport.cpp index abef86a68..346bb4b2c 100644 --- a/adb/client/bugreport.cpp +++ b/adb/client/bugreport.cpp @@ -25,8 +25,9 @@ #include #include "sysdeps.h" + #include "adb_utils.h" -#include "file_sync_service.h" +#include "client/file_sync_client.h" static constexpr char BUGZ_BEGIN_PREFIX[] = "BEGIN:"; static constexpr char BUGZ_PROGRESS_PREFIX[] = "PROGRESS:"; diff --git a/adb/client/commandline.cpp b/adb/client/commandline.cpp index 7791895f6..13e52f6d6 100644 --- a/adb/client/commandline.cpp +++ b/adb/client/commandline.cpp @@ -56,8 +56,8 @@ #include "adb_unique_fd.h" #include "adb_utils.h" #include "bugreport.h" +#include "client/file_sync_client.h" #include "commandline.h" -#include "file_sync_service.h" #include "services.h" #include "shell_service.h" #include "sysdeps/chrono.h" diff --git a/adb/client/file_sync_client.cpp b/adb/client/file_sync_client.cpp index a438dbb33..cb9bcfa43 100644 --- a/adb/client/file_sync_client.cpp +++ b/adb/client/file_sync_client.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include "client/file_sync_client.h" + #include #include #include @@ -39,7 +41,7 @@ #include "adb_client.h" #include "adb_io.h" #include "adb_utils.h" -#include "file_sync_service.h" +#include "file_sync_protocol.h" #include "line_printer.h" #include "sysdeps/errno.h" #include "sysdeps/stat.h" diff --git a/adb/client/file_sync_client.h b/adb/client/file_sync_client.h new file mode 100644 index 000000000..df7f14ce4 --- /dev/null +++ b/adb/client/file_sync_client.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +bool do_sync_ls(const char* path); +bool do_sync_push(const std::vector& srcs, const char* dst, bool sync); +bool do_sync_pull(const std::vector& srcs, const char* dst, bool copy_attrs, + const char* name = nullptr); + +bool do_sync_sync(const std::string& lpath, const std::string& rpath, bool list_only); diff --git a/adb/daemon/file_sync_service.cpp b/adb/daemon/file_sync_service.cpp index 0b713631e..7ae806a0e 100644 --- a/adb/daemon/file_sync_service.cpp +++ b/adb/daemon/file_sync_service.cpp @@ -16,8 +16,9 @@ #define TRACE_TAG SYNC +#include "daemon/file_sync_service.h" + #include "sysdeps.h" -#include "file_sync_service.h" #include #include @@ -42,6 +43,7 @@ #include "adb_io.h" #include "adb_trace.h" #include "adb_utils.h" +#include "file_sync_protocol.h" #include "security_log_tags.h" #include "sysdeps/errno.h" diff --git a/adb/daemon/file_sync_service.h b/adb/daemon/file_sync_service.h new file mode 100644 index 000000000..01081d298 --- /dev/null +++ b/adb/daemon/file_sync_service.h @@ -0,0 +1,21 @@ +#pragma once + +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +void file_sync_service(android::base::unique_fd fd); diff --git a/adb/file_sync_service.h b/adb/file_sync_protocol.h similarity index 57% rename from adb/file_sync_service.h rename to adb/file_sync_protocol.h index 608b3ada3..108639a53 100644 --- a/adb/file_sync_service.h +++ b/adb/file_sync_protocol.h @@ -14,34 +14,28 @@ * limitations under the License. */ -#ifndef _FILE_SYNC_SERVICE_H_ -#define _FILE_SYNC_SERVICE_H_ +#pragma once -#include -#include +#define MKID(a, b, c, d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24)) -#include - -#define MKID(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24)) - -#define ID_LSTAT_V1 MKID('S','T','A','T') -#define ID_STAT_V2 MKID('S','T','A','2') -#define ID_LSTAT_V2 MKID('L','S','T','2') -#define ID_LIST MKID('L','I','S','T') -#define ID_SEND MKID('S','E','N','D') -#define ID_RECV MKID('R','E','C','V') -#define ID_DENT MKID('D','E','N','T') -#define ID_DONE MKID('D','O','N','E') -#define ID_DATA MKID('D','A','T','A') -#define ID_OKAY MKID('O','K','A','Y') -#define ID_FAIL MKID('F','A','I','L') -#define ID_QUIT MKID('Q','U','I','T') +#define ID_LSTAT_V1 MKID('S', 'T', 'A', 'T') +#define ID_STAT_V2 MKID('S', 'T', 'A', '2') +#define ID_LSTAT_V2 MKID('L', 'S', 'T', '2') +#define ID_LIST MKID('L', 'I', 'S', 'T') +#define ID_SEND MKID('S', 'E', 'N', 'D') +#define ID_RECV MKID('R', 'E', 'C', 'V') +#define ID_DENT MKID('D', 'E', 'N', 'T') +#define ID_DONE MKID('D', 'O', 'N', 'E') +#define ID_DATA MKID('D', 'A', 'T', 'A') +#define ID_OKAY MKID('O', 'K', 'A', 'Y') +#define ID_FAIL MKID('F', 'A', 'I', 'L') +#define ID_QUIT MKID('Q', 'U', 'I', 'T') struct SyncRequest { - uint32_t id; // ID_STAT, et cetera. + uint32_t id; // ID_STAT, et cetera. uint32_t path_length; // <= 1024 // Followed by 'path_length' bytes of path (not NUL-terminated). -} __attribute__((packed)) ; +} __attribute__((packed)); union syncmsg { struct __attribute__((packed)) { @@ -81,14 +75,4 @@ union syncmsg { } status; }; -void file_sync_service(android::base::unique_fd fd); -bool do_sync_ls(const char* path); -bool do_sync_push(const std::vector& srcs, const char* dst, bool sync); -bool do_sync_pull(const std::vector& srcs, const char* dst, - bool copy_attrs, const char* name=nullptr); - -bool do_sync_sync(const std::string& lpath, const std::string& rpath, bool list_only); - -#define SYNC_DATA_MAX (64*1024) - -#endif +#define SYNC_DATA_MAX (64 * 1024) diff --git a/adb/services.cpp b/adb/services.cpp index 3d418cb92..54c679baa 100644 --- a/adb/services.cpp +++ b/adb/services.cpp @@ -51,10 +51,10 @@ #include "adb_io.h" #include "adb_utils.h" #if !ADB_HOST +#include "daemon/file_sync_service.h" #include "daemon/framebuffer_service.h" #include "daemon/set_verity_enable_state_service.h" #endif -#include "file_sync_service.h" #include "remount_service.h" #include "services.h" #include "shell_service.h"