summaryrefslogtreecommitdiff
path: root/transport.h
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2015-08-28 15:09:44 -0700
committerYabin Cui <yabinc@google.com>2015-08-28 16:36:00 -0700
commitaf84e27ba72b00983d6ee6019f5f61bd9f4c3e07 (patch)
treed87171479bbf4f2ed1aa0e738ed9fdb54b89e66e /transport.h
parent73178560a73be2ea4dc773d69dc70d2af576a056 (diff)
downloadadb-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.h14
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);