1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_PROXIMITY_AUTH_CONNECTION_OBSERVER_H
6#define COMPONENTS_PROXIMITY_AUTH_CONNECTION_OBSERVER_H
7
8#include "components/proximity_auth/connection.h"
9
10namespace proximity_auth {
11
12class WireMessage;
13
14// An interface for observing events that happen on a Connection.
15class ConnectionObserver {
16 public:
17  // Called when the |connection|'s status changes from |old_status| to
18  // |new_status|.
19  virtual void OnConnectionStatusChanged(const Connection& connection,
20                                         Connection::Status old_status,
21                                         Connection::Status new_status) = 0;
22
23  // Called when a |message| is received from a remote device over the
24  // |connection|.
25  virtual void OnMessageReceived(const Connection& connection,
26                                 const WireMessage& message) = 0;
27
28  // Called after a |message| is sent to the remote device over the
29  // |connection|. |success| is |true| iff the message is sent successfully.
30  virtual void OnSendCompleted(const Connection& connection,
31                               const WireMessage& message,
32                               bool success) = 0;
33};
34
35}  // namespace proximity_auth
36
37#endif  // COMPONENTS_PROXIMITY_AUTH_CONNECTION_OBSERVER_H
38