diff options
author | Yabin Cui <yabinc@google.com> | 2015-08-28 15:09:44 -0700 |
---|---|---|
committer | Yabin Cui <yabinc@google.com> | 2015-08-28 16:36:00 -0700 |
commit | af84e27ba72b00983d6ee6019f5f61bd9f4c3e07 (patch) | |
tree | d87171479bbf4f2ed1aa0e738ed9fdb54b89e66e /transport.h | |
parent | 73178560a73be2ea4dc773d69dc70d2af576a056 (diff) | |
download | adb-af84e27ba72b00983d6ee6019f5f61bd9f4c3e07.tar.gz |
adb: clean up transport disconnect operations.
Move operations from global functions into member functions.
Add unit test.
Change-Id: Id4543d8e78541eb08c8e629f180c605c699737ec
Diffstat (limited to 'transport.h')
-rw-r--r-- | transport.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/transport.h b/transport.h index abb26a7..3b56c55 100644 --- a/transport.h +++ b/transport.h @@ -19,6 +19,7 @@ #include <sys/types.h> +#include <list> #include <string> #include <unordered_set> @@ -71,9 +72,6 @@ public: int adb_port = -1; // Use for emulators (local transport) bool kicked = false; - // A list of adisconnect callbacks called when the transport is kicked. - adisconnect disconnects = {}; - void* key = nullptr; unsigned char token[TOKEN_SIZE] = {}; fdevent auth_fde; @@ -96,6 +94,10 @@ public: // feature. bool CanUseFeature(const std::string& feature) const; + void AddDisconnect(adisconnect* disconnect); + void RemoveDisconnect(adisconnect* disconnect); + void RunDisconnects(); + private: // A set of features transmitted in the banner with the initial connection. // This is stored in the banner as 'features=feature0,feature1,etc'. @@ -103,6 +105,9 @@ private: int protocol_version; size_t max_payload; + // A list of adisconnect callbacks called when the transport is kicked. + std::list<adisconnect*> disconnects_; + DISALLOW_COPY_AND_ASSIGN(atransport); }; @@ -114,10 +119,7 @@ private: */ atransport* acquire_one_transport(ConnectionState state, TransportType type, const char* serial, std::string* error_out); -void add_transport_disconnect(atransport* t, adisconnect* dis); -void remove_transport_disconnect(atransport* t, adisconnect* dis); void kick_transport(atransport* t); -void run_transport_disconnects(atransport* t); void update_transports(void); void init_transport_registration(void); |