| Index: tools/battor_agent/battor_agent.h
|
| diff --git a/tools/battor_agent/battor_agent.h b/tools/battor_agent/battor_agent.h
|
| index 413890e4ec2294e531167d79c086b00a65c87f6b..a008b6c5baa96be3080654e2451797e8e993868a 100644
|
| --- a/tools/battor_agent/battor_agent.h
|
| +++ b/tools/battor_agent/battor_agent.h
|
| @@ -5,17 +5,12 @@
|
| #ifndef TOOLS_BATTOR_AGENT_BATTOR_AGENT_H_
|
| #define TOOLS_BATTOR_AGENT_BATTOR_AGENT_H_
|
|
|
| -#include "base/callback_forward.h"
|
| #include "base/macros.h"
|
| #include "base/memory/ref_counted.h"
|
| -#include "base/memory/weak_ptr.h"
|
| #include "base/threading/thread_checker.h"
|
| +#include "tools/battor_agent/battor_connection.h"
|
| #include "tools/battor_agent/battor_error.h"
|
|
|
| -namespace device {
|
| -class SerialIoHandler;
|
| -}
|
| -
|
| namespace battor {
|
|
|
| // A BattOrAgent is a class used to asynchronously communicate with a BattOr for
|
| @@ -32,7 +27,7 @@ namespace battor {
|
| //
|
| // This class is NOT thread safe, and must be interacted with only from the IO
|
| // thread. The IO thread must also have a running MessageLoop.
|
| -class BattOrAgent : public base::SupportsWeakPtr<BattOrAgent> {
|
| +class BattOrAgent : public BattOrConnection::Listener {
|
| public:
|
| // The listener interface that must be implemented in order to interact with
|
| // the BattOrAgent.
|
| @@ -43,7 +38,7 @@ class BattOrAgent : public base::SupportsWeakPtr<BattOrAgent> {
|
|
|
| BattOrAgent(
|
| scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_rnuner,
|
| + scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner,
|
| const std::string& path,
|
| Listener* listener);
|
| virtual ~BattOrAgent();
|
| @@ -55,34 +50,26 @@ class BattOrAgent : public base::SupportsWeakPtr<BattOrAgent> {
|
| // trace log.
|
| static bool SupportsExplicitClockSync() { return true; }
|
|
|
| + // BattOrConnection::Listener implementation.
|
| + void OnConnectionOpened(bool success) override;
|
| + void OnBytesSent(bool success) override;
|
| + void OnBytesRead(bool success,
|
| + BattOrMessageType type,
|
| + scoped_ptr<std::vector<char>> bytes) override;
|
| +
|
| private:
|
| - // Initializes the serial connection (if not done already) and calls one of
|
| - // the two callbacks depending its success. The callback will be invoked on
|
| - // the same thread that this method is called on.
|
| - void ConnectIfNeeded(const base::Closure& success_callback,
|
| - const base::Closure& failure_callback);
|
| - void OnConnectComplete(const base::Closure& success_callback,
|
| - const base::Closure& failure_callback,
|
| - bool success);
|
| + // Initializes the serial connection (if not done already).
|
| + // OnConnectionOpened() will be called once the connection is made.
|
| + void ConnectIfNeeded();
|
|
|
| // StartTracing continuation called once the connection is initialized.
|
| void DoStartTracing();
|
|
|
| - // Resets the connection to its unopened state.
|
| - void ResetConnection();
|
| -
|
| - // Threads needed for serial communication.
|
| - scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner_;
|
| - scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner_;
|
| -
|
| - // The path of the BattOr (e.g. "/dev/tty.battor_serial").
|
| - std::string path_;
|
| -
|
| // The listener that handles the commands' results. It must outlive the agent.
|
| Listener* listener_;
|
|
|
| - // IO handler capable of reading and writing from the serial connection.
|
| - scoped_refptr<device::SerialIoHandler> io_handler_;
|
| + // The serial connection to the BattOr.
|
| + scoped_ptr<BattOrConnection> connection_;
|
|
|
| // Checker to make sure that this is only ever called on the IO thread.
|
| base::ThreadChecker thread_checker_;
|
|
|