Index: blimp/net/blimp_connection.h |
diff --git a/blimp/net/blimp_connection.h b/blimp/net/blimp_connection.h |
index 36128af42300df09ca881ad0309ef842fad20cff..ac43f261f782ac06db3fcd0c801a68b73cba7081 100644 |
--- a/blimp/net/blimp_connection.h |
+++ b/blimp/net/blimp_connection.h |
@@ -7,27 +7,31 @@ |
#include "base/macros.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/observer_list.h" |
#include "blimp/net/blimp_net_export.h" |
+#include "blimp/net/connection_error_observer.h" |
namespace blimp { |
class BlimpMessageProcessor; |
class BlimpMessagePump; |
-class ConnectionErrorObserver; |
class PacketReader; |
class PacketWriter; |
// Encapsulates the state and logic used to exchange BlimpMessages over |
// a network connection. |
-class BLIMP_NET_EXPORT BlimpConnection { |
+class BLIMP_NET_EXPORT BlimpConnection : public ConnectionErrorObserver { |
public: |
BlimpConnection(scoped_ptr<PacketReader> reader, |
scoped_ptr<PacketWriter> writer); |
- virtual ~BlimpConnection(); |
+ ~BlimpConnection() override; |
- // Lets |observer| know when the network connection encounters an error. |
- virtual void SetConnectionErrorObserver(ConnectionErrorObserver* observer); |
+ // Adds |observer| to the connection's error observer list. |
+ virtual void AddConnectionErrorObserver(ConnectionErrorObserver* observer); |
+ |
+ // Removes |observer| from the connection's error observer list. |
+ virtual void RemoveConnectionErrorObserver(ConnectionErrorObserver* observer); |
// Sets the processor which will take incoming messages for this connection. |
// Can be set multiple times, but previously set processors are discarded. |
@@ -40,11 +44,15 @@ class BLIMP_NET_EXPORT BlimpConnection { |
protected: |
BlimpConnection(); |
+ // ConnectionErrorObserver implementation. |
+ void OnConnectionError(int error) override; |
+ |
private: |
scoped_ptr<PacketReader> reader_; |
scoped_ptr<BlimpMessagePump> message_pump_; |
scoped_ptr<PacketWriter> writer_; |
scoped_ptr<BlimpMessageProcessor> outgoing_msg_processor_; |
+ base::ObserverList<ConnectionErrorObserver> error_observers_; |
DISALLOW_COPY_AND_ASSIGN(BlimpConnection); |
}; |